• [转]SAP Table Control Example


    A Good Table Control sample code:

    SCREEN 100

    PROCESS BEFORE OUTPUT.
    	MODULE STATUS_0100.
    	LOOP WITH CONTROL TCTRL_USERDATA.
    		MODULE DISPLAY_USERDATA.
    	ENDLOOP.
    	MODULE AFTER_LOOPING.
    *
    PROCESS AFTER INPUT.
    	MODULE USER_COMMAND_0100.
    	LOOP WITH CONTROL TCTRL_USERDATA.
    		MODULE EXTRACT_USERDATA.
    	ENDLOOP.
    	MODULE USER_COMMAND_0100_AFTER_LOOP.
    

    ZTBLDTOP

    *&---------------------------------------------------------------------*
    *& Include ZTBLDEMO                         Report ZTBLDEMO            *
    *&                                                                     *
    *&---------------------------------------------------------------------*
    
    REPORT   ZTBLDEMO   MESSAGE-ID AT                   .
    
    DATA: BEGIN OF RECORD,
              NAME(30),
              PHONE(20),
              EMAIL(50),
          END OF RECORD.
    
    DATA: ITAB_PHONELIST LIKE RECORD OCCURS 0 WITH HEADER LINE.
    
    CONTROLS: TCTRL_PHONELIST TYPE TABLEVIEW USING SCREEN 100.
    
    DATA: SAVE_CODE(4),
          OK_CODE(4),
          FILENAME LIKE RLGRAP-FILENAME,
          CONFIRMATION,
          SELECTION.
    

    ZTBLDEMO

    *&---------------------------------------------------------------------*
    *& Report  ZUSRDATA                                                    *
    *&                                                                     *
    *&---------------------------------------------------------------------*
    *&                                                                     *
    *&                                                                     *
    *&---------------------------------------------------------------------*
    
    INCLUDE ZTBLDTOP.                      " global Data
    
    * INCLUDE ZUSRDO01.                    " PBO-Modules                   *
    * INCLUDE ZUSRDI01.                    " PAI-Modules                   *
    * INCLUDE ZUSRDF01.                    " FORM-Routines                 *
    
    *&---------------------------------------------------------------------*
    *&      Module  STATUS_0100  OUTPUT
    *&---------------------------------------------------------------------*
    *       text
    *----------------------------------------------------------------------*
    MODULE STATUS_0100 OUTPUT.
      SET PF-STATUS 'FOR100'.
      SET TITLEBAR '100'.
    ENDMODULE.                 " STATUS_0100  OUTPUT
    
    *&---------------------------------------------------------------------*
    *&      Module  DISPLAY_USERDATA  OUTPUT
    *&---------------------------------------------------------------------*
    *       text
    *----------------------------------------------------------------------*
    MODULE DISPLAY_USERDATA OUTPUT.
        READ TABLE ITAB_PHONELIST INDEX TCTRL_PHONELIST-CURRENT_LINE.
        IF SY-SUBRC EQ 0.
            RECORD-NAME = ITAB_PHONELIST-NAME.
            RECORD-PHONE = ITAB_PHONELIST-PHONE.
            RECORD-EMAIL = ITAB_PHONELIST-EMAIL.
        ELSE.
            EXIT FROM STEP-LOOP.
        ENDIF.
    ENDMODULE.                 " DISPLAY_USERDATA  OUTPUT
    *&---------------------------------------------------------------------*
    *&      Module  USER_COMMAND_0100  INPUT
    *&---------------------------------------------------------------------*
    *       text
    *----------------------------------------------------------------------*
    MODULE USER_COMMAND_0100 INPUT.
        SAVE_CODE = OK_CODE.
        CLEAR OK_CODE.
        CASE SAVE_CODE.
            WHEN 'BACK'.
                CALL FUNCTION 'COPO_POPUP_TO_GOON'
                    EXPORTING
                         TEXTLINE1 = 'Any modifications will be lost!'
                         TEXTLINE2 = 'Are you sure?'
                         TITEL     = 'Exit The Program'
                    IMPORTING
                         answer    = confirmation.
                if confirmation = 'G'.
                    LEAVE PROGRAM.
                ENDIF.
            WHEN 'DELE'.
                CALL FUNCTION 'COPO_POPUP_TO_GOON'
                    EXPORTING
                         TEXTLINE1 = 'Selected rows will be deleted!'
                         TEXTLINE2 = 'Are you sure?'
                         TITEL     = 'Delete rows'
                    IMPORTING
                         answer    = confirmation.
                IF CONFIRMATION = 'G'.
                    REFRESH ITAB_PHONELIST.
                    CLEAR ITAB_PHONELIST.
                ENDIF.
            WHEN 'SAVE'.
                REFRESH ITAB_PHONELIST.
                CLEAR ITAB_PHONELIST.
            WHEN 'APND'.
                REFRESH ITAB_PHONELIST.
                CLEAR ITAB_PHONELIST.
            WHEN 'READ'.
                IF NOT FILENAME IS INITIAL.
                    CALL FUNCTION 'COPO_POPUP_TO_GOON'
                        EXPORTING
                             TEXTLINE1 = 'Any modifications will be lost!'
                             TEXTLINE2 = 'Are you sure?'
                             TITEL     = 'Read Another File'
                        IMPORTING
                             answer    = confirmation.
                ENDIF.
                if confirmation = 'G' or
                   FILENAME IS INITIAL.
                    CALL FUNCTION 'UPLOAD'
                        EXPORTING
                             FILENAME            =
                            'c:\temp\fonelist.txt'
                        IMPORTING
                             ACT_FILENAME        = FILENAME
                         TABLES
                              DATA_TAB            = ITAB_PHONELIST.
                ENDIF.
        ENDCASE.
    ENDMODULE.                 " USER_COMMAND_0100  INPUT
    
    *&---------------------------------------------------------------------*
    *&      Module  EXTRACT_USERDATA  INPUT
    *&---------------------------------------------------------------------*
    *       text
    *----------------------------------------------------------------------*
    MODULE EXTRACT_USERDATA INPUT.
        CASE SAVE_CODE.
            WHEN 'DELE'.
                IF SELECTION IS INITIAL AND
                   confirmation = 'G'.
                    PERFORM TRANSFER.
                ENDIF.
            WHEN 'SAVE'.
                PERFORM TRANSFER.
            WHEN 'APND'.
                PERFORM TRANSFER.
        ENDCASE.
    ENDMODULE.                 " EXTRACT_USERDATA  INPUT
    *&---------------------------------------------------------------------*
    *&      Form  TRANSFER
    *&---------------------------------------------------------------------*
    *       text
    *----------------------------------------------------------------------*
    *  -->  p1        text
    *  <--  p2        text
    *----------------------------------------------------------------------*
    FORM TRANSFER.
        CLEAR ITAB_PHONELIST.
        ITAB_PHONELIST-NAME = RECORD-NAME.
        ITAB_PHONELIST-PHONE = RECORD-PHONE.
        ITAB_PHONELIST-EMAIL = RECORD-EMAIL.
        APPEND ITAB_PHONELIST.
    ENDFORM.                    " TRANSFER
    *&---------------------------------------------------------------------*
    *&      Module  USER_COMMAND_0100_AFTER_LOOP  INPUT
    *&---------------------------------------------------------------------*
    *       text
    *----------------------------------------------------------------------*
    MODULE USER_COMMAND_0100_AFTER_LOOP INPUT.
        CASE SAVE_CODE.
            WHEN 'SAVE'.
                CALL FUNCTION 'DOWNLOAD'
                    EXPORTING
                         FILENAME            = FILENAME
                    TABLES
                         DATA_TAB            = ITAB_PHONELIST.
            WHEN 'APND'.
                 CLEAR ITAB_PHONELIST.  " a blank row being created.
                 APPEND ITAB_PHONELIST. " a blank row being added.
        ENDCASE.
    ENDMODULE.                 " USER_COMMAND_0100_AFTER_LOOP  INPUT
    

    Field List


    GUI Status


    Objects


    Table Attributes


    Table Columns

  • 相关阅读:
    轮播闪白效果
    轮播图效果
    打字游戏简约版
    js购物时的放大镜效果
    单例模式
    docker
    【spring】注解梳理
    【spring源码-1】BeanFactory + XMLBeanFactory
    【设计模式】
    【大数据Spark】PC单机Spark开发环境搭建
  • 原文地址:https://www.cnblogs.com/wequst/p/1513850.html
Copyright © 2020-2023  润新知