【原创】Dialog的开发

最近因业务需求,需要开发Dialog。碰到不少问题,总结如下:

1.栏位的显示与否。看字面意思,一直以为用InVisible,但发现此属性跟密码的显示有相关,其实是Active才对的。

2.内标的更新问题。屏幕上某栏位已设置为Input,更改此栏位的值之后,按回车发现数据没更新进內表,实际的原因是建立向导时,应该将栏设置为Input,而不仅仅在屏幕上设置。向导建立的Input/output是属于控件的属性,而后面在Screen上设置的Input/Output是屏幕的属性。

3.栏位的必输框问题。发现设置必输框之后,点退出或者取消按钮,发现不让过,系统提示此栏位必输。实际原因是需要在GUI Status上将按钮的Function Code中的Type设置为E,同时在PAI的函数后添加AT EXIT-COMMAND,问题解决!

4.栏位判断后无法更改。通过SQL来判断输入的资料是否存在,采用Message E100..方式,发现判断的栏位无法输入了,变灰了。研究CO03的代码,发现添加两三行代码即可。

CHAIN.
FIELD: ZMDOC_H-DOCNO MODULE USER_COMMAND_01
ENDCHAIN.

5.搜索帮助。一直以为有选项框的功能是系统自动带的,后来才发现原来是SearchHellp在起作用。如需要对自定义的表的栏位进行有选择框的功能,那需要建立SearchHelp。进入SE11,建立搜索帮助Z_DOC_S,指定对应的表(Selection method)以及相关的栏位(Parameter),保存激活既可。

6.锁的控制。在一个User进行操作时,需要对此条记录进行锁定,类型MM02的时候,同一个物料只允许一个人操作。进入SE11创建锁对象E_DOCNO,设置要锁的表以及锁模式,系统会自动带出Index的栏位作为锁的栏位,保存锁并激活。进到SE37,激活ENQUEUE_E_DOCNO以及DEQUEUE_E_DOCNO,然后在自己的Dialog中调用这两个函数既可。

7.修改记录的保存。当我们修改了内表记录的时候,系统会将修改的记录先保存到工作区中,然后会通过类似 MODULE TBL_ITEM_MODIFY ON CHAIN-REQUEST来进行內表更新,那可以在TBL_ITEM_MODIFY进行修改栏位的判断,并进行保存到自定义的Table中。

[@more@]

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

转载于:http://blog.itpub.net/28832/viewspace-1007657/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值