ABAP折叠屏幕设计
- 格式:doc
- 大小:93.50 KB
- 文档页数:6
ABAP折叠屏幕设计
欢迎访问:(东园公)
类似ME23N(显示采购订单)的屏幕,收缩区域内的的屏幕,可以节省空间.
全部展开:
图(S-1)
收起第二个区域:
图(S-2)
收起第一个区域:
图(S-3)
设计过程如下:
1、 主屏幕(0120)
子屏幕区域控件名称:SC_0120_1
逻辑流:
PROCESS BEFORE OUTPUT.
* MODULE STATUS_0120.
*
CALL SUBSCREEN : SC_0120_1 including sy-repid sub_screen.
PROCESS AFTER INPUT.
CALL SUBSCREEN : SC_0120_1 .
MODULE USER_COMMAND_0120.
2、 全部展开子屏幕(0130)
图(S-4)
按钮功能码:PB_0130_1
PB_0130_2
子屏幕区域控件名称:SC_0130_1,SC_0130_2
逻辑流::
PROCESS BEFORE OUTPUT.
* MODULE STATUS_0130.
*
CALL SUBSCREEN : SC_0130_1 including sy-repid '0140',
SC_0130_2 including sy-repid '0141'.
PROCESS AFTER INPUT.
* MODULE USER_COMMAND_0130.
CALL SUBSCREEN : SC_0130_1,
SC_0130_2.
3、同样设置其它子屏幕
0131:上区域展开,下区域收起,
按钮功能码:PB_0131_1,PB_0131_2,
子屏幕区域控件:SC_0131_1,SC_0131_2
逻辑流:
PROCESS BEFORE OUTPUT.
* MODULE STATUS_0131.
*
CALL SUBSCREEN SC_0131_1 including sy-repid '0140'.
PROCESS AFTER INPUT.
* MODULE USER_COMMAND_0131.
CALL SUBSCREEN SC_0131_1 .
0132:上区域收起,下区域展开
按钮功能码:PB_0132_1,PB_0132_2,
子屏幕区域控件:SC_0132_1,SC_0132_2
逻辑流:
PROCESS BEFORE OUTPUT.
* MODULE STATUS_0132.
*
CALL SUBSCREEN SC_0132_2 including sy-repid '0141'.
PROCESS AFTER INPUT.
* MODULE USER_COMMAND_0132.
CALL SUBSCREEN SC_0132_2.
0133:上区域收起,下区域收起
按钮功能码:PB_0133_1,PB_0133_2,
子屏幕区域控件:SC_0133_1,SC_0133_2
逻辑流:
PROCESS BEFORE OUTPUT.
* MODULE STATUS_0133.
*
PROCESS AFTER INPUT.
* MODULE USER_COMMAND_0133.
4、
显示表格的子屏幕0140,0141
图(S-5)
设置过程参考:Table Control多表设计<四>
5、 设置功能码事件响应:
REPORT ZMYP_TCM.
tables:mara,t001l.
data:begin of itab occurs 0.
include structure mara.
data:mark type char1.
data:end of itab.
data:begin of item occurs 0.
include structure t001l.
data:mark type char1.
data:end of item.
DATA: OK_CODE LIKE SY-UCOMM,
S_OK_CODE LIKE SY-UCOMM.
data: sub_screen like sy-dynnr .
sub_screen = '0130' .
…… ……
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0120 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0120 INPUT.”将该module放在主屏幕0120的PAI中
* DATA:lv_return_code type i.
S_OK_CODE = OK_CODE.
* CALL METHOD cl_gui_cfw=>dispatch
* IMPORTING
* return_code = lv_return_code.
*
* CHECK lv_return_code = cl_gui_cfw=>rc_noevent.
CASE S_OK_CODE.
WHEN 'PB_0130_1'. "收起上半部分 开
sub_screen = 0132 .
WHEN 'PB_0130_2'. "收起下半部分 开
sub_screen = 0131 .
WHEN 'PB_0131_1'. "收起上半部分 开
sub_screen = 0133 .
WHEN 'PB_0131_2'. "打开一下半部分 收
sub_screen = 0130 .
WHEN 'PB_0132_1'. "打开上半部分 收
sub_screen = 0130 .
WHEN 'PB_0132_2'. "收起下半部分 开
sub_screen = 0133 .
WHEN 'PB_0133_1'. "打开上半部分 收
sub_screen = 0131 . WHEN 'PB_0133_2'. "打开下半部分收
sub_screen = 0132 .
ENDCASE.
ENDMODULE. " USER_COMMAND_0120 INPUT