二维码

[基础语法] ABAP代码调用GS01/GS02/GS03的集合

Twilight发表于 2021-04-09 11:20Twilight 最后回复于 2021-04-09 11:20 [复制链接] 3451 0

集合相当于一个号段,SAP全局生效的。
  1.   DATA:ls_setid      TYPE sethier-setid,
  2.        lt_int_vlaues TYPE STANDARD TABLE OF rgsbv.
  3.   DATA:lr_saknr      TYPE RANGE OF saknr WITH HEADER LINE.
  4.       CALL FUNCTION 'G_SET_GET_ID_FROM_NAME'
  5.         EXPORTING
  6.           shortname = 'Z0002'       "Set Name   GS01
  7.         IMPORTING
  8.           new_setid = ls_setid
  9.         EXCEPTIONS
  10.           OTHERS    = 1.

  11.       CALL FUNCTION 'G_SET_FETCH'
  12.         EXPORTING
  13.           setnr           = ls_setid
  14.         TABLES
  15.           set_lines_basic = lt_int_vlaues
  16.         EXCEPTIONS
  17.           OTHERS          = 1.

  18.       LOOP AT lt_int_vlaues INTO DATA(ls_int_vlaues).
  19.         IF ls_int_vlaues-from IS NOT INITIAL AND ls_int_vlaues-to IS NOT INITIAL.
  20.           CLEAR:lr_saknr.
  21.           lr_saknr-sign   = 'I'.
  22.           lr_saknr-option = 'BT'.
  23.           lr_saknr-low    = ls_int_vlaues-from.
  24.           lr_saknr-high   = ls_int_vlaues-to.
  25.           APPEND lr_saknr.
  26.         ELSEIF ls_int_vlaues-from IS NOT INITIAL .
  27.           CLEAR:lr_saknr.
  28.           lr_saknr-sign   = 'I'.
  29.           lr_saknr-option = 'EQ'.
  30.           lr_saknr-low    = ls_int_vlaues-from.
  31.           APPEND lr_saknr.
  32.         ENDIF.

  33.       ENDLOOP.

  34.       IF <fs_upload>-saknr NOT IN lr_saknr.
  35.         IF <fs_upload>-zmessage IS INITIAL.
  36.           <fs_upload>-zmessage = '合并科目不在科目集Z0002中,请检查科目是否填写错误!'(016).
  37.         ELSE.
  38.           <fs_upload>-zmessage = <fs_upload>-zmessage && '合并科目不在科目集Z0002中,请检查科目是否填写错误!'(012).
  39.         ENDIF.
  40.       ENDIF.
复制代码
回复

使用道具 举报

快速回帖

本版积分规则
您需要登录后才可以回帖 登录 | 注册有礼

快速回复 返回顶部 返回列表