FI-恒锋调整报表(开发笔记)

*&---------------------------------------------------------------------*
*& Report ZFIR093
*&---------------------------------------------------------------------*
*& Author              :  NathanSun
*& Create Date         :  2018-10-16
*& Program Type        :  Report
*& Description         :  恒锋调整报表
*&---------------------------------------------------------------------*
REPORT ZFIR093.

*&---------------------------------------------------------------------*
*& 包含               ZFIR092_TOP
*&---------------------------------------------------------------------*

TABLES:TVKO,VBAK,EKKN,VBAP.

TYPE-POOLS:SLIS.

"定义ALV输出所需变量
DATAS_LAYOUT       TYPE SLIS_LAYOUT_ALV,
      GT_FIELDCAT    TYPE SLIS_T_FIELDCAT_ALV.

TYPESBEGIN OF GTS_DATA,

        VLFAG         TYPE  C,                      "标记字段
        KUNNR         TYPE  VBAK-KUNNR,             "客户
        NAME1         TYPE  KNA1-NAME1,             "客户描述
        AUART         TYPE  VBAK-AUART,             "订单类型
        VBELN         TYPE  VBAK-VBELN,             "销售订单
        POSNR         TYPE  VBAP-POSNR,             "SO行项目
        KWMENG        TYPE  VBAP-KWMENG,            "订单数量
        VRKME         TYPE  VBAP-VRKME,             "基本单位
        MATNR         TYPE  VBAP-MATNR,             "物料代码
        ARKTX         TYPE  VBAP-ARKTX,             "物料描述
        ZKPSL         TYPE  LIPS-LFIMG,             "开票数量
        ZTHSL         TYPE  LIPS-LFIMG,             "退货数量
        ZTZSL         TYPE  LIPS-LFIMG,             "调整数量

        EBELN         TYPE  EKKN-EBELN,             "采购订单
        EBELP         TYPE  EKKN-EBELP,             "PO行项目
        MENGE         TYPE  EKPO-MENGE,             "PO数量
        NETWR         TYPE  EKPO-NETWR,             "PO净值

        RKZSL         TYPE  EKBE-MENGE,             "入库总数量
        RKZJE         TYPE  EKBE-DMBTR,             "入库暂估金额
        POKPS         TYPE  EKBE-MENGE,             "PO开票数量
        UPOKP         TYPE  EKBE-MENGE,             "PO未开票数量
        UKPJE         TYPE  EKBE-DMBTR,             "未开票金额(调整金额)
        LIFNR         TYPE  EKKO-LIFNR,             "供应商
        WERKS         TYPE  EKPO-WERKS,             "工厂

      END OF GTS_DATA.

DATAGT_DATA TYPE TABLE OF GTS_DATA WITH HEADER LINE.
DATAGS_DATA TYPE GTS_DATA .

TYPESBEGIN OF GTS_ZVM,

        VGBEL         TYPE  VBAP-VGBEL,             "参考单据的单据编号
        VGPOS         TYPE  VBAP-VGPOS,             "参考项目的项目号
        VBELN         TYPE  VBAP-VBELN,             "销售凭证
        POSNR         TYPE  VBAP-POSNR,             "销售凭证项目
        AUART         TYPE  VBAK-AUART,             "订单类型
        LFIMG         TYPE  LIPS-LFIMG,             "DN过账数量

END OF GTS_ZVM.

DATAGT_ZVM2   TYPE TABLE OF GTS_ZVM WITH HEADER LINE.
DATAGT_ZVM2_C TYPE TABLE OF GTS_ZVM WITH HEADER LINE.
DATAGT_ZVM4   TYPE TABLE OF GTS_ZVM WITH HEADER LINE.
DATAGT_ZVM4_C TYPE TABLE OF GTS_ZVM WITH HEADER LINE.

TYPESBEGIN OF GTS_EKBE,

        EBELN         TYPE  EKBE-EBELN ,            "采购订单
        EBELP         TYPE  EKBE-EBELP ,            "PO行项目
        VGABE         TYPE  EKBE-VGABE ,            "业务处理/事件类型,采购订单的历史记录
        BUDAT         TYPE  EKBE-BUDAT ,            "截止日期
        MENGE         TYPE  EKBE-MENGE ,            "数量
        SHKZG         TYPE  EKBE-SHKZG ,            "借方/贷方标识
        DMBTR         TYPE  EKBE-DMBTR ,            "按本位币计的金额
        RKZSL         TYPE  EKBE-MENGE,             "入库总数量
        RKZJE         TYPE  EKBE-DMBTR,             "入库暂估金额
        POKPS         TYPE  EKBE-MENGE,             "PO开票数量
        UPOKP         TYPE  EKBE-MENGE,             "PO未开票数量
        UKPJE         TYPE  EKBE-DMBTR,             "未开票金额(调整金额)

END OF GTS_EKBE.

DATAGT_EKBE   TYPE TABLE OF GTS_EKBE WITH HEADER LINE.
DATAGT_EKBE_C TYPE TABLE OF GTS_EKBE WITH HEADER LINE.

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME.
SELECT-OPTIONSS_BUKRS  FOR  TVKO-BUKRS  MODIF ID C1 OBLIGATORY .              "公司代码
PARAMETERS:     P_AUART  LIKE VBAK-AUART  MODIF ID M1 DEFAULT 'ZVM1',           "订单类型
                P_AUDAT  LIKE VBAK-AUDAT  MODIF ID C1 OBLIGATORY .              "截止日期
SELECT-OPTIONSS_VBELN  FOR  VBAK-VBELN  MODIF ID C1,                          "销售订单号
                S_MATNR  FOR  VBAP-MATNR  MODIF ID C1,                          "物料编码
                S_EBELN  FOR  EKKN-EBELN  MODIF ID C1.                          "采购订单号
SELECTION-SCREEN END OF BLOCK B1.

 

*&---------------------------------------------------------------------*
*& 包含               ZFIR092_FOM
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&      Form  FRM_EXCLUDE_OPTION
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM FRM_EXCLUDE_OPTION .

** Define the object to be passed to the RESTRICTION parameter
*DATA RESTRICT TYPE SSCR_RESTRICT.
*
** Auxiliary objects for filling RESTRICT
*DATA : OPTLIST TYPE SSCR_OPT_LIST,
*           ASS TYPE SSCR_ASS.
*
** 限制MATNR参数只能使用‘EQ’ ‘BT’.
*  OPTLIST-NAME = 'OBJECTKEY1'.
*  OPTLIST-OPTIONS-EQ = 'X'.
*  OPTLIST-OPTIONS-BT = 'X'.
*  APPEND OPTLIST TO RESTRICT-OPT_LIST_TAB.
*
*  ASS-KIND = 'S'.
*  ASS-NAME = 'S_MONAT'.
*  ASS-SG_MAIN = 'I'.
*  ASS-SG_ADDY = SPACE.
*  ASS-OP_MAIN = 'OBJECTKEY1'.
*  APPEND ASS TO RESTRICT-ASS_TAB.
*
*  CALL FUNCTION 'SELECT_OPTIONS_RESTRICT'
*   EXPORTING
*    RESTRICTION                  = RESTRICT
*   EXCEPTIONS
*     TOO_LATE                     = 1
*     REPEATED                     = 2
*     SELOPT_WITHOUT_OPTIONS       = 3
*     SELOPT_WITHOUT_SIGNS         = 4
*     INVALID_SIGN                 = 5
*     EMPTY_OPTION_LIST            = 6
*     INVALID_KIND                 = 7
*     REPEATED_KIND_A              = 8
*     OTHERS                       = 9
*            .
*
*  IF SY-SUBRC <> 0.
*    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
*  ENDIF.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form SCREEN_OUTPUT
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM SCREEN_OUTPUT .
  LOOP AT SCREEN.
    CASE SCREEN-GROUP1.
      WHEN 'M1'.
        SCREEN-INPUT '0'.
    ENDCASE.
    MODIFY SCREEN.
  ENDLOOP.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form SCREEN_SETTING
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM SCREEN_SETTING .
* AUTHORITY-CHECK OBJECT 'M_MATE_WRK'
*  ID 'WERKS' FIELD P_WERKS.
*  IF SY-SUBRC <> 0.
*    MESSAGE '您没有工厂:'&& P_WERKS && '  的权限!' TYPE 'E' .
*  ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FOM_GETDATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM FOM_GETDATA .
  FIELD-SYMBOLS <FS> .
  DATAG_FIELD(40).
  DATAGT_TVKO TYPE TABLE OF TVKO WITH HEADER LINE.

  CLEAR GT_TVKO[] .
  SELECT VKORG INTO CORRESPONDING FIELDS OF TABLE GT_TVKO FROM TVKO
    
WHERE BUKRS IN S_BUKRS .

    IF GT_TVKO[] IS NOT INITIAL .

      CLEAR:GT_DATA[].
      SELECT
        VBAK~KUNNR
        VBAK
~AUART
        VBAK
~VBELN
        VBAP
~POSNR
        VBAP
~KWMENG
        VBAP
~VRKME
        VBAP
~MATNR
        VBAP
~ARKTX
        EKKN
~EBELN
        EKKN
~EBELP
        EKPO
~MENGE
        EKPO
~NETWR
        EKPO
~WERKS
        EKKO
~LIFNR
      
INTO CORRESPONDING FIELDS OF TABLE GT_DATA[]
        
FROM VBAK
        INNER 
JOIN VBAP ON VBAK~VBELN VBAP~VBELN
        INNER 
JOIN EKKN ON VBAP~VBELN EKKN~VBELN AND VBAP~POSNR EKKN~VBELP
        INNER 
JOIN EKPO ON EKKN~EBELN EKPO~EBELN AND EKKN~EBELP EKPO~EBELP
        INNER 
JOIN EKKO ON EKPO~EBELN EKKO~EBELN
        
FOR ALL ENTRIES IN GT_TVKO[]
        
WHERE VBAK~VKORG  GT_TVKO-VKORG
          
AND VBAK~AUART  P_AUART
          
AND VBAK~VBELN IN S_VBELN
          
AND VBAP~MATNR IN S_MATNR
          
AND EKKN~EBELN IN S_EBELN
          
.

    ENDIF.

  IF GT_DATA[] IS NOT INITIAL.

      CLEAR:GT_ZVM2[].
      SELECT
        VBAP~VGBEL
        VBAP
~VGPOS
        VBAP
~VBELN
        VBAP
~POSNR
        LIPS
~LFIMG
      
INTO CORRESPONDING FIELDS OF TABLE GT_ZVM2[]
        
FROM VBAK
        INNER 
JOIN VBAP ON VBAK~VBELN VBAP~VBELN
        INNER 
JOIN LIPS ON VBAP~VBELN LIPS~VGBEL AND VBAP~POSNR LIPS~VGPOS
        INNER 
JOIN LIKP ON LIPS~VBELN LIKP~VBELN
        
FOR ALL ENTRIES IN GT_DATA[]
        
WHERE VBAP~VGBEL  GT_DATA-VBELN
          
AND VBAP~VGPOS  GT_DATA-POSNR
          
AND VBAK~AUART 'ZVM2'
          AND LIPS~WBSTA  'C'
          AND LIKP~WADAT_IST <= P_AUDAT
          
.

      CLEAR GT_ZVM2_C[] .
      GT_ZVM2_C[] GT_ZVM2[].

      SORT GT_ZVM2[] BY VGBEL VGPOS .
      DELETE ADJACENT DUPLICATES FROM GT_ZVM2[] COMPARING VGBEL VGPOS.

      LOOP AT GT_ZVM2.
        CLEAR GT_ZVM2-LFIMG .
        LOOP AT GT_ZVM2_C WHERE VGBEL GT_ZVM2-VGBEL AND VGPOS GT_ZVM2-VGPOS.
           GT_ZVM2-LFIMG GT_ZVM2-LFIMG + GT_ZVM2_C-LFIMG .
           CLEAR GT_ZVM2_C .
        ENDLOOP.
        MODIFY GT_ZVM2 .
        CLEAR GT_ZVM2 .
      ENDLOOP.

      CLEAR:GT_ZVM4[].
      SELECT
        VBAP~VGBEL
        VBAP
~VGPOS
        VBAP
~VBELN
        VBAP
~POSNR
        LIPS
~LFIMG
      
INTO CORRESPONDING FIELDS OF TABLE GT_ZVM4[]
        
FROM VBAK
        INNER 
JOIN VBAP ON VBAK~VBELN VBAP~VBELN
        INNER 
JOIN LIPS ON VBAP~VBELN LIPS~VGBEL AND VBAP~POSNR LIPS~VGPOS
        INNER 
JOIN LIKP ON LIPS~VBELN LIKP~VBELN
        
FOR ALL ENTRIES IN GT_ZVM2[]
        
WHERE VBAP~VGBEL  GT_ZVM2-VBELN
          
AND VBAP~VGPOS  GT_ZVM2-POSNR
          
AND VBAK~AUART  'ZVM4'
          AND LIPS~WBSTA  'C'
          AND LIKP~WADAT_IST <= P_AUDAT
          
.

      LOOP AT GT_ZVM4.
        READ TABLE GT_ZVM2 WITH KEY VBELN GT_ZVM4-VGBEL POSNR GT_ZVM4-VGPOS .
        GT_ZVM4-VGBEL GT_ZVM2-VGBEL .
        GT_ZVM4-VGPOS GT_ZVM2-VGPOS .
        MODIFY GT_ZVM4 .
        CLEAR GT_ZVM4 .
      ENDLOOP.

      CLEAR GT_ZVM4_C[] .
      GT_ZVM4_C[] GT_ZVM4[].

      SORT GT_ZVM4[] BY VGBEL VGPOS .
      DELETE ADJACENT DUPLICATES FROM GT_ZVM4[] COMPARING VGBEL VGPOS.

      LOOP AT GT_ZVM4.
        CLEAR GT_ZVM4-LFIMG .
        LOOP AT GT_ZVM4_C WHERE VGBEL GT_ZVM4-VGBEL AND VGPOS GT_ZVM4-VGPOS.
           GT_ZVM4-LFIMG GT_ZVM4-LFIMG + GT_ZVM4_C-LFIMG .
           CLEAR GT_ZVM4_C .
        ENDLOOP.
        MODIFY GT_ZVM4 .
        CLEAR GT_ZVM4 .
      ENDLOOP.

      CLEAR:GT_EKBE[].
      SELECT
        EKBE~EBELN
        EKBE
~EBELP
        EKBE
~VGABE
        EKBE
~BUDAT
        EKBE
~MENGE
        EKBE
~SHKZG
        EKBE
~DMBTR
      
INTO CORRESPONDING FIELDS OF TABLE GT_EKBE[]
        
FROM EKBE
        
FOR ALL ENTRIES IN GT_DATA[]
        
WHERE EKBE~EBELN  GT_DATA-EBELN
          
AND EKBE~EBELP  GT_DATA-EBELP
          
AND EKBE~VGABE IN (1,2)
          AND EKBE~BUDAT <= P_AUDAT
          
.

      CLEAR GT_EKBE_C[] .
      GT_EKBE_C[] GT_EKBE[].

      SORT GT_EKBE[] BY EBELN EBELP VGABE .
      DELETE ADJACENT DUPLICATES FROM GT_EKBE[] COMPARING EBELN EBELP VGABE .

**入库总数量:
*Select EKBE-menge EKBE~SHKZG where ekbe~EBELN =  EKPO~EBELN and EKBE~EBELP = EKPO-EBELP and EKBE~VGABE = '1' AND EKBE~BUDAT <= '截止日期'. 一个采购订单行项目有可能存在多条收货记录,需要对收货记录进行求和。
*IF EKBE~SHKZG = ‘S’数量为正,IF EKBE~SHKZG =‘H’,数量、DMBTR为负数(EBELN EBELP SUM 一下)
*入库暂估金额:EKBE-DMBTR
      LOOP AT GT_EKBE WHERE VGABE .
        LOOP AT GT_EKBE_C WHERE EBELN GT_EKBE-EBELN AND EBELP GT_EKBE-EBELP AND VGABE GT_EKBE-VGABE.
        IF GT_EKBE_C-SHKZG 'H'.
           GT_EKBE_C-MENGE GT_EKBE_C-MENGE * -.
           GT_EKBE_C-DMBTR GT_EKBE_C-DMBTR * -.
        ENDIF.
        GT_EKBE-RKZSL GT_EKBE-RKZSL + GT_EKBE_C-MENGE .
        GT_EKBE-RKZJE GT_EKBE-RKZJE + GT_EKBE_C-DMBTR .
        CLEAR GT_EKBE_C .
        ENDLOOP.
        MODIFY GT_EKBE .
        CLEAR GT_EKBE .
      ENDLOOP.

*
**PO开票数量:
*Select EKBE-menge EKBE~SHKZG where ekbe~EBELN =  EKPO~EBELN and EKBE~EBELP = EKPO-EBELP and EKBE~VGABE = '2'AND EKBE~BUDAT <= '截止日期'. 一个采购订单行项目有可能存在多条收货记录,需要对收货记录进行求和。
*IF EKBE~SHKZG = ‘S’数量为正,IF EKBE~SHKZG =‘H’,数量、DMBTR为负数(EBELN EBELP SUM 一下)
*PO未开票数量:入库总数量-PO开票数量
*未开票金额:= PO净值 * PO未开票数量

      LOOP AT GT_EKBE WHERE VGABE .
        LOOP AT GT_EKBE_C WHERE EBELN GT_EKBE-EBELN AND EBELP GT_EKBE-EBELP AND VGABE GT_EKBE-VGABE.
        IF GT_EKBE_C-SHKZG 'H'.
           GT_EKBE_C-MENGE GT_EKBE_C-MENGE * -.
           GT_EKBE_C-DMBTR GT_EKBE_C-DMBTR * -.
        ENDIF.
        GT_EKBE-POKPS GT_EKBE-POKPS + GT_EKBE_C-MENGE .
        CLEAR GT_EKBE_C .
        ENDLOOP.
        MODIFY GT_EKBE .
        CLEAR GT_EKBE .
      ENDLOOP.

      LOOP AT GT_DATA.
        SELECT SINGLE NAME1 INTO GT_DATA-NAME1 FROM KNA1
          
WHERE KUNNR GT_DATA-KUNNR
          
.

        READ TABLE GT_ZVM2 WITH KEY VGBEL GT_DATA-VBELN VGPOS GT_DATA-POSNR .
        IF SY-SUBRC 0.
          GT_DATA-ZKPSL GT_ZVM2-LFIMG ."开票数量
        ENDIF.

        READ TABLE GT_ZVM4 WITH KEY VGBEL GT_DATA-VBELN VGPOS GT_DATA-POSNR .
        IF SY-SUBRC 0.
          GT_DATA-ZTHSL GT_ZVM4-LFIMG ."退货数量
        ENDIF.

        READ TABLE GT_EKBE WITH KEY EBELN GT_DATA-EBELN EBELP GT_DATA-EBELP VGABE .
        IF SY-SUBRC 0.
          GT_DATA-RKZSL GT_EKBE-RKZSL ."入库总数量
          GT_DATA-RKZJE GT_EKBE-RKZJE ."入库暂估金额
        ENDIF.

        READ TABLE GT_EKBE WITH KEY EBELN GT_DATA-EBELN EBELP GT_DATA-EBELP VGABE .
        IF SY-SUBRC 0.
          GT_DATA-POKPS GT_EKBE-POKPS ."PO开票数量
        ENDIF.

        GT_DATA-POKPS GT_DATA-RKZSL GT_DATA-ZKPSL + GT_DATA-ZTHSL ."调整数量

        GT_DATA-UPOKP GT_DATA-RKZSL GT_DATA-POKPS ."PO未开票数量

        GT_DATA-UKPJE GT_DATA-NETWR * GT_DATA-UPOKP ."未开票金额(调整金额)

        MODIFY GT_DATA .
        CLEAR GT_DATA .
      ENDLOOP.

  ELSE .
    MESSAGE 'NO_DATA!'TYPE'S'DISPLAY LIKE 'E'.
  ENDIF.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_DISPLAY
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM FRM_DISPLAY .
  CLEAR S_LAYOUT.
  S_LAYOUT-ZEBRA 'X'.
  S_LAYOUT-COLWIDTH_OPTIMIZE 'X'.
*  s_layout-box_fieldname    = 'BOX'.
  PERFORM FRM_FILL_FIELD .

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      IS_LAYOUT                S_LAYOUT
      IT_FIELDCAT              
GT_FIELDCAT
      I_CALLBACK_PROGRAM       
SY-REPID
      I_CALLBACK_PF_STATUS_SET 
'PF_STATUS_SET'
*     i_callback_html_top_of_page = 'HTML_TOP_OF_PAGE'
      I_CALLBACK_USER_COMMAND  'USER_COMMAND'
    TABLES
      T_OUTTAB                 GT_DATA[].
ENDFORM.

FORM FRM_FILL_FIELD .
  DATA:  WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
  DEFINE FILL_FIELD.
    wa_fieldcat-fieldname &1.
    wa_fieldcat-seltext_l &2.
*    IF wa_fieldcat-fieldname =  'MSLJH' or wa_fieldcat-fieldname =  'WCBJH'.
*      wa_fieldcat-EMPHASIZE = 'C600'. "设置字段的颜色
*    ENDIF.
*
*    IF wa_fieldcat-fieldname =  'MSLMB' or wa_fieldcat-fieldname =  'WCBMB'.
*      wa_fieldcat-EMPHASIZE = 'C710'. "设置字段的颜色
*    ENDIF.

    IF wa_fieldcat-fieldname 'PLNBEZ' OR wa_fieldcat-fieldname 'MATNR' .
      wa_fieldcat-ref_tabname 'MARA'.
      wa_fieldcat-ref_fieldname 'MATNR'.
    ENDIF.

    IF wa_fieldcat-fieldname 'ARKTX' OR wa_fieldcat-fieldname 'WAKTX' .
      wa_fieldcat-ref_tabname 'VBAP'.
      wa_fieldcat-ref_fieldname 'ARKTX'.
    ENDIF.

    IF wa_fieldcat-fieldname 'AUFNR' .
      wa_fieldcat-ref_tabname 'AUFK'.
      wa_fieldcat-ref_fieldname 'AUFNR'.
    ENDIF.

    APPEND wa_fieldcat TO gt_fieldcat.
    CLEAR wa_fieldcat.
  END-OF-DEFINITION.
  FILL_FIELD :
        'KUNNR'    '客户',
        'NAME1'    '客户描述',
        'AUART'    '订单类型',
        'VBELN'    '销售订单',
        'POSNR'    'SO行项目',
        'KWMENG'   '订单数量',
        'VRKME'    '基本单位',
        'MATNR'    '物料代码',
        'ARKTX'    '物料描述',
        'ZKPSL'    '开票数量',
        'ZTHSL'    '退货数量',
        'ZTZSL'    '调整数量',
        'EBELN'    '采购订单',
        'EBELP'    'PO行项目',
        'MENGE'    'PO数量',
        'NETWR'    'PO净值',
        'RKZSL'    '入库总数量',
        'RKZJE'    '入库暂估金额',
        'POKPS'    'PO开票数量',
        'UPOKP'    'PO未开票数量',
        'UKPJE'    '未开票金额(调整金额)',
        'LIFNR'    '供应商',
        'WERKS'    '工厂'.

ENDFORM.

FORM PF_STATUS_SET USING RT_EXTAB TYPE SLIS_T_EXTAB.
  SET PF-STATUS 'STANDARD_FULLSCREEN'.
ENDFORM.

FORM USER_COMMAND USING I_UCOMM LIKE SY-UCOMM
                    IS_SELFIELD 
TYPE SLIS_SELFIELD.
  DATAREF TYPE REF TO CL_GUI_ALV_GRID.
  DATA LV_STABLE TYPE LVC_S_STBL.   "刷新稳定性
  RANGESL_WERKS FOR T001W-WERKS.
  RANGESL_MATNR FOR MARA-MATNR.
  DATA:L_BUKRS TYPE T001K-BUKRS.

  LV_STABLE-ROW '1'.
  LV_STABLE-COL '1'.

  CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
    IMPORTING
      E_GRID REF.
  CALL METHOD REF->CHECK_CHANGED_DATA.

  CASE I_UCOMM.
    WHEN 'DEL_DJ'.
  ENDCASE.

  CALL METHOD REF->REFRESH_TABLE_DISPLAY
    
EXPORTING
      IS_STABLE LV_STABLE.

ENDFORM.

INITIALIZATION .
  PERFORM FRM_EXCLUDE_OPTION.

AT SELECTION-SCREEN OUTPUT.
  PERFORM SCREEN_OUTPUT.

AT SELECTION-SCREEN.
  PERFORM SCREEN_SETTING.

START-OF-SELECTION.
  PERFORM FOM_GETDATA .
  PERFORM FRM_DISPLAY.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值