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