【IT168 专稿】
以下是我记录ABAP简单屏幕编程的操作手册,希望能对你有所帮助。由于本人也是刚刚接触到屏幕编程,所以难免有好多的东西没有能说明清楚,期待与您共同讨论。
1. 创建一个程序
输入Title
Type:一般创建的时候选择Module Pool。但是为了测试方便,我这里就选择"Executable program"。

点"Save"

选择Package : "$TMP"
选择Local Object(此时不产生请求号)
2. 创建如下的代码:
REPORT ZSCREEN.
parameters: pa_anum type sbook-agencynum.
data wa_booking type sbc400_booking.
*workarea for single booking to be changed
data:wa_sbook type sbook.
data: w_sbook type sbook.
*workarea for dynpro
tables sdyn_book.
*variable for function code of user action
data: ok_code like sy-ucomm.
start-of-selection.
set pf-status 'LIST'.
set titlebar 'LIST'.
*selecting data using a dictionary view to get the data from sbook
* and the customer name from scustom
select carrid connid fldate bookid customid name
from sbc400_booking
into corresponding fields of wa_booking
where agencynum = pa_anum.
if sy-subrc = 0.
write: / wa_booking-carrid color col_key,
wa_booking-connid color col_key,
wa_booking-fldate color col_key,
wa_booking-bookid color col_key,
wa_booking-name.
hide: wa_booking-carrid,
wa_booking-connid,
wa_booking-fldate,
wa_booking-bookid,
wa_booking-name.
endif.
endselect.
clear wa_booking.
at line-selection.
select single *
from sbook
into wa_sbook
where carrid = wa_booking-carrid
and connid = wa_booking-connid
and fldate = wa_booking-fldate
and bookid = wa_booking-bookid.
if sy-subrc = 0.
move-corresponding wa_sbook to w_sbook.
* move wa_booking-name to sdyn_book-name.
call screen 100.
else.
message id 'BC400' type 'S' number '047' with wa_booking-carrid.
endif.
3. 如图:

4. 接下来创建状态栏
在程序的名称上右键->Create->GUI Status

输入Status and Short Text。Status type选择“Normal Screen”

5. 输入Pick,并双击出现如下对话框,选择第一个Radiobutton Static text,回车(确定)

6. 输入Function Text,选择Icon Name的图标,回车(确定)。

7. 在Function Key中分别输入如下内容:

8. 在Application Toolbar中输入对应的文字,然后一直按确定。

9. 激活,这样GUI Status就创建完成。
10. 在左边的GUI Status上按右键,再创建一个GUI Status,其余步骤和上一个步骤相同。

创建完成后的效果如下:

11. 激活,保存
12. 创建GUI Title
在程序的名称上右键->Create->GUI Title

输入Title Code and Title,回车(确定)。

13. 激活
14. 再创建一个GUI Title
在GUI Title上右键Create

接下来步骤和上面一样,创建一个test2 Title为:Updata Data to Table。
15. 激活
16. 接下来开始说明如何画屏幕
程序名->右键->创建->屏幕

17. 输入屏幕号(四位数)

18. 输入描述
如果这个屏幕是最后的屏幕,则屏幕号选择为0。若这个屏幕号的后面还有跟其他屏幕号,则输入其他屏幕号。
(这个有点难懂,以后有机会再说,其中会有关于PBO和PAI。)

19. 在Element List的页签下面输入OK_Code

20. 选择Layout(若不能进去,则建议重新安装客户端)

21. 选择如下的按钮

22. 选择如下按钮

23. 选择你需要的栏位,回车(确定)

24. 移动至合适的位置

25. 双击对应的框,或者选择如下的按钮,可以进行属性修改。

添加两个Button

26. 激活
27. 在Flow Logic中输入如下代码

28. 在主程序中输入如下的代码
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'DYNPRO'.
SET TITLEBAR 'DYNPRO'.
ENDMODULE. " STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*& Module CLEAR_OK_CODE OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE CLEAR_OK_CODE OUTPUT.
CLEAR OK_CODE.
ENDMODULE. " CLEAR_OK_CODE OUTPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0100 INPUT.
CASE OK_CODE.
WHEN 'BACK'.
LEAVE to SCREEN 0.
WHEN 'SAVE'.
MOVE-CORRESPONDING W_Sbook TO wa_sbook.
MESSAGE ID 'BC400' TYPE 'I' NUMBER '060'.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
29. 激活
30. 执行程序结果如下
画面一:

画面二:(其中select booking就是我们上面输入的select data from table)

画面三:(双击其中的任意一行)
