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:29] – [Assignation] 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 25: | Line 39: | ||
==== Jouer avec les composants d'une structure ==== | ==== Jouer avec les composants d'une structure ==== | ||
+ | |||
+ | Quelques classes utiles : | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | |||
Exemple pratique : un '' | Exemple pratique : un '' | ||
<code abap> | <code abap> | ||
Line 46: | 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 ===== | ||
+ | ==== Select dans table dynamique ==== | ||
+ | [[http:// |
abap/dynamic_programming.1418668173.txt.gz · Last modified: 2014/12/15 19:29 by ginko