Table Control代码实现

*----------------------------------------------------------------------*
* 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/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值