SAP 开发陷阱一箩筐(08)——做表控件的时候,怎么输入的行一回车就没了

本文解决ABAP表控件数据不回传的问题,通过在PBO事件前向内表追加数据确保PAI循环执行。同时提供简化程序结构的方法,使程序更加清晰。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一次做表控件的朋友应该都会遇到这样的情况:用向导生成了表控件,运行程序以后,所有东西看起来也都很正常,但是在表控件里输入了一行数据之后,一提交,数据就没了;跟踪一下,PAI里的循环居然不会执行,也就是说,屏幕上TC的数据没有会回传给程序的内表。

其实,仔细分析一下代码就可以发现,LOOP循环是对内表执行的,在PBO时,内表还没有数据,则到PAI时,内表也还是没有数据,因此循环被执行。解决方法就是让内表里有数据,这样循环也就可以执行了。所以,一般来说,我们在做带有表控件的程序时,应该在PBO事件的循环输出前向内表中追加若干行,这样在PAI里数据就能回传过来了。

 

另外,还有人觉得用向导做表控件时,生成的代码太乱,向导会向程序里添加很多个子程序,影响程序的清晰。这个问题解决起来也不难,在创建好程序之后,绘制屏幕之前,向主程序添加下列代码即可:

ContractedBlock.gifExpandedBlockStart.gifCode
* 表控件对象定义
  TYPE
-POOLS cxtab.
* 表控件处理程序
  INCLUDE tablecontrol_forms.

其实,表控件向导在主程序里添加的子程序都在包含程序 tablecontrol_forms 中定义,如果加入上述语句,表控件向导执行时就不再向主程序添加额外代码,程序看起来就很清晰了。

转载于:https://www.cnblogs.com/qiangsheng/archive/2009/05/22/1487118.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值