Step 1:设计一个主屏幕,放置一个”子屏幕范围”
屏幕的逻辑流为:
PROCESS BEFORE OUTPUT.
CALL SUBSCREEN sa_2200_1 INCLUDING sy-repid '2220'.
*
PROCESS AFTER INPUT.
MODULE USER_COMMAND_0100.
CALL SUBSCREEN sa_2200_1.
MODULE USER_COMMAND_0100 INPUT.
DATA lv_return_code TYPE i.
CLEAR save_ok.
save_ok = ok_code.
CLEAR ok_code.
CLEAR gv_processed.
CALL METHOD cl_gui_cfw=>dispatch
IMPORTING
return_code = lv_return_code.
CHECK lv_return_code = cl_gui_cfw=>rc_noevent.
CASE save_ok.
WHEN 'PB_2220_1' OR 'PB_2220_2' OR 'PB_2240_1' OR 'PB_2240_2' OR
'PB_2260_1' OR 'PB_2260_2' OR 'PB_2280_1' OR 'PB_2280_2'.
PERFORM set_the_col_area_screen.
WHEN others.
* action code from the menus will be processed here.
PERFORM get_screen_number USING save_ok.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
*& Form set_the_col_area_screen
*&---------------------------------------------------------------------*
* This subroutine is used to set the subscreen for the collapsible
* areas
*----------------------------------------------------------------------*
FORM set_the_col_area_screen .
CASE save_ok.
WHEN 'PB_2220_1' OR 'PB_2260_2'. "打开下半部展开的子屏幕
gv_subscreen_2200_1 = 2280.
WHEN 'PB_2220_2' OR 'PB_2260_1'. "打开上半部展开的子屏幕
gv_subscreen_2200_1 = 2240.
WHEN 'PB_2240_1' OR 'PB_2280_2'. "打开全关闭的子屏幕
gv_subscreen_2200_1 = 2260.
WHEN 'PB_2280_1' OR 'PB_2240_2'. "打开全打开的子屏幕
gv_subscreen_2200_1 = 2220.
ENDCASE.
ENDFORM. " set_the_col_area_screen
Step 2: 最底层的两个信息子屏幕
屏幕(2290)
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="_x0000_i1025" style="WIDTH: 297.75pt; HEIGHT: 183.75pt" type="#_x0000_t75"><imagedata o:title="" src="file:///C:/DOCUME~1/wuzy/LOCALS~1/Temp/msohtml1/01/clip_image001.png"></imagedata></shape>
<shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="_x0000_i1025" style="WIDTH: 297.75pt; HEIGHT: 183.75pt" type="#_x0000_t75"><imagedata o:title="" src="file:///C:/DOCUME~1/wuzy/LOCALS~1/Temp/msohtml1/01/clip_image001.png"></imagedata></shape>
逻辑流PROCESS BEFORE OUTPUT.
*
PROCESS AFTER INPUT.
屏幕(2230)
<shape id="_x0000_i1026" style="WIDTH: 415.5pt; HEIGHT: 228pt" type="#_x0000_t75"><imagedata o:title="" src="file:///C:/DOCUME~1/wuzy/LOCALS~1/Temp/msohtml1/01/clip_image003.png"></imagedata></shape>
逻辑流
PROCESS BEFORE OUTPUT.
*
PROCESS AFTER INPUT.
Step 3: 定义全展示子屏幕 (2220)
<shape id="_x0000_i1027" style="WIDTH: 415.5pt; HEIGHT: 372pt" type="#_x0000_t75"><imagedata o:title="" src="file:///C:/DOCUME~1/wuzy/LOCALS~1/Temp/msohtml1/01/clip_image005.png"></imagedata></shape>
第一个按钮的功能码:PB_2220_1
第一个按钮的功能码:PB_2220_2
屏幕逻辑流
PROCESS BEFORE OUTPUT.
CALL SUBSCREEN SA_2220_1 including sy-repid '2290'.
CALL SUBSCREEN SA_2220_2 including sy-repid '2300'.
*
PROCESS AFTER INPUT.
CALL SUBSCREEN SA_2220_1.
CALL SUBSCREEN SA_2220_2.
Step 4:定义上半部展开的子屏幕(2240)
<shape id="_x0000_i1028" style="WIDTH: 415.5pt; HEIGHT: 316.5pt" type="#_x0000_t75"><imagedata o:title="" src="file:///C:/DOCUME~1/wuzy/LOCALS~1/Temp/msohtml1/01/clip_image007.png"></imagedata></shape>
第一个按钮的功能码:PB_2240_1
第一个按钮的功能码:PB_2240_2
屏幕逻辑流
PROCESS BEFORE OUTPUT.
CALL SUBSCREEN SA_2240_1 including sy-repid '2290'.
*
PROCESS AFTER INPUT.
CALL SUBSCREEN SA_2240_1.
Step 5:定义下半部展开的子屏幕(2280)
<shape id="_x0000_i1029" style="WIDTH: 415.5pt; HEIGHT: 239.25pt" type="#_x0000_t75"><imagedata o:title="" src="file:///C:/DOCUME~1/wuzy/LOCALS~1/Temp/msohtml1/01/clip_image009.png"></imagedata></shape>
第一个按钮的功能码:PB_2280_1
第一个按钮的功能码:PB_2280_2
屏幕逻辑流
PROCESS BEFORE OUTPUT.
CALL SUBSCREEN SA_2280_2 including sy-repid '2300'.
*
PROCESS AFTER INPUT.
CALL SUBSCREEN SA_2280_2.
Step 6:定义全关闭的子屏幕(2260)
<shape id="_x0000_i1030" style="WIDTH: 401.25pt; HEIGHT: 151.5pt" type="#_x0000_t75"><imagedata o:title="" src="file:///C:/DOCUME~1/wuzy/LOCALS~1/Temp/msohtml1/01/clip_image011.png"></imagedata></shape>
第一个按钮的功能码:PB_2260_1
第一个按钮的功能码:PB_2260_2
屏幕逻辑流
PROCESS BEFORE OUTPUT.
*
PROCESS AFTER INPUT.
本文介绍如何在SAP应用中设计折叠样式的屏幕,通过使用七个屏幕(包括主屏幕、信息屏幕及不同状态的子屏幕),实现屏幕内容的动态显示与隐藏。详细解释了各子屏幕的设计逻辑及屏幕间的调用流程。
2218

被折叠的 条评论
为什么被折叠?



