Range的用法幾種基本用法


RANGE用法類似SELECT-OPTION,為帶表頭的內表,有OPTION、SIGN、LOW、HIGH四個字段值。

定義形式:DATA R_TIME TYPE RANGE OF ZTPUBLOG-LASTP WITH HEADER LINE.

或者 RANGES R_TIME FOR ZTPUBLOG-LASTP.

1.用法一:篩選以“3*”開頭的相關數據。(OPTION = ‘CP’)

  DATA R_WERKS_3 TYPE RANGE OF VBAP-WERKS WITH HEADER LINE.
  R_WERKS_3-SIGN = 'I'.
  R_WERKS_3-OPTION = 'CP'.
  R_WERKS_3-LOW = '3*'.
  APPEND R_WERKS_3.

2.用法二:篩選值等於“CD01”~“CD07”的相關數據。(LOW值)

  DATA R_WERKS_CD TYPE RANGE OF VBAP-WERKS WITH HEADER LINE。
  R_WERKS_CD-SIGN = 'I'.
  R_WERKS_CD-OPTION = 'EQ'.
  R_WERKS_CD-LOW = 'CD01'. APPEND R_WERKS_CD.
  R_WERKS_CD-LOW = 'CD02'. APPEND R_WERKS_CD.
  R_WERKS_CD-LOW = 'CD03'. APPEND R_WERKS_CD.
  R_WERKS_CD-LOW = 'CD04'. APPEND R_WERKS_CD.
  R_WERKS_CD-LOW = 'CD05'. APPEND R_WERKS_CD.
  R_WERKS_CD-LOW = 'CD06'. APPEND R_WERKS_CD.
  R_WERKS_CD-LOW = 'CD07'. APPEND R_WERKS_CD.

3.用法三:篩選以時間為區間的相關數據。(OPTION = ‘BT’)

  DATA R_WERKS_CD TYPE RANGE OF VBAP-WERKS WITH HEADER LINE.
  CONCATENATE SY-DATUM SY-UZEIT INTO LV_ETIME.
  R_TIME-SIGN = 'I'.
  R_TIME-OPTION = 'BT'.
  SELECT SINGLE LASTP FROM ZTPUBLOG INTO LV_STIME WHERE FEILBM EQ SY-REPID.
  IF SY-SUBRC EQ 0.
    R_TIME-LOW = LV_STIME.
  ELSE.
    LV_TIME  = SY-UZEIT - 300.
    CONCATENATE SY-DATUM LV_TIME INTO LV_ETIME.
    R_TIME-LOW = LV_ETIME.
  ENDIF.
CONCATENATE SY-DATUM SY-UZEIT INTO LV_ETIME. R_TIME
-HIGH = LV_ETIME. APPEND R_TIME.

 4.用法四:新語法下的多值選擇。

DATA:R_DATA TYPE RANGE OF VBAP-WERKS.
R_DATA = VALUE #( SIGN = 'I' OPTION = 'BT'  ( LOW = 10 HIGH = 20 )
                                            ( LOW = 100 HIGH = 150 )
                             OPTION = 'GT'  ( LOW = 180 )
                             OPTION = 'LT'  ( LOW = 200 )
                             OPTION = 'EQ'  ( LOW = 8 )
                  SIGN = 'E' OPTION = 'BT'  ( LOW = 15 HIGH = 18 )
                 ).
CL_DEMO_OUTPUT=>WRITE( R_DATA ).
CL_DEMO_OUTPUT=>DISPLAY(  ).

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM