sap table的使用(二、按列进行排序)

先理清楚table中涉及到的数据源的关系。
在设计table的时候,当从数据字典中拖放字段的时候,会自动创建一个是数据表或结构命名的内表,程序运行之后看到的结果就是来自这个表,A表。
其次需要一个内表,用来存放从数据库中取出的数据,B表。
然后需要一个工作区,用来在A表和B表之间进行数据传输。
 
要对table中列进行排序,首先要确定当前选择的列。table中各列的名称放在A表的cols内表中,selected='X'表示被选中,先申明一个类型为A表-cols的工作区
data:col like line of A表-cols.
然后把要排序的列插入col中,即selected='X'的列
read table A表-cols into col with key selected = 'X'.
列名就放在col-screen-name中,是在"A表-列名"这样的形式存放的,我们需要的仅仅只是"列名","A表-"要过虑掉。
fieldName = col-screen-name+3.
为什么要加3呢,因为"A表-"它的长度是3.
接下来对B表进行排序。
sort B表 by (col-screen-name+3).
排序完成之后,SAP会进入PBO中,将B表排好序的数据通过工作区传输到A表中
整个过程完成。
 
完整代码如下:
controls:t_c1 type tableview  using screen to '0200'.
data:g_tab like zxsb,
        wk_tab like zxsb.
form. sort_tab.
   read table t_c1-cols into col with key selected='X'.
   if sy-subrc = 0.
      sort g_tab by (col-screen-name+5).
    
      col-selected = ''.
      modify t_c1 from col index sy-tabix.
   endif.
 
endform.
 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23353800/viewspace-730943/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/23353800/viewspace-730943/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值