ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Table Control代码实现

Table Control代码实现

原创 Linux操作系统 作者:zcywset15 时间:2008-07-26 21:54:46 0 删除 编辑
*----------------------------------------------------------------------*
* 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博客 ” ,链接:https://blog.itpub.net/9433213/viewspace-410260/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-07-26

  • 博文量
    24
  • 访问量
    39926