ABAP之DIALOG

时间:2024-10-06 00:06:38

明天系统上线,数据一团糟,没人提BUG,无聊ING....

今天说说SAP开发常用的DIALOG吧

一般单独的DIALOG程序可以直接建成函数组,功能组,普通报表程序。

基本都是统一的样式,主程序中INCLUDE一系列子程序,一般包含:TOP(数据定义)、PBO(屏幕输出前的处理)、PAI(屏幕事件以及逻辑管理)、FRM(FORM包)

输出样式一般是:TC表,普通结构字段等。。。

一般的字段逻辑在PAI中,MOUDLE xxx  ON INPUT/REQUEST。

1、INPUT:有值就会执行。REQUEST:值变更才执行。这两者有很大的区别,前者很耗时,后者很严谨。

2、LOOP AT TC:这个可以简易的理解为电子显像管,从上到下,从左到右,依次输出TABLE内容。屏幕控制必须在PBO的LOOP前或中才能起效;数据处理在LOOP中或者后才能起效(之前MODIFY亦可)

3、屏幕事件接收OK_CODE必须及时清空,滚动滑轮等一系列其他事件会继续触发之前的OK_CODE事件。尤其是生成单据,跟新数据!

4、TC中添加行,更新行号    1)任意位置,这种情况一般是在PBO的LOOP前循环一遍更新序号,对效率稍有影响。

2)追加空行,修改自动生成的insert_row l_line = l_selline - <tc>-top_line + 1.
                                                                            INSERT INITIAL LINE INTO <table> INDEX l_selline.(可在此时直接用作为行号计算基数)

5、屏幕控制:一般可以在STATUS中,或者后。按钮控制单独用EXCLUDING;普通字段是否可编辑,可见等,screen-input,INVISIBLE&LENGTH