ABAP 使用指针动态分配字段

我们以累加COSP表中WOG001~WOG016为例

  FIELD-SYMBOLS <FS> .
  DATAG_FIELD(40).

CLEAR GT_COSP[] .
    SELECT COSP~KSTAR
           COSP
~WRTTP
           COSP
~GJAHR
           COSP
~OBJNR
           COSP
~HRKFT
           COSP
~MEINH
           COSP
~WOG001
           COSP
~WOG002
           COSP
~WOG003
           COSP
~WOG004
           COSP
~WOG005
           COSP
~WOG006
           COSP
~WOG007
           COSP
~WOG008
           COSP
~WOG009
           COSP
~WOG010
           COSP
~WOG011
           COSP
~WOG012
           COSP
~WOG013
           COSP
~WOG014
           COSP
~WOG015
           COSP
~WOG016
               
INTO CORRESPONDING FIELDS OF TABLE GT_COSP[]
       
FROM COSP
       
LEFT JOIN COKEY ON COSP~HRKFT COKEY~HRKFT
       
FOR ALL ENTRIES IN GT_DATA[]
       
WHERE COSP~OBJNR   GT_DATA-OBJNR
*         AND COKEY~WERKS  = GT_DATA-WERKS
         AND COSP~LEDNR   '00'
         AND COSP~GJAHR  <= P_GJAHR
         
AND COSP~WRTTP  IN '01','04','05' )
         AND COSP~VERSN   '000'
         AND COSP~BEKNZ  IN 'S','H' )
         .


    LOOP AT GT_COSP.

      
        
IF GT_COSP_C-GJAHR < P_GJAHR.
           LV_MONAT 16 .
        ELSE .
          IF P_MONAT >= 12.
            LV_MONAT 16 .
          ELSE .
            LV_MONAT P_MONAT .
          ENDIF.
        ENDIF.

       LV_NUM '01' .
       WHILE LV_NUM <= LV_MONAT.
        CLEAR G_FIELD .
        G_FIELD 'GT_COSP-WOG0' && LV_NUM .
        ASSIGN (G_FIELDTO <FS>.
        IF <FS> IS ASSIGNED.
          GT_COSP-WCBHZ GT_COSP-WCBHZ + <FS>.
        ENDIF.
        UNASSIGN <FS>.

        LV_NUM LV_NUM + 1.
       ENDWHILE.

      MODIFY GT_COSP .
      CLEAR  GT_COSP .
    ENDLOOP.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值