技术开发 频道

图解ABAP简单屏幕编程

【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)

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

0
相关文章