*----------------------------------------------------------------------*
* Program Name: Z_KEVIN_TABLECONTROL
* Project : N/A
* Author : Kevin.Zhang
* Date : 2007.1.1
* Module : N/A
* Description : Template of Program
*
*
*
* Special features: N/A
*
*
*----------------------------------------------------------------------*
* Modifications:
* Author Date Commented as Description
*----------- -------- ----------- ----------------------------------*
*
*----------------------------------------------------------------------*
REPORT Z_KEVIN_TABLECONTROL.
*$*$----------------------------------------------------------------$*$*
*$*$ Global Types, Data Statements, Ranges, Constants $*$*
*$*$----------------------------------------------------------------$*$*
*-----------------------------------------------------------------------
* Types
*-----------------------------------------------------------------------
TYPES : BEGIN OF T_ZKEVIN.
TYPES : LINE TYPE C .
INCLUDE STRUCTURE ZKEVIN.
TYPES : END OF T_ZKEVIN.
TYPES : BEGIN OF T_SAVE.
INCLUDE STRUCTURE ZKEVIN.
TYPES : END OF T_SAVE.
*-----------------------------------------------------------------------
* Internal Tables and Work Areas
*-----------------------------------------------------------------------
DATA GT_ZKEVIN TYPE STANDARD TABLE OF T_ZKEVIN.
DATA GS_ZKEVIN TYPE T_ZKEVIN.
DATA GT_DELE TYPE STANDARD TABLE OF T_ZKEVIN.
DATA GS_DELE TYPE T_ZKEVIN.
DATA GT_SAVE TYPE STANDARD TABLE OF T_SAVE.
DATA GS_SAVE TYPE T_SAVE.
*-----------------------------------------------------------------------
* Variables
*-----------------------------------------------------------------------
*&SPWIZARD: LINES OF TABLECONTROL 'ZTC'
DATA : G_ZTC_LINES LIKE SY-LOOPC.
DATA : OK_CODE LIKE SY-UCOMM.
*-----------------------------------------------------------------------
* Global GUI Controls Variables / Structures
*-----------------------------------------------------------------------
*&SPWIZARD: DECLARATION OF TABLECONTROL 'ZTC' ITSELF
CONTROLS : ZTC TYPE TABLEVIEW USING SCREEN 1000 .
*$*$----------------------------------------------------------------$*$*
*$*$ Main Program $*$*
*$*$----------------------------------------------------------------$*$*
*--------- START-OF-SELECTION ----------
SELECT *
FROM ZKEVIN
INTO CORRESPONDING FIELDS OF TABLE GT_ZKEVIN.
SORT GT_ZKEVIN BY ID .
CALL SCREEN 1000 .
*--------- END-OF-SELECTION ----------
*$*$----------------------------------------------------------------$*$*
*$*$ Subroutines $*$*
*$*$----------------------------------------------------------------$*$*
*&SPWIZARD: OUTPUT MODULE FOR TC 'ZTC'. DO NOT CHANGE THIS LINE!
*&SPWIZARD: UPDATE LINES FOR EQUIVALENT SCROLLBAR
MODULE ZTC_CHANGE_TC_ATTR OUTPUT .
DESCRIBE TABLE GT_ZKEVIN LINES ZTC- LINES .
ENDMODULE . "ZTC_CHANGE_TC_ATTR OUTPUT
*&SPWIZARD: OUTPUT MODULE FOR TC 'ZTC'. DO NOT CHANGE THIS LINE!
*&SPWIZARD: GET LINES OF TABLECONTROL
MODULE ZTC_GET_LINES OUTPUT .
G_ZTC_LINES = SY-LOOPC.
ENDMODULE . "ZTC_GET_LINES OUTPUT
*&SPWIZARD: INPUT MODULE FOR TC 'ZTC'. DO NOT CHANGE THIS LINE!
*&SPWIZARD: MODIFY TABLE
MODULE ZTC_MODIFY INPUT .
MODIFY GT_ZKEVIN
FROM GS_ZKEVIN
INDEX ZTC-CURRENT_LINE.
ENDMODULE . "ZTC_MODIFY INPUT
*&SPWIZARD: INPUT MODUL FOR TC 'ZTC'. DO NOT CHANGE THIS LINE!
*&SPWIZARD: MARK TABLE
MODULE ZTC_MARK INPUT .
DATA : G_ZTC_WA2 LIKE LINE OF GT_ZKEVIN.
IF ZTC-LINE_SEL_MODE = 1
AND GS_ZKEVIN- LINE = 'X' .
LOOP AT GT_ZKEVIN INTO G_ZTC_WA2
WHERE LINE = 'X' .
G_ZTC_WA2- LINE = '' .
MODIFY GT_ZKEVIN
FROM G_ZTC_WA2
TRANSPORTING LINE .
ENDLOOP .
ENDIF .
MODIFY GT_ZKEVIN
FROM GS_ZKEVIN
INDEX ZTC-CURRENT_LINE
TRANSPORTING LINE .
ENDMODULE . "ZTC_MARK INPUT
*&SPWIZARD: INPUT MODULE FOR TC 'ZTC'. DO NOT CHANGE THIS LINE!
*&SPWIZARD: PROCESS USER COMMAND
MODULE ZTC_USER_COMMAND INPUT .
OK_CODE = SY-UCOMM.
PERFORM USER_OK_TC USING 'ZTC'
'GT_ZKEVIN'
'LINE'
CHANGING OK_CODE.
SY-UCOMM = OK_CODE.
ENDMODULE . "ZTC_USER_COMMAND INPUT
*----------------------------------------------------------------------*
* INCLUDE TABLECONTROL_FORMS *
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form USER_OK_TC *
*&---------------------------------------------------------------------*
FORM USER_OK_TC USING P_TC_NAME TYPE DYNFNAM
P_TABLE_NAME
P_MARK_NAME
CHANGING P_OK LIKE SY-UCOMM.
*&SPWIZARD: BEGIN OF LOCAL DATA----------------------------------------*
DATA : L_OK TYPE SY-UCOMM,
L_OFFSET TYPE I .
*&SPWIZARD: END OF LOCAL DATA------------------------------------------*
*&SPWIZARD: Table control specific operations *
*&SPWIZARD: evaluate TC name and operations *
SEARCH P_OK FOR P_TC_NAME.
IF SY-SUBRC <> 0 .
EXIT .
ENDIF .
L_OFFSET = STRLEN ( P_TC_NAME ) + 1 .
L_OK = P_OK+L_OFFSET.
*&SPWIZARD: execute general and TC specific operations *
CASE L_OK.
WHEN 'INSR' . "insert row
PERFORM FCODE_INSERT_ROW USING P_TC_NAME
P_TABLE_NAME.
CLEAR P_OK.
WHEN 'DELE' . "delete row
PERFORM FCODE_DELETE_ROW USING P_TC_NAME
P_TABLE_NAME
P_MARK_NAME.
CLEAR P_OK.
WHEN 'P--' OR "top of list
'P-' OR "previous page
'P+' OR "next page
'P++' . "bottom of list
PERFORM COMPUTE_SCROLLING_IN_TC USING P_TC_NAME
L_OK.
CLEAR P_OK.
* WHEN 'L--'. "total left
* PERFORM FCODE_TOTAL_LEFT USING P_TC_NAME.
*
* WHEN 'L-'. &n
* Program Name: Z_KEVIN_TABLECONTROL
* Project : N/A
* Author : Kevin.Zhang
* Date : 2007.1.1
* Module : N/A
* Description : Template of Program
*
*
*
* Special features: N/A
*
*
*----------------------------------------------------------------------*
* Modifications:
* Author Date Commented as Description
*----------- -------- ----------- ----------------------------------*
*
*----------------------------------------------------------------------*
REPORT Z_KEVIN_TABLECONTROL.
*$*$----------------------------------------------------------------$*$*
*$*$ Global Types, Data Statements, Ranges, Constants $*$*
*$*$----------------------------------------------------------------$*$*
*-----------------------------------------------------------------------
* Types
*-----------------------------------------------------------------------
TYPES : BEGIN OF T_ZKEVIN.
TYPES : LINE TYPE C .
INCLUDE STRUCTURE ZKEVIN.
TYPES : END OF T_ZKEVIN.
TYPES : BEGIN OF T_SAVE.
INCLUDE STRUCTURE ZKEVIN.
TYPES : END OF T_SAVE.
*-----------------------------------------------------------------------
* Internal Tables and Work Areas
*-----------------------------------------------------------------------
DATA GT_ZKEVIN TYPE STANDARD TABLE OF T_ZKEVIN.
DATA GS_ZKEVIN TYPE T_ZKEVIN.
DATA GT_DELE TYPE STANDARD TABLE OF T_ZKEVIN.
DATA GS_DELE TYPE T_ZKEVIN.
DATA GT_SAVE TYPE STANDARD TABLE OF T_SAVE.
DATA GS_SAVE TYPE T_SAVE.
*-----------------------------------------------------------------------
* Variables
*-----------------------------------------------------------------------
*&SPWIZARD: LINES OF TABLECONTROL 'ZTC'
DATA : G_ZTC_LINES LIKE SY-LOOPC.
DATA : OK_CODE LIKE SY-UCOMM.
*-----------------------------------------------------------------------
* Global GUI Controls Variables / Structures
*-----------------------------------------------------------------------
*&SPWIZARD: DECLARATION OF TABLECONTROL 'ZTC' ITSELF
CONTROLS : ZTC TYPE TABLEVIEW USING SCREEN 1000 .
*$*$----------------------------------------------------------------$*$*
*$*$ Main Program $*$*
*$*$----------------------------------------------------------------$*$*
*--------- START-OF-SELECTION ----------
SELECT *
FROM ZKEVIN
INTO CORRESPONDING FIELDS OF TABLE GT_ZKEVIN.
SORT GT_ZKEVIN BY ID .
CALL SCREEN 1000 .
*--------- END-OF-SELECTION ----------
*$*$----------------------------------------------------------------$*$*
*$*$ Subroutines $*$*
*$*$----------------------------------------------------------------$*$*
*&SPWIZARD: OUTPUT MODULE FOR TC 'ZTC'. DO NOT CHANGE THIS LINE!
*&SPWIZARD: UPDATE LINES FOR EQUIVALENT SCROLLBAR
MODULE ZTC_CHANGE_TC_ATTR OUTPUT .
DESCRIBE TABLE GT_ZKEVIN LINES ZTC- LINES .
ENDMODULE . "ZTC_CHANGE_TC_ATTR OUTPUT
*&SPWIZARD: OUTPUT MODULE FOR TC 'ZTC'. DO NOT CHANGE THIS LINE!
*&SPWIZARD: GET LINES OF TABLECONTROL
MODULE ZTC_GET_LINES OUTPUT .
G_ZTC_LINES = SY-LOOPC.
ENDMODULE . "ZTC_GET_LINES OUTPUT
*&SPWIZARD: INPUT MODULE FOR TC 'ZTC'. DO NOT CHANGE THIS LINE!
*&SPWIZARD: MODIFY TABLE
MODULE ZTC_MODIFY INPUT .
MODIFY GT_ZKEVIN
FROM GS_ZKEVIN
INDEX ZTC-CURRENT_LINE.
ENDMODULE . "ZTC_MODIFY INPUT
*&SPWIZARD: INPUT MODUL FOR TC 'ZTC'. DO NOT CHANGE THIS LINE!
*&SPWIZARD: MARK TABLE
MODULE ZTC_MARK INPUT .
DATA : G_ZTC_WA2 LIKE LINE OF GT_ZKEVIN.
IF ZTC-LINE_SEL_MODE = 1
AND GS_ZKEVIN- LINE = 'X' .
LOOP AT GT_ZKEVIN INTO G_ZTC_WA2
WHERE LINE = 'X' .
G_ZTC_WA2- LINE = '' .
MODIFY GT_ZKEVIN
FROM G_ZTC_WA2
TRANSPORTING LINE .
ENDLOOP .
ENDIF .
MODIFY GT_ZKEVIN
FROM GS_ZKEVIN
INDEX ZTC-CURRENT_LINE
TRANSPORTING LINE .
ENDMODULE . "ZTC_MARK INPUT
*&SPWIZARD: INPUT MODULE FOR TC 'ZTC'. DO NOT CHANGE THIS LINE!
*&SPWIZARD: PROCESS USER COMMAND
MODULE ZTC_USER_COMMAND INPUT .
OK_CODE = SY-UCOMM.
PERFORM USER_OK_TC USING 'ZTC'
'GT_ZKEVIN'
'LINE'
CHANGING OK_CODE.
SY-UCOMM = OK_CODE.
ENDMODULE . "ZTC_USER_COMMAND INPUT
*----------------------------------------------------------------------*
* INCLUDE TABLECONTROL_FORMS *
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form USER_OK_TC *
*&---------------------------------------------------------------------*
FORM USER_OK_TC USING P_TC_NAME TYPE DYNFNAM
P_TABLE_NAME
P_MARK_NAME
CHANGING P_OK LIKE SY-UCOMM.
*&SPWIZARD: BEGIN OF LOCAL DATA----------------------------------------*
DATA : L_OK TYPE SY-UCOMM,
L_OFFSET TYPE I .
*&SPWIZARD: END OF LOCAL DATA------------------------------------------*
*&SPWIZARD: Table control specific operations *
*&SPWIZARD: evaluate TC name and operations *
SEARCH P_OK FOR P_TC_NAME.
IF SY-SUBRC <> 0 .
EXIT .
ENDIF .
L_OFFSET = STRLEN ( P_TC_NAME ) + 1 .
L_OK = P_OK+L_OFFSET.
*&SPWIZARD: execute general and TC specific operations *
CASE L_OK.
WHEN 'INSR' . "insert row
PERFORM FCODE_INSERT_ROW USING P_TC_NAME
P_TABLE_NAME.
CLEAR P_OK.
WHEN 'DELE' . "delete row
PERFORM FCODE_DELETE_ROW USING P_TC_NAME
P_TABLE_NAME
P_MARK_NAME.
CLEAR P_OK.
WHEN 'P--' OR "top of list
'P-' OR "previous page
'P+' OR "next page
'P++' . "bottom of list
PERFORM COMPUTE_SCROLLING_IN_TC USING P_TC_NAME
L_OK.
CLEAR P_OK.
* WHEN 'L--'. "total left
* PERFORM FCODE_TOTAL_LEFT USING P_TC_NAME.
*
* WHEN 'L-'. &n
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9433213/viewspace-410260/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/9433213/viewspace-410260/