关于Abap 动态字段及指针处理方法,最近整理了一下简单的应用,以供参考:
应用一: Dynamic Field Apply 1
DATA: zpor_wa type z1td1106.
data: begin of itab OCCURS 0,
zMODEL LIKE z1td1106-ZMODEL,
ZQTY LIKE z1td1106-QTY01,
END OF ITAB.
field-SYMBOLS: type any,
TYPE any.
ASSIGN zpor_wa to .
select single *
from z1td1106 into zpor_wa.
while sy-subrc = 0.
ASSIGN COMPONENT sy-index of STRUCTURE to .
if sy-index = 5.
itab-Zmodel = .
endif.
IF sy-index > 9 and sy-index 25.
itab-ZQTY = .
ENDIF.
APPEND itab.
ENDWHILE.
LOOP AT itab.
write:/ itab-Zmodel , ':',itab-ZQTY.
ENDLOOP.
* 应用二:Dynamic Field Apply 2
DATA :
T_A( 15) TYPE C VALUE 'ITAB100-',
T_B( 15) TYPE C,
BEGIN OF ITAB100 OCCURS 0,
A( 15) TYPE C,
B TYPE I,
END OF ITAB100,
BEGIN OF ITAB200 OCCURS 0,
A1( 15) TYPE C,
A2( 15) TYPE C,
A3( 15) TYPE C,
END OF ITAB200.
FIELD-SYMBOLS: .
ITAB100-A = 'A'.
ITAB100-B = 100.
APPEND ITAB100.
ITAB100-A = 'B'.
ITAB100-B = 200.
APPEND ITAB100.
ITAB100-A = 'C'.
ITAB100-B = 300.
APPEND ITAB100.
CLEAR:ITAB200[].
LOOP AT ITAB100.
CONCATENATE T_A ITAB100-A INTO T_B.
ASSIGN (T_B) TO .
ITAB200-A1 = .
APPEND ITAB200.
ENDLOOP.
LOOP AT ITAB200.
Write:/ ITAB200-A1,',',ITAB200-A2,',',ITAB200-A3.
ENDLOOP.
应用一: Dynamic Field Apply 1
DATA: zpor_wa type z1td1106.
data: begin of itab OCCURS 0,
zMODEL LIKE z1td1106-ZMODEL,
ZQTY LIKE z1td1106-QTY01,
END OF ITAB.
field-SYMBOLS: type any,
TYPE any.
ASSIGN zpor_wa to .
select single *
from z1td1106 into zpor_wa.
while sy-subrc = 0.
ASSIGN COMPONENT sy-index of STRUCTURE to .
if sy-index = 5.
itab-Zmodel = .
endif.
IF sy-index > 9 and sy-index 25.
itab-ZQTY = .
ENDIF.
APPEND itab.
ENDWHILE.
LOOP AT itab.
write:/ itab-Zmodel , ':',itab-ZQTY.
ENDLOOP.
* 应用二:Dynamic Field Apply 2
DATA :
T_A( 15) TYPE C VALUE 'ITAB100-',
T_B( 15) TYPE C,
BEGIN OF ITAB100 OCCURS 0,
A( 15) TYPE C,
B TYPE I,
END OF ITAB100,
BEGIN OF ITAB200 OCCURS 0,
A1( 15) TYPE C,
A2( 15) TYPE C,
A3( 15) TYPE C,
END OF ITAB200.
FIELD-SYMBOLS: .
ITAB100-A = 'A'.
ITAB100-B = 100.
APPEND ITAB100.
ITAB100-A = 'B'.
ITAB100-B = 200.
APPEND ITAB100.
ITAB100-A = 'C'.
ITAB100-B = 300.
APPEND ITAB100.
CLEAR:ITAB200[].
LOOP AT ITAB100.
CONCATENATE T_A ITAB100-A INTO T_B.
ASSIGN (T_B) TO .
ITAB200-A1 = .
APPEND ITAB200.
ENDLOOP.
LOOP AT ITAB200.
Write:/ ITAB200-A1,',',ITAB200-A2,',',ITAB200-A3.
ENDLOOP.
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9381143/viewspace-670424/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/9381143/viewspace-670424/