SAP ABAP指针的6种用法。

以下图数据为例
LT_FAG数据

*&---------------------------------------------------------------------*
*& Report ZLQT98
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZLQT98.

"指针的6种用法
SELECT  RYEAR  ,RACCT     , RBUKRS   , TSLVT    ,
        TSL01  ,TSL02     , TSL03    , TSL04    ,
        TSL05  ,TSL06     , TSL07    , TSL08    ,
        TSL09  ,TSL10     , TSL11    , TSL12    ,
        TSL13  ,TSL14     , TSL15    , TSL16
  FROM  FAGLFLEXT
  WHERE RBUKRS = '1000'
  AND   RYEAR  = '2020'
  AND   RACCT  = '8035000001'
  INTO TABLE @DATA(LT_FAG)
  UP TO 10 ROWS.

"1.READ语法中分配指针
READ TABLE LT_FAG ASSIGNING FIELD-SYMBOL(<FS_FAG1>) INDEX 1.

"2.静态分配。
ASSIGN <FS_FAG1>-TSL01 TO FIELD-SYMBOL(<FS_TSL01>) .

DATA LV_NUM TYPE N LENGTH 2 VALUE 1.
DATA LV_CHA TYPE C LENGTH 20 VALUE '<FS_FAG2>-TSL' .
DATA LV_CHA2 TYPE C LENGTH 20 VALUE 'TSL' .
DATA LV_SUM TYPE DMBTR .
"3.LOOP循环里面分配指针。
LOOP AT LT_FAG ASSIGNING FIELD-SYMBOL(<FS_FAG2>).

"4.1.动态分配,循环累计工作区中的 HSL01-HSL16 。将字符串组成字段名直接分配给指针。(字符串中带工作区类型)
  DO 16 TIMES.
    DATA(LV_FIED) = LV_CHA && LV_NUM .
    ASSIGN (LV_FIED) TO FIELD-SYMBOL(<FS_TSL>) .
    IF <FS_TSL> <> 0.
      LV_SUM = LV_SUM + <FS_TSL> .
    ENDIF.
    LV_NUM = LV_NUM + 1 .
  ENDDO.

"4.2.动态分配,循环累计工作区中的 HSL01-HSL16 。将字符串组成字段名直接分配给指针。(字符串中不带工作区类型)
  CLEAR : LV_SUM .
  LV_NUM = 1 .
  DO 16 TIMES.
    DATA(LV_FIED2) = LV_CHA2 && LV_NUM .
    ASSIGN COMPONENT LV_FIED2 OF STRUCTURE <FS_FAG2> TO FIELD-SYMBOL(<FS_TSL2>) .
    IF <FS_TSL2> <> 0.
      LV_SUM = LV_SUM + <FS_TSL2> .
    ENDIF.
    LV_NUM = LV_NUM + 1 .
  ENDDO.


"5.动态分配,循环累计工作区中的 HSL01-HSL16 。将工作区的第几个字段分配给指针。
  CLEAR : LV_NUM ,LV_SUM .
  DO 16 TIMES.
    LV_NUM = 5 ."从第五个字段开始累加
    ASSIGN COMPONENT LV_NUM OF STRUCTURE <FS_FAG2> TO FIELD-SYMBOL(<FS_TSL3>) .
    IF <FS_TSL2> <> 0.
      LV_SUM = LV_SUM + <FS_TSL3> .
    ENDIF.
    LV_NUM = LV_NUM + 1 .
  ENDDO.
  "注意事项:指针分配结束后应该判断是否被分配了,此处DEMO做了省略"

ENDLOOP.

猜你喜欢

转载自blog.csdn.net/Qunending/article/details/107466962
今日推荐