技术开发 频道

来自SAP的样例:Field Symbol 的Example

Assign with offset

 

REPORT demo_field_symbols_stat_as_off .

FIELD
-SYMBOLS <fs> TYPE ANY.

DATA: BEGIN OF line,
        string1(
10) VALUE '0123456789',
        string2(
10) VALUE 'abcdefghij',
      END OF line.

WRITE
/ line-string1+5.

ASSIGN line
-string1+5 TO <fs>.
WRITE
/ <fs>.

ASSIGN line
-string1+5(*) TO <fs>.
WRITE
/ <fs>.



REPORT demo_field_symbols_stat_as_of2 .

FIELD
-SYMBOLS <fs> TYPE ANY.

DATA: BEGIN OF line,
        a TYPE c VALUE
'1', b TYPE c VALUE '2',
        c TYPE c VALUE
'3', d TYPE c VALUE '4',
        e TYPE c VALUE
'5', f TYPE c VALUE '6',
        g TYPE c VALUE
'7', h TYPE c VALUE '8',
      END OF line,
      off TYPE i,
      len TYPE i VALUE
2.

DO
2 TIMES.
  off
= sy-index * 3.
  ASSIGN line
-a+off(len) TO <fs>.
  
<fs> = 'XX'.
ENDDO.

DO
8 TIMES.
  off
= sy-index - 1.
  ASSIGN line
-a+off(1) TO <fs>.
  WRITE
<fs>.
ENDDO.


--------------------------------------------------------------------------------
Dynamic assign  

REPORT demo_field_symbols_dynami_as_2 .

TABLES sbook.

DATA: name1(
20) TYPE c VALUE 'SBOOK-FLDATE',
      name2(
20) TYPE c VALUE 'NAME1'.

FIELD
-SYMBOLS <fs> TYPE ANY.

ASSIGN TABLE FIELD (name1) TO
<fs>.
WRITE:
/ 'SY-SUBRC:', sy-subrc.

ASSIGN TABLE FIELD (name2) TO
<fs>.
WRITE:
/ 'SY-SUBRC:', sy-subrc.


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

Assigning field symbols

REPORT demo_field_symbols_dynami_as_3 .

DATA: BEGIN OF s,
        a TYPE c VALUE
'1', b TYPE c VALUE '2', c TYPE c VALUE '3',
        d TYPE c VALUE
'4', e TYPE c VALUE '5', f TYPE c VALUE '6',
        g TYPE c VALUE
'7', h TYPE c VALUE '8',
      END OF s.

DATA off TYPE i.

FIELD
-SYMBOLS <fs> TYPE ANY.

ASSIGN s
-a TO <fs>.

DO
4 TIMES.
  off
= sy-index - 1.
  ASSIGN
<fs>+off(1) TO <fs>.
  WRITE
<fs>.
ENDDO.
0
相关文章