加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

ABAP屏幕开发之控件-TableControl

(2014-07-25 09:51:02)
标签:

sap

abap

table

controls

分类: ERP系统SAP之ABAP开发

Table Controls在屏幕开发中,算是比较常用的控件,也是较为复杂的控件,当然,要是在熟悉了它的机制之后,也是非常灵活好用的一个控件,毕竟SAP里面应用算是最多的一个控件 了。那么,什么是Table Controls呢?

         Table Controls就是一个表格(内表)的一个界面表现,它可以根据使用者的操作动态地对内表数据进行显示、更改、排序等操作。下面用一个实例来加以说明:

http://s8/mw690/0022XmNdty6KIvPCzjN77&690

上图就是一个Table Controls的例子,下面是逻辑流的部分代码:


PROCESS BEFORE 
OUTPUT.

  
MODULE T_BOMC_CHANGE_TC_ATTR.

  
LOOP AT   GT_BOMC
       
INTO GS_BOMC
       
WITH CONTROL T_BOMC
       
CURSOR T_BOMC-CURRENT_LINE.
    
MODULE T_BOMC_GET_LINES.
  
ENDLOOP.

PROCESS AFTER 
INPUT.

  
LOOP AT GT_BOMC.
    CHAIN
.
      
FIELD GS_BOMC-NUM.
      
FIELD GS_BOMC-MATNR.
      
FIELD GS_BOMC-MAKTX.
      
FIELD GS_BOMC-GNUM.
      
FIELD GS_BOMC-NAME1.
      
FIELD GS_BOMC-MENGE.
      
FIELD GS_BOMC-MEINS.
      
FIELD GS_BOMC-PRICE.
      
FIELD GS_BOMC-PROMEN.
      
FIELD GS_BOMC-MONEY.
      
FIELD GS_BOMC-DEL.
      
MODULE T_BOMC_MODIFY ON CHAIN-REQUEST.
    ENDCHAIN
.
    
FIELD GS_BOMC-SEL
      
MODULE T_BOMC_MARK ON REQUEST.
  
ENDLOOP.
  
MODULE T_BOMC_USER_COMMAND.

 

关于Table Controls的逻辑流说明可以参考这里:

         https://help.sap.com/saphelp_nw04/helpdata/en/9f/dbac5135c111d1829f0000e829fbfe/content.htm

更多信息可以参考这里:

         https://help.sap.com/saphelp_nw04/helpdata/en/9f/dbac1d35c111d1829f0000e829fbfe/content.htm

 

下面我们来分析一下这个逻辑流代码的各个部分的含义:

1. MODULE T_BOMC_CHANGE_TC_ATTR.

PBO模块是我们创建Table Controls时自动生成的,模块里面有一行代码:

 DESCRIBE TABLE GT_BOMC LINES T_BOMC-LINES.

即设置根据Table Controls目前有效的行数来设置可用行数(可编辑行数)。

2. LOOP AT GT_BOMC
       
INTO GS_BOMC
       
WITH CONTROL T_BOMC
       
CURSOR T_BOMC-CURRENT_LINE.
    
MODULE T_BOMC_GET_LINES.
  
ENDLOOP.

PBO模块主要是负责在界面显示前对数据的操作,并且可以对界面的控件属性进行操作,在MODULE T_BOMC_GET_LINES.
模块里面,因为处于LOOP中,所以在里面对数据处理需要注意,不需要再对内表写LOOP语句!

3. LOOP AT GT_BOMC.
    CHAIN
.
      
FIELD GS_BOMC-NUM.
      
FIELD GS_BOMC-MATNR.
      
FIELD GS_BOMC-MAKTX.
      
FIELD GS_BOMC-GNUM.
      
FIELD GS_BOMC-NAME1.
      
FIELD GS_BOMC-MENGE.
      
FIELD GS_BOMC-MEINS.
      
FIELD GS_BOMC-PRICE.
      
FIELD GS_BOMC-PROMEN.
      
FIELD GS_BOMC-MONEY.
      
FIELD GS_BOMC-DEL.
      
MODULE T_BOMC_MODIFY ON CHAIN-REQUEST.
    ENDCHAIN
.
    
FIELD GS_BOMC-SEL
      
MODULE T_BOMC_MARK ON REQUEST.
  
ENDLOOP.
PAI里面,是对输入进行检查,对于T_BOMC_MODIFY这个模块后面的ON CHAIN-REQUEST语句是可选的,加上这个语句之后,Table Controls会自动检查界面的值是否产生了修改操作,若有修改过任何一个在Chain里面的字段,则马上会执行这个模块的语句;若没有加上这个ON CHAIN-REQUEST,那么无论是否更改过内容,都将执行这个模块内容。

 

4.MODULE T_BOMC_USER_COMMAND.

主要是用于界面事件(如按钮事件)的处理,如全选、取消全选等等。

 

Table Controls在实际使用中还有许多其他灵活的运用技巧,当然,这只要自动亲手去做过才知道了。


0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有