技术开发 频道

来自SAP的样例:Field Symbol 的Example

【IT168 技术文章】

Full type specification

REPORT demo_field_symbols_type .

DATA: BEGIN OF line,
         col1(
1) TYPE c,
         col2(
1) TYPE c VALUE 'X',
       END OF line.

FIELD
-SYMBOLS <fs> LIKE line.

ASSIGN line TO
<fs>.

MOVE
<fs>-col2 TO <fs>-col1.

WRITE:
<fs>-col1, <fs>-col2.


--------------------------------------------------------------------------------

Forcing structures

REPORT demo_field_symbols_structure .

DATA: wa(
10) TYPE c VALUE '0123456789'.

DATA: BEGIN OF line1,
         col1(
3) TYPE c,
         col2(
2) TYPE c,
         col3(
5) TYPE c,
      END OF line1.

DATA: BEGIN OF line2,
         col1(
2) TYPE c,
         col2 TYPE sy
-datum,
      END OF line2.

* obsolete -------------------------------------------------------------

FIELD
-SYMBOLS: <f1> STRUCTURE line1 DEFAULT wa,
              
<f2> STRUCTURE line2 DEFAULT wa.

* correct --------------------------------------------------------------

FIELD
-SYMBOLS <f3> LIKE line1.
ASSIGN wa TO
<f3> CASTING.

FIELD
-SYMBOLS <f4> LIKE line2.
ASSIGN wa TO
<f4> CASTING.

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

WRITE:
/ <f1>-col1, <f1>-col2, <f1>-col3,
      
/ <f2>-col1, <f2>-col2.

SKIP.

WRITE:
/ <f3>-col1, <f3>-col2, <f3>-col3,
      
/ <f4>-col1, <f4>-col2.


--------------------------------------------------------------------------------

Static assign

REPORT demo_field_symbols_stat_assign .

FIELD
-SYMBOLS: <f1> TYPE ANY, <f2> TYPE i.

DATA: text(
20)  TYPE c VALUE 'Hello, how are you?',
      num       TYPE i VALUE
5,
      BEGIN OF line1,
        col1 TYPE f VALUE
'1.1e+10',
        col2 TYPE i VALUE
'1234',
      END OF line1,
      line2 LIKE line1.

ASSIGN text TO
<f1>.
ASSIGN num TO  
<f2>.
DESCRIBE FIELD
<f1> LENGTH <f2>.
WRITE:
/ <f1>, 'has length', num.

ASSIGN line1 TO
<f1>.
ASSIGN line2
-col2 TO <f2>.
MOVE
<f1> TO line2.
ASSIGN
'LINE2-COL2 =' TO <f1>.
WRITE:
/ <f1>, <f2>.

0
相关文章