ZSD-INVOICE打印

*&---------------------------------------------------------------------*
*& Report ZMMR102
*&---------------------------------------------------------------------*
*& Author              :  NathanSun
*& Create Date         :  2019-05-27
*& Program Type        :  Report
*& Description         :  INVOICE打印
*&---------------------------------------------------------------------*
REPORT ZMMR103.

*&---------------------------------------------------------------------*
*& 包含               YN_TEST02_TOP
*&---------------------------------------------------------------------*
TABLES:TVKO,MARC,EKKO,VBAP,VBRK.

TYPE-POOLS:SLIS.

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

DATAGT_DATA    TYPE TABLE OF ZTS_SF_INVOICE_HEAD WITH HEADER LINE.
DATAGT_DATA_A  TYPE TABLE OF ZTS_SF_INVOICE_HEAD WITH HEADER LINE.
DATAGT_DATA_IT TYPE TABLE OF ZTS_SF_INVOICE_ITEM WITH HEADER LINE.
DATAGV_TOP    TYPE SDYDO_TEXT_ELEMENT.

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME.
SELECT-OPTIONSS_VBELN  FOR  VBRK-VBELN  MODIF ID C1,                           "发票号码
                S_FKDAT  FOR  VBRK-FKDAT  MODIF ID C1,                           "发票日期
                S_FKART  FOR  VBRK-FKART  MODIF ID C1.                           "发票类型
PARAMETERS:     P_VKORG  LIKE VBRK-VKORG  MODIF ID C1 DEFAULT '2001' OBLIGATORY"发票组织
SELECT-OPTIONSS_KUNRG  FOR  VBRK-KUNRG  MODIF ID C1,                           "付款方
                S_KUNAG  FOR  VBRK-KUNAG  MODIF ID C1.                           "售达方
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS:
      R1 RADIOBUTTON GROUP RAD2 .
SELECTION-SCREEN COMMENT 03(19TEXT-001.  "*单选按钮的名称
PARAMETERS:
      R2 RADIOBUTTON GROUP RAD2 .
SELECTION-SCREEN COMMENT 25(20TEXT-002.  "*单选按钮的名称
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK B1.
*&---------------------------------------------------------------------*
*& 包含               YN_TEST02_FOM
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& 包含               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_WITHL_OUTPUT_OPTIONSS       = 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 .

  CLEAR GT_DATA_A[] .
  SELECT INTO CORRESPONDING FIELDS OF TABLE GT_DATA_A[] FROM VBRK
    
WHERE VKORG P_VKORG
      
AND VBELN IN S_VBELN
      
AND FKDAT IN S_FKDAT
      
AND FKART IN S_FKART
      
AND KUNRG IN S_KUNRG
      
AND KUNAG IN S_KUNAG
      
.
  DATA ADDRNUMBER  TYPE AD_ADDRNUM .
  DATA IN_WORDS    TYPE SPELL .
  DATA COUNTRY     TYPE  LAND1  .
  DATA TDID        TYPE TABLE OF TDID WITH HEADER LINE .
  DATA TLINE       TYPE TABLE OF TLINE WITH HEADER LINE .
  DATA TDNAME      TYPE TDOBNAME .

  LOOP AT GT_DATA_A.
    SELECT SINGLE NAME_ORG1 NAME_ORG2 INTO GT_DATA_A-NAME_ORG1 GT_DATA_A-NAME_ORG3 FROM BUT000
      
WHERE PARTNER GT_DATA_A-KUNRG
      
.
    CLEAR ADDRNUMBER .
    SELECT SINGLE ADDRNUMBER INTO ADDRNUMBER FROM BUT020
      
WHERE PARTNER GT_DATA_A-KUNRG
      
.
    IF SY-SUBRC 0.
      CLEAR COUNTRY .
      SELECT SINGLE STREET STR_SUPPL1 STR_SUPPL2 COUNTRY INTO GT_DATA_A-STR_SUPPL1 GT_DATA_A-STR_SUPPL2 GT_DATA_A-STR_SUPPL3 COUNTRY FROM ADRC
        
WHERE ADDRNUMBER ADDRNUMBER
        
.
      IF COUNTRY IS NOT INITIAL.
        SELECT SINGLE LANDX INTO GT_DATA_A-LANDX_FK FROM T005T
          
WHERE LAND1 COUNTRY
            AND SPRAS 'E'
          .
      ENDIF.
    ENDIF.

    SELECT SINGLE PARTNER2 ABTNR TEL_NUMBER INTO GT_DATA_A-PARTNER2 GT_DATA_A-ABTNR GT_DATA_A-TEL_NUMBER FROM BUT051
      
WHERE PARTNER1 GT_DATA_A-KUNRG
        
AND XRF 'X'
        .
    SELECT SINGLE BEZ20 INTO GT_DATA_A-BEZ20 FROM TB911
      
WHERE ABTNR GT_DATA_A-ABTNR
        
AND SPRAS 'E'
        .
    SELECT SINGLE NAME_LAST NAME_FIRST INTO GT_DATA_A-NAME_LAST GT_DATA_A-NAME_FIRST FROM BUT000
      
WHERE PARTNER GT_DATA_A-PARTNER2 .

    GT_DATA_A-NAME_ATTN GT_DATA_A-BEZ20 && '/' && GT_DATA_A-NAME_LAST && GT_DATA_A-NAME_FIRST .
*付款条件描述
    SELECT SINGLE TEXT1 INTO GT_DATA_A-TEXT1 FROM T052U
      
WHERE ZTERM GT_DATA_A-ZTERM
        
AND SPRAS 'E'
        .
*装运条件描述
    SELECT SINGLE VTEXT INTO GT_DATA_A-VTEXT FROM TVSBT
      
WHERE VSBED GT_DATA_A-VSBED
        
AND SPRAS 'E'
        .

    SELECT SINGLE NAME_ORG1 NAME_ORG2 INTO GT_DATA_A-NAME_ORG2 GT_DATA_A-NAME_ORG4 FROM BUT000
      
WHERE PARTNER GT_DATA_A-KUNAG
      
.

    CLEAR ADDRNUMBER .
    SELECT SINGLE ADDRNUMBER INTO ADDRNUMBER FROM BUT020
      
WHERE PARTNER GT_DATA_A-KUNAG
      
.

    IF SY-SUBRC 0.
      CLEAR COUNTRY .
      SELECT SINGLE STREET STR_SUPPL1 STR_SUPPL2 COUNTRY INTO GT_DATA_A-SDF_SUPPL1 GT_DATA_A-SDF_SUPPL2 GT_DATA_A-SDF_SUPPL3 COUNTRY FROM ADRC
        
WHERE ADDRNUMBER ADDRNUMBER
        
.
      IF COUNTRY IS NOT INITIAL.
        SELECT SINGLE LANDX INTO GT_DATA_A-LANDX_SD FROM T005T
          
WHERE LAND1 COUNTRY
            AND SPRAS 'E'
          .
      ENDIF.
    ENDIF.

    SELECT SINGLE ZSTG1 INTO GT_DATA_A-ZSTG1 FROM T052
      
WHERE ZTERM GT_DATA_A-ZTERM
      
.

    GT_DATA_A-DUE_DATE GT_DATA_A-FKDAT + GT_DATA_A-ZSTG1 .

    CLEAR TDID .
    CLEAR TDID[] .
    TDID 'Z001'.
    APPEND TDID .
    TDID 'Z002'.
    APPEND TDID .
    TDID 'Z003'.
    APPEND TDID .
    TDID 'Z004'.
    APPEND TDID .
    TDID 'Z005'.
    APPEND TDID .
    TDID 'Z006'.
    APPEND TDID .
    TDID '0002'.
    APPEND TDID .

    TDNAME GT_DATA_A-VBELN .
    LOOP AT TDID.
      CLEAR TLINE .
      CLEAR TLINE[] .

      CALL FUNCTION 'READ_TEXT'
        EXPORTING
          OBJECT          'VBBK'
          NAME            TDNAME
          
ID              TDID
          
LANGUAGE        'E'
        TABLES
          LINES           TLINE
        
EXCEPTIONS
          OBJECT          1
          ID              2
          LANGUAGE        3
          NAME            4
          NOT_FOUND       5
          REFERENCE_CHECK 6.

      CASE TDID.
        WHEN 'Z001'.
          LOOP AT TLINE.
            GT_DATA_A-TDLINE1 GT_DATA_A-TDLINE1 && TLINE-TDLINE .
          ENDLOOP.
        WHEN 'Z002'.
          LOOP AT TLINE.
            GT_DATA_A-TDLINE2 GT_DATA_A-TDLINE2 && TLINE-TDLINE .
          ENDLOOP.
        WHEN 'Z003'.
          LOOP AT TLINE.
            GT_DATA_A-TDLINE3 GT_DATA_A-TDLINE3 && TLINE-TDLINE .
          ENDLOOP.
        WHEN 'Z004'.
          LOOP AT TLINE.
            GT_DATA_A-TDLINE4 GT_DATA_A-TDLINE4 && TLINE-TDLINE .
          ENDLOOP.
        WHEN 'Z005'.
          LOOP AT TLINE.
            GT_DATA_A-TDLINE5 GT_DATA_A-TDLINE5 && TLINE-TDLINE .
          ENDLOOP.
        WHEN 'Z006'.
          LOOP AT TLINE.
            GT_DATA_A-TDLINE6 GT_DATA_A-TDLINE6 && TLINE-TDLINE .
          ENDLOOP.
        WHEN '0002'.
          LOOP AT TLINE.
            GT_DATA_A-TDLINE7 GT_DATA_A-TDLINE7 && TLINE-TDLINE .
          ENDLOOP.
        WHEN OTHERS.
      ENDCASE.

    ENDLOOP.

    CLEAR IN_WORDS .
    CALL FUNCTION 'SPELL_AMOUNT'
      EXPORTING
        AMOUNT    GT_DATA_A-NETWR
        
CURRENCY  GT_DATA_A-WAERK
        FILLER    
' '
        LANGUAGE  'E'
      IMPORTING
        IN_WORDS  IN_WORDS
      
EXCEPTIONS
        NOT_FOUND 1
        TOO_LARGE 2
        OTHERS    3.
    IF SY-SUBRC <> 0.
* Implement suitable error handling here
    ENDIF.

*    SAY USD
    GT_DATA_A-WORD 'SAY ' && ' ' && GT_DATA_A-WAERK && ' ' && IN_WORDS-WORD && ' ONLY' .

    MODIFY GT_DATA_A .
    CLEAR GT_DATA_A .
  ENDLOOP.

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_USER_COMMAND  'USER_COMMAND'
    TABLES
      T_OUTTAB                 GT_DATA_A[].
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 =  'CKBOX' .
      wa_fieldcat-CHECKBOX 'X'.
      wa_fieldcat-EDIT 'X'.
    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 :
        'CKBOX'    '选择列',
        'VBELN'    '开票凭证',
        'FKDAT'    '开票日期',
        'FKART'    '开票类型',
        'VKORG'    '销售组织',
        'KUNRG'    '付款方',
        'KUNAG'    '售达方',
        'NETWR'    '总金额',
        'WAERK'    '币别',
        'VSBED'    '装运条件'.
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.
  DATA:   REF 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.
  DATA:   NUM     TYPE I  .
  DATA:   TEMP    TYPE I  .
  DATA:   TEMP_Z  TYPE I  .

  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 'PRINT'."点击打印

      DATAFM_NAME TYPE RS38L_FNAM .
      DATAFORMNAME TYPE TDSFNAME .
      DATA:L_CONTROL_PARAMETERS TYPE SSFCTRLOP.
      DATA:L_OUTPUT_OPTIONS TYPE SSFCOMPOP.

      CLEAR FORMNAME .
      IF R1 IS NOT INITIAL.
        FORMNAME 'ZMMSF103_C' .
      ELSE .

*        DESCRIBE TABLE GT_DATA_IT LINES NUM .

        FORMNAME 'ZMMSF103_D' .
      ENDIF.

      CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
        EXPORTING
          FORMNAME           FORMNAME "SmartForms程序
        IMPORTING
          FM_NAME            FM_NAME
        
EXCEPTIONS
          NO_FORM            1
          NO_FUNCTION_MODULE 2
          OTHERS             3.

      IF SY-SUBRC <> 0.
*   错误处理
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
        
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        EXIT.
      ENDIF.

      GT_DATA[] GT_DATA_A[] .
      DELETE GT_DATA[] WHERE CKBOX IS INITIAL .
      IF GT_DATA[] IS NOT INITIAL.
        LOOP AT GT_DATA .

          L_CONTROL_PARAMETERS-NO_OPEN 'X'.
          L_CONTROL_PARAMETERS-NO_CLOSE 'X'."
          AT FIRST .
            L_CONTROL_PARAMETERS-NO_OPEN SPACE."首次运行时打开打印对话框
            L_CONTROL_PARAMETERS-NO_CLOSE 'X'."并且不关闭假脱机请求
          ENDAT .
*        AT LAST .
*          L_CONTROL_PARAMETERS-NO_OPEN = SPACE.
*          L_CONTROL_PARAMETERS-NO_CLOSE = 'X'."并且不关闭假脱机请求
**          L_CONTROL_PARAMETERS-PREVIEW = 'X'.
*        ENDAT .
          CLEAR GT_DATA_IT[] .
          SELECT VBELN POSNR MATNR ARKTX FKIMG VRKME NETWR INTO CORRESPONDING FIELDS OF TABLE GT_DATA_IT[] FROM VBRP
            
WHERE VBELN GT_DATA-VBELN
            
.

          IF GT_DATA_IT[] IS NOT INITIAL.
            LOOP AT GT_DATA_IT.
              SELECT SINGLE VBELV POSNV INTO GT_DATA_IT-VBELN_VA GT_DATA_IT-POSNR_VA FROM VBFA
                
WHERE VBELN GT_DATA_IT-VBELN
                  
AND POSNN GT_DATA_IT-POSNR
                  
.
              SELECT SINGLE KDMAT INTO GT_DATA_IT-KDMAT FROM VBAP
                
WHERE VBELN GT_DATA_IT-VBELN_VA
                  
AND POSNR GT_DATA_IT-POSNR_VA
                  
.
              SELECT SINGLE BSTNK INTO GT_DATA_IT-BSTNK FROM VBAK
                
WHERE VBELN GT_DATA_IT-VBELN_VA
                
.

              GT_DATA_IT-ZSLDV GT_DATA_IT-FKIMG && '/' && GT_DATA_IT-VRKME .

              IF GT_DATA_IT-FKIMG <> 0.
                GT_DATA_IT-ZHXDJ GT_DATA_IT-NETWR / GT_DATA_IT-FKIMG .
              ENDIF.

              IF GT_DATA-VBELN_VL IS INITIAL.
                SELECT SINGLE VBELN INTO GT_DATA-VBELN_VL FROM LIPS
                  
WHERE VBELV GT_DATA_IT-VBELN_VA
                    
AND VBELN <> ''
                    .
              ENDIF.

              CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
                EXPORTING
                  INPUT  GT_DATA_IT-POSNR
                
IMPORTING
                  OUTPUT GT_DATA_IT-POSNR.

              MODIFY GT_DATA_IT .
              CLEAR GT_DATA_IT .
            ENDLOOP.
          ENDIF.

*            DO 17 TIMES.
*              CLEAR GT_DATA_IT .
*              APPEND GT_DATA_IT .
*            ENDDO.

          CLEAR NUM .
          IF R1 IS NOT INITIAL.
*        FORMNAME = 'ZMMSF103_A' .
            CLEAR NUM .
            DESCRIBE TABLE GT_DATA_IT LINES NUM .
            CLEAR TEMP .
            CLEAR TEMP_Z .
            TEMP   NUM MOD 15 .
            TEMP_Z NUM DIV 15 .
            IF TEMP <> 0.
              TEMP_Z TEMP_Z + .
            ENDIF.
            GT_DATA-TEMP_Z TEMP_Z .
            IF TEMP <> 0.
              DO 15 TEMP  TIMES.
                CLEAR GT_DATA_IT .
                APPEND GT_DATA_IT .
              ENDDO.
            ENDIF.
          ELSE .
*        FORMNAME = 'ZMMSF103_D' .
            CLEAR NUM .
            DESCRIBE TABLE GT_DATA_IT LINES NUM .
            CLEAR TEMP .
            CLEAR TEMP_Z .
            TEMP   NUM MOD 15 .
            TEMP_Z NUM DIV 15 .
            IF TEMP <> 0.
              TEMP_Z TEMP_Z + .
            ENDIF.
            GT_DATA-TEMP_Z TEMP_Z .
            IF TEMP <> 0.
              DO 15 TEMP  TIMES.
                CLEAR GT_DATA_IT .
                APPEND GT_DATA_IT .
              ENDDO.
            ENDIF.

          ENDIF.

          CALL FUNCTION FM_NAME
            
EXPORTING
              CONTROL_PARAMETERS L_CONTROL_PARAMETERS
              OUTPUT_OPTIONS     
L_OUTPUT_OPTIONS
              USER_SETTINGS      
''
              GS_INVOICE_HEAD    GT_DATA
            
TABLES
              GT_INVOICE_ITEM    GT_DATA_IT[]
            
EXCEPTIONS
              FORMATTING_ERROR   1
              INTERNAL_ERROR     2
              SEND_ERROR         3
              USER_CANCELED      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.

        ENDLOOP.

        DATALS_JOB_OUTPUT_INFO TYPE SSFCRESCL.

        CALL FUNCTION 'SSF_CLOSE'
          IMPORTING
            JOB_OUTPUT_INFO  LS_JOB_OUTPUT_INFO
          
EXCEPTIONS
            FORMATTING_ERROR 1
            INTERNAL_ERROR   2
            SEND_ERROR       3
            OTHERS           4.

        IF SY-SUBRC <> 0.
**  错误处理
          MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
          
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.

      ELSE .
        MESSAGE '您还没有选择任何条目!TYPE 'S'DISPLAY LIKE 'W' .
      ENDIF.

    WHEN 'ALL'.
      LOOP AT GT_DATA_A.
        GT_DATA_A-CKBOX 'X' .
        MODIFY GT_DATA_A .
        CLEAR GT_DATA_A .
      ENDLOOP.
    WHEN 'SAL'.
      LOOP AT GT_DATA_A.
        GT_DATA_A-CKBOX '' .
        MODIFY GT_DATA_A .
        CLEAR GT_DATA_A .
      ENDLOOP.
  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、付费专栏及课程。

余额充值