写在前面:
主流和常用的屏幕知识,去百度或者Bing都能找到,我就不在自己的公众号里发了。
总结之前用过的一些较偏门的屏幕技术时,写了个DEMO,包括:
1、选择屏幕中嵌套其他屏幕(嵌套选择屏幕、嵌套自画屏幕)
2、自画屏幕中嵌套选择屏幕
3、在一个弹出窗口中,Write一段文字
算是给ABAP的爱好者,丰富一下知识吧。
如果你是一个在意用户体验的ABAPer,你总能为上面的每个例子找到适合的使用场景。
以下是DEMO内容的介绍。
(1/8)程序类型
REPORT
需要自己画的屏幕:2100、9000、3000
GUI状态包括S3000、S9000
(2/8)屏幕2100
子屏幕,逻辑流为空,屏幕元素如下
(3/8)屏幕9000
正常屏幕,逻辑流如下
PROCESS BEFORE OUTPUT.
MODULE status_9000.
CALL SUBSCREEN subscr INCLUDING sy-repid '9100'.
PROCESS AFTER INPUT.
CALL SUBSCREEN subscr.
MODULE user_command_9000.
屏幕元素如下
(4/8)屏幕3000
普通屏幕,逻辑流如下
PROCESS BEFORE OUTPUT.
MODULE status_3000.
PROCESS AFTER INPUT.
屏幕元素为空
(5/8)GUI状态S3000
对话框类型,功能码包括CLOSE
(6/8)GUI状态S9000
默认类型,功能码包括BACK
(7/8)程序代码
REPORT zsl_test_screen NO STANDARD PAGE HEADING.
TABLES: makt, sscrfields.
PARAMETERS: p_rb1 TYPE c RADIOBUTTON GROUP p01 DEFAULT 'X'.
PARAMETERS: p_rb2 TYPE c RADIOBUTTON GROUP p01.
PARAMETERS: p_rb3 TYPE c RADIOBUTTON GROUP p01.
SELECTION-SCREEN BEGIN OF SCREEN 2000.
SELECTION-SCREEN COMMENT /1(70) s2000_t1.
SELECTION-SCREEN BEGIN OF TABBED BLOCK block FOR 10 LINES.
SELECTION-SCREEN TAB (20) tab1 USER-COMMAND tab1.
SELECTION-SCREEN TAB (20) tab2 USER-COMMAND tab2.
SELECTION-SCREEN END OF BLOCK block.
SELECTION-SCREEN END OF SCREEN 2000.
SELECTION-SCREEN BEGIN OF SCREEN 9100 AS SUBSCREEN.
SELECTION-SCREEN BEGIN OF BLOCK 001 WITH FRAME.
SELECTION-SCREEN COMMENT /1(70) s9100_t1.
SELECT-OPTIONS: s_maktg FOR makt-maktg.
SELECTION-SCREEN END OF BLOCK 001.
SELECTION-SCREEN END OF SCREEN 9100.
INITIALIZATION.
%_p_rb1_%_app_%-text = '选择屏幕中嵌套其他屏幕'.
%_p_rb2_%_app_%-text = '自画屏幕中嵌套选择屏幕'.
%_p_rb3_%_app_%-text = '在一个弹出窗口中,Write一段文字'.
%_s_maktg_%_app_%-text = '物料描述'.
s2000_t1 = '这是一个选择屏幕'.
s9100_t1 = '这是一个选择屏幕'.
tab1 = 'TAB1'.
tab2 = 'TAB2'.
block-prog = sy-repid.
block-dynnr = '2100'.
block-activetab = 'TAB1'.
AT SELECTION-SCREEN.
IF sy-dynnr = '2000'.
CASE sscrfields-ucomm.
WHEN 'TAB1'.
block-dynnr = '2100'.
WHEN 'TAB2'.
block-dynnr = '9100'.
ENDCASE.
ENDIF.
AT USER-COMMAND.
IF sy-ucomm = 'CLOSE'.
LEAVE TO SCREEN 0.
ENDIF.
START-OF-SELECTION.
CASE 'X'.
WHEN p_rb1.
CALL SELECTION-SCREEN 2000.
WHEN p_rb2.
CALL SCREEN 9000.
WHEN p_rb3.
CALL SCREEN 3000 STARTING AT 10 1 ENDING AT 120 20.
ENDCASE.
MODULE user_command_9000 INPUT.
CASE sy-ucomm.
WHEN 'BACK'.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE.
MODULE status_9000 OUTPUT.
SET PF-STATUS 'S9000'.
ENDMODULE.
MODULE status_3000 OUTPUT.
SET PF-STATUS 'S3000'.
LEAVE TO LIST-PROCESSING AND RETURN TO SCREEN 3000.
SKIP 1.
WRITE: '在一个弹出窗口中,Write一段文字', /.
ULINE.
WRITE: '程序使用说明:', /.
WRITE: '1、...', /.
WRITE: '2、...', /.
WRITE: '3、...', /.
WRITE: '4、...', /.
WRITE: '5、...', /.
LEAVE SCREEN.
ENDMODULE.
(8/8)执行效果
选择屏幕中嵌套自画屏幕
选择屏幕中嵌套选择屏幕
自画屏幕中嵌套选择屏幕
在弹出窗口中Write一段文字
如果你有更多的屏幕使用技巧,欢迎和笔者交流,共同学习成长。微信在下方。
ABAP文章汇总:
https://mp.weixin.qq.com/s/djmMeM0qfDxPPwxbjuJABA
Excel文章汇总:
https://mp.weixin.qq.com/s/NwJ0SzIrn9hVmaCMo-UYyA
网盘永久链接:
https://mp.weixin.qq.com/s/f_WwKZdwM-vPEstTjjz_eQ
关注公众号,点下方菜单打开上面的链接,更方便哦。
笔者微信:286503700(QQ同号)
如果喜欢,谢谢转发。