zyh3033 发表于 2015-9-20 07:06:43

[转]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

*&---------------------------------------------------------------------*
*& ReportZUSRDATA                                                    *
*&                                                                     *
*&---------------------------------------------------------------------*
*&                                                                     *
*&                                                                     *
*&---------------------------------------------------------------------*
INCLUDE ZTBLDTOP.                      " global Data
* INCLUDE ZUSRDO01.                  " PBO-Modules                   *
* INCLUDE ZUSRDI01.                  " PAI-Modules                   *
* INCLUDE ZUSRDF01.                  " FORM-Routines               *
*&---------------------------------------------------------------------*
*&      ModuleSTATUS_0100OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'FOR100'.
SET TITLEBAR '100'.
ENDMODULE.               " STATUS_0100OUTPUT
*&---------------------------------------------------------------------*
*&      ModuleDISPLAY_USERDATAOUTPUT
*&---------------------------------------------------------------------*
*       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_USERDATAOUTPUT
*&---------------------------------------------------------------------*
*&      ModuleUSER_COMMAND_0100INPUT
*&---------------------------------------------------------------------*
*       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_0100INPUT
*&---------------------------------------------------------------------*
*&      ModuleEXTRACT_USERDATAINPUT
*&---------------------------------------------------------------------*
*       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_USERDATAINPUT
*&---------------------------------------------------------------------*
*&      FormTRANSFER
*&---------------------------------------------------------------------*
*       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
*&---------------------------------------------------------------------*
*&      ModuleUSER_COMMAND_0100_AFTER_LOOPINPUT
*&---------------------------------------------------------------------*
*       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_LOOPINPUT


Field List
http://members.aol.com/_ht_a/skarkada/sap/table_control/field_list.gif


GUI Status
http://members.aol.com/_ht_a/skarkada/sap/table_control/gui_status.gif


Objects
http://members.aol.com/_ht_a/skarkada/sap/table_control/objects.gif


Table Attributes
http://members.aol.com/_ht_a/skarkada/sap/table_control/table_attributes.gif


Table Columns
http://members.aol.com/_ht_a/skarkada/sap/table_control/table_columns.gif
页: [1]
查看完整版本: [转]SAP Table Control Example