最近因业务需求,需要开发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/