SAP RANGES定义及管理使用

一、自定RANGES表,

1.自定程序调用COMPLEX_SELECTIONS_DIALOG函数维护RANGES,

REPORT  ZTEST02 .
TABLES: MARA.
 
RANGES: II_MATNR FOR MARA-MATNR.
  
CALL FUNCTION 'COMPLEX_SELECTIONS_DIALOG'
  EXPORTING
    TITLE                   = '选择物料'
  TABLES
    RANGE                   = II_MATNR
** EXCEPTIONS
**   NO_RANGE_TAB            = 1
**   CANCELLED               = 2
**   INTERNAL_ERROR          = 3
**   INVALID_FIELDNAME       = 4
**   OTHERS                  = 5
          .
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

2.保存到自定义表中。

3,使用时直接从自定义表中SELECT出来到RANGES中使用。

二、使用GS01创建集,

1.使用事务码 GS01 , GS02, GS03, GS04维护好相关集,

2.在代码中使用函数 G_SET_GET_ALL_VALUES ,得到维护的集,并转换为RANGES使用

FORM GET_SET  TABLES   P_TAB_VALUES STRUCTURE RGSB4
              USING    P_SETNR.
 
  CALL FUNCTION 'G_SET_GET_ALL_VALUES'
    EXPORTING
      SETNR         = P_SETNR
      CLASS         = '0000'
    TABLES
      SET_VALUES    = P_TAB_VALUES[]
    EXCEPTIONS
      SET_NOT_FOUND = 1
      OTHERS        = 2.
ENDFORM.                    " GET_SET
 
  PERFORM GET_SET TABLES TAB_VALUES
                   USING 'GL_ACCT_REQ_TRADPTNR_MS'. "科目 - 贸易伙伴必输(不能为9999)
  LOOP AT TAB_VALUES INTO REC_VALUES.
    R_HKONT_MS-SIGN = 'I'.
    IF REC_VALUES-TO NE SPACE.
      R_HKONT_MS-OPTION = 'BT'.
      R_HKONT_MS-HIGH = REC_VALUES-TO.
    ELSE.
      R_HKONT_MS-OPTION = 'EQ'.
    ENDIF.
    R_HKONT_MS-LOW = REC_VALUES-FROM.
    APPEND R_HKONT_MS.             "科目 - 贸易伙伴必输(不能为9999)
  ENDLOOP.

三、 STVARV 维护SAP全局变量

1.使用事务码:STVARV( STVARVC)维护变量,维护好后内容会保存到表TVARV,

2.使用时从表中取出数据,

FUNCTION Z_GET_STVARV_VARIANTS .
*"----------------------------------------------------------------------
*"*"Local Interface:
*"  IMPORTING
*"     REFERENCE(I_TVARVC_TYPE) TYPE  RSSCR_KIND
*"     REFERENCE(I_TVARVC_NAME) TYPE  RVARI_VNAM
*"  CHANGING
*"     REFERENCE(CT_TVARVC_VAL) TYPE  ZSTVARV_TAB
*"----------------------------------------------------------------------
  DATA: LT_TVARVC TYPE TABLE OF TVARVC..
   REFRESH LT_TVARVC.
  SELECT * 
    INTO CORRESPONDING FIELDS OF TABLE LT_TVARVC
    FROM TVARVC
    WHERE NAME EQ I_TVARVC_NAME
    AND TYPE EQ I_TVARVC_TYPE.
  IF SY-SUBRC EQ 0.
    APPEND LINES OF LT_TVARVC TO CT_TVARVC_VAL.
  ENDIF.
  FREE LT_TVARVC.
 
ENDFUNCTION.
DATA: lv_time   TYPE TVARV_VAL,
       lv_tvarvc(25) .
 CONSTANTS lv_prefix(25) VALUE 'ZZXXS_'.
 
 CONCATENATE lv_prefix p_werks INTO lv_tvarvc.
 SELECT SINGLE low INTO lv_time
    FROM tvarvc
    WHERE name = lv_tvarvc
    AND type = 'P'.
    IF sy-subrc eq 0.
      g_time = lv_time.
    ELSE.
      g_time = '000000'.
    ENDIF.
  CLEAR:lv_time,lv_tvarvc.

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ᝰ随心ꦿེএ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值