Definieren von Feldsymbolen

Definierte Verwendung

"Defnierte Verwendung
DATA gf_x TYPE c.
FIELD-SYMBOLS <fs> TYPE c.

"Zeiger einer Variablen zuweisen
ASSIGN gf_x TO <fs>.
ASSIGN (gf_xTO <fs>.
ASSIGN ('GF_X'TO <fs>.

"Definierte Verwendung
DATABEGIN OF gs,
feld1 
TYPE DECIMALS 2,
feld2 
TYPE DECIMALS 2,
feld3 
TYPE DECIMALS 2,
END OF gs.

"Zeiger einer Komponente in der Struktur zuweisen
ASSIGN COMPONENT 'FELD1' OF STRUCTURE gs TO <fs>.

Dirty Assign

"Dirty Assign
"So kann man auf globale Daten eines im Hauptspeicher geladenen Programmes
"zugreifen. Man kann diese Anweisung in einen FUBA packen und so die globalen
"Daten des Programmes in dem der FUBA implementiert ist lesen.
FIELD-SYMBOLS <kna1> TYPE kna1.
ASSIGN ('(PROGRAMM)KNA1'TO <kna1>.

Dynamische Parameters

"Dynamische PARAMETERS
"Im Feld p_typename geben wir den TYPE mit für den dynamischen Parameter.
PARAMETERS p_type TYPE char40.
PARAMETERS p_feld LIKE (p_type).

"Dynamische SELECT-OPTIONS
"mit dem DEMO Programm demo_sel_screen_select_options von SAP.
DATA wa_carrid TYPE spfli-carrid.

SELECT-OPTIONS airline FOR wa_carrid.

LOOP AT airline.
  
WRITE'SIGN:',   airline-sign,
           
'OPTION:'airline-option,
           
'LOW:',    airline-low,
           
'HIGH:',   airline-high.
ENDLOOP.

generische Feldsymbole

"generisches Feldsymbol (TYPE ANY).
DATA gf_y TYPE string.
CONCATENATE 'P_DATA' '01' INTO gf_y.

"TYPE ANY wenn man nicht weis welchen Type das Feld hat
FIELD-SYMBOLS <fs_y> TYPE ANY.
ASSIGN (gf_yTO <fs_y>.

dynamische und generische Programmierung in einem

"Beispile dynamisch und generisch
PARAMETERS p_feld01 TYPE c LENGTH 40.
PARAMETERS p_feld02 TYPE c LENGTH 30.
DATA gf_feld TYPE string.
DATA gf_num TYPE n LENGTH 2.
FIELD-SYMBOLS <data> TYPE ANY.
DO.
  gf_num 
sy-index.
  
CONCATENATE 'P_FELD' gf_num INTO gf_feld.
  
ASSIGN (gf_feldTO <data>.
  
IF sy-subrc <> 0.
    
EXIT.
  
ENDIF.
ENDDO.

        search this website

Regotz Michel