abap:dynamic_programming
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| abap:dynamic_programming [2014/12/15 19:47] – ginko | abap:dynamic_programming [2017/08/01 17:31] (current) – [Différences avec les field-symbols] ginko | ||
|---|---|---|---|
| Line 3: | Line 3: | ||
| ===== Les field-symbols ===== | ===== Les field-symbols ===== | ||
| + | //Note : les field-symbols ont été en grande partie remplacés par les références (les fs sont la précédente génération). Une référence permet de faire tout ce que fait un fs et d' | ||
| + | |||
| L' | L' | ||
| Line 15: | Line 17: | ||
| ASSIGN (ls_plop) TO < | ASSIGN (ls_plop) TO < | ||
| ASSIGN et_plip[] TO < | ASSIGN et_plip[] TO < | ||
| + | ===== Références ===== | ||
| + | ==== Déclaration ==== | ||
| + | <code abap> | ||
| + | DATA wldv_val TYPE REF TO data. "Sans type | ||
| + | DATA wldv_val TYPE REF TO cl_gui_alv_grid. "Type objet</ | ||
| + | ==== Référencement/ | ||
| + | <code abap>GET REFERENCE OF wlv_val INTO wldv_val. " | ||
| + | wldv_val-> | ||
| + | |||
| + | ==== Différences avec les field-symbols ==== | ||
| + | * Un fs peut être assigné dynamiquement sans connaitre le **nom** de la variable / Une référence peut être instanciée sans connaitre le **type** de la variable (et a fortiori son nom). | ||
| + | * Un fs ne peut référencer qu'une variable vivant dans le **scope du programme**. Une référence peut référencer une variable dans **[[https:// | ||
| ===== Typage dynamique ===== | ===== Typage dynamique ===== | ||
| Au delà de l' | Au delà de l' | ||
| Line 53: | Line 67: | ||
| __NB2__ : Si la classe '' | __NB2__ : Si la classe '' | ||
| + | |||
| + | ==== Créer une itab ex nihilo ==== | ||
| + | |||
| + | [[https:// | ||
| + | <code abap> | ||
| + | DATA: | ||
| + | lo_structdescr | ||
| + | lo_typedescr | ||
| + | lo_tabledescr | ||
| + | lt_lvc_scol | ||
| + | lt_lvc_styl | ||
| + | lt_comp_all | ||
| + | FIELD-SYMBOLS: | ||
| + | < | ||
| + | |||
| + | APPEND INITIAL LINE TO lt_comp_all ASSIGNING < | ||
| + | < | ||
| + | < | ||
| + | |||
| + | APPEND INITIAL LINE TO lt_comp_all ASSIGNING < | ||
| + | < | ||
| + | < | ||
| + | |||
| + | * create structure description | ||
| + | lo_structdescr = cl_abap_structdescr=> | ||
| + | |||
| + | * create table description for structure | ||
| + | lo_tabledescr = cl_abap_tabledescr=> | ||
| + | p_line_type | ||
| + | p_table_kind = cl_abap_tabledescr=> | ||
| + | p_unique | ||
| + | |||
| + | * create data object | ||
| + | CREATE DATA rr_dispodata TYPE HANDLE lo_tabledescr. | ||
| + | |||
| + | ENDMETHOD.</ | ||
| + | |||
| ===== Exemples ===== | ===== Exemples ===== | ||
| ==== Select dans table dynamique ==== | ==== Select dans table dynamique ==== | ||
| [[http:// | [[http:// | ||
abap/dynamic_programming.1418669237.txt.gz · Last modified: 2014/12/15 19:47 by ginko
