现在的位置: 首页 > 综合 > 正文

ABAP 动态 SQL

2012年12月11日 ⁄ 综合 ⁄ 共 1063字 ⁄ 字号 评论关闭
关于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: <wa> type any,
               <wa2> TYPE any.
ASSIGN zpor_wa to <wa>.
select single *
  from z1td1106 into zpor_wa.
while sy-subrc = 0.
  ASSIGN COMPONENT sy-index of STRUCTURE <wa> to <wa2>.
  if sy-index = 5.
    itab-Zmodel = <wa2>.
  endif.
  IF sy-index > 9 and sy-index < 25.
    itab-ZQTY = <wa2>.
  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: <A>.

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 <A>.
  ITAB200-A1 = <A>.
  APPEND ITAB200.
ENDLOOP.

LOOP AT ITAB200.
  Write:/ ITAB200-A1,',',ITAB200-A2,',',ITAB200-A3.
ENDLOOP.

抱歉!评论已关闭.