SAP ABAP编程 指针的运用--工作区相似字段的汇总

来源:互联网 发布:电脑usb直连网络 编辑:程序博客网 时间:2024/05/17 07:13

**************指针运用**************

FIELD-SYMBOLS<FS> TYPE ANY.  "指针
DATA NUM TYPE N LENGTH 2.    "相似字段不同部分的长度
DATA STR TYPE LENGTH 16.   "相似字段的长度

DATABEGIN OF BA,
      HSLVT            TYPE FAGLFLEXT-HSLVT,  "年初余额
      HSL01            TYPE FAGLFLEXT-HSLVT,  "第一个会计期间的本位币结转余额
      HSL02            TYPE FAGLFLEXT-HSLVT,  "第二个会计期间的本位币结转余额
      HSL03            TYPE FAGLFLEXT-HSLVT,  "第三个会计期间的本位币结转余额
      HSL04            TYPE FAGLFLEXT-HSLVT,  "第四个会计期间的本位币结转余额
      HSL05            TYPE FAGLFLEXT-HSLVT,  "第五个会计期间的本位币结转余额
      HSL06            TYPE FAGLFLEXT-HSLVT,  "第六个会计期间的本位币结转余额
      HSL07            TYPE FAGLFLEXT-HSLVT,  "第七个会计期间的本位币结转余额
      HSL08            TYPE FAGLFLEXT-HSLVT,  "第八个会计期间的本位币结转余额
      HSL09            TYPE FAGLFLEXT-HSLVT,  "第九个会计期间的本位币结转余额
      HSL10            TYPE FAGLFLEXT-HSLVT,  "第十个会计期间的本位币结转余额
      HSL11            TYPE FAGLFLEXT-HSLVT,  "第十一个会计期间的本位币结转余额
      HSL12            TYPE FAGLFLEXT-HSLVT,  "第十二个会计期间的本位币结转余额
      ENDING_BA  TYPE FAGLFLEXT-HSLVT,  "期末余额
END OF BA.

DATABA_WA LIKE BA,
      BA_TABLE LIKE TABLE OF BA.


LOOP AT BA_TABLE INTO BA_WA.

  BA_WA-ENDING_BA BA_WA-HSLVT.  "年初余额

  DO 12 TIMES.
    NUM SY-INDEX.           
    
    CONCATENATE 'BA_WA-HSL' NUM INTO STR.

    ASSIGN  (STRTO <FS>.

    IF SY-SUBRC 0.
      BA_WA-ENDING_BA BA_WA-ENDING_BA + <FS>.  "期末余额
    ELSEIF SY-SUBRC <> 0.
      MESSAGE  '汇总出错!' TYPE 'E'.
    ENDIF.
  ENDDO.
  MODIFY BA_TABLE FROM BA_WA.
  UNASSIGN <FS>.
  CLEAR BA_WA.
ENDLOOP.
0 0