Field symbols

You can use field symbols to make the program more dynamic.


Example 1

In this exanmple the name of a table control isd substituted by a field symbol. Thus you cal call the form with any internal table, using the name of the tabl├Že control as a parameter.


form insert_row
using p_tc_name.

field-symbols <tc> type cxtab_control. "Table control

assign (p_tc_name) to <tc>.


* insert 100 lines in table control
<tc>-lines = 100.

Example 2

TYPES:
  BEGIN OF st_mytable,
    name1 TYPE string,
    name2 TYPE string,
    age TYPE i,
  END OF st_mytable.

DATA:
  gi_mytable TYPE STANDARD TABLE OF st_mytable,
  g_mytable  TYPE st_mytable.

*------------------------------
* Define field symbols
*------------------------------
FIELD-SYMBOLS:
  <myfield1> TYPE ANY,
  <myfield2> TYPE ANY,
  <myfield3> TYPE ANY,
  <myline>  TYPE ANY.

*------------------------------

* Fill table with data
*------------------------------
g_mytable-name1 = 'John'.
g_mytable-name2 = 'Johnson'.
g_mytable-age   = 25.
APPEND g_mytable TO gi_mytable.

g_mytable-name1 = 'Claudio'.
g_mytable-name2 = 'Jensen'.
g_mytable-age   =  45.
APPEND g_mytable TO gi_mytable.

*------------------------------
* The normal way to do it
*------------------------------
LOOP AT gi_mytable INTO g_mytable.
  WRITE: / g_mytable-name1, g_mytable-name2 ,g_mytable-age.

ENDLOOP.

SKIP 2.

*------------------------------
* Do it with field symbols
*------------------------------
LOOP AT gi_mytable ASSIGNING <myline>.
  ASSIGN COMPONENT 1 OF STRUCTURE <myline> TO <myfield1>.
  ASSIGN COMPONENT 2 OF STRUCTURE <myline> TO <myfield2>.
  ASSIGN component 3 OF STRUCTURE <myline> TO <myfield3>.
  WRITE: / <myfield1>,<myfield2>,<myfield3>.
ENDLOOP.

*------------------------------
* Unassign field symbols
*------------------------------

UNASSIGN <myfield1>.
UNASSIGN <myfield2>.
UNASSIGN <myfield3>.
UNASSIGN <myline>.
Converted from CHM to HTML with chm2web Standard 2.7 (unicode)