ABAP屏幕编程的一些问题

简要介绍: 此处的屏幕指的是SAP GUI中的屏幕, 屏幕又叫做dynpro动态程序, ABAP的屏幕的主要组成部分有GUI Status, GUI Title, Screen等, 简单的屏幕元素如输入框, check box, radio button,等,还有复杂些的如Table control可用来批量修改数据, Tabstrip 选项卡用来在一个区域内显示一组意义相关屏幕. 而ABAP屏幕处理中最重要的事件就是PBO PAI,前者用来动态处理屏幕展示前屏幕元素的属性,初始化数据等, 后者则跟处理用户之间的交互.

1. 屏幕字段的双击处理

在BAPI事务中可以看到许多带有下划线的字段, 字段可以双击, 并跳转到其它事务的屏幕去. 如图:

双击可以跳转到SE37,Function module的详细页:

如何实现呢?

1> 在screen painter 中勾选Responds to db click属性

这样下划线可以出现, 但为了处理双击事件,还需要在GUI Status中设置选中的function code.

这样就可以在屏幕PAI中处理双击触发的function CHOOSE.

2. Table control回车添加数据不成功

如果采用Table control wizard生成一个Table control, 且对应的内表为空, 直接在table control中填写数据时如下:

回车并不能将填写的数据填充到内表中.一回车数据就没了. 这是因为回车后触发屏幕PAI, 屏幕流中是通过LOOP 内表来传递输入的值到程序中的.

所以最好在初始化时,在内表中添加一行记录.

APPEND INITIAL LINE TO gt_sflight.

3. SCREEN 系统内表

屏幕上的输入框等元素都对应一个SCREEN结构, 这个结构的一些属性如input,output,group等可以在屏幕处理中动态更改. SCREEN结构:

在新的debugger中只能查看结构screen的内容, 如何查看整个内表SCREEN呢?

New Debugger

切换到Classic Debugger, 然后在菜单Goto中找到SCREEN Table

4. 有时候,屏幕上输入字段的F4帮助没有出现, 可能原因:

1> 输入字段类型,如果是日期的话,需要设置属性Format为Date yyyymmdd

2> Input属性为possible, Poss. Entries key 属性为Show at selection.

所以在生成屏幕元素时最好是通过Get from dictionary这样可以将字段对应的数据元素,domain等信息载入, 如图

你可能感兴趣的:(数据结构,编程)