SELECT-SCREEN語句用於創建屏幕的框架結構,主要包括屏幕元素的創建、子屏幕的創建等。子程序主要分為兩種,一種為Include Screen,可以通過Report端程序直接調用;另一種為SubScreen,需要通過Screen Painter所創建的屏幕調用。SELECT-SCREEN具體的應用語法如下:
(1)SELECTION-SCREEN BEGIN OF SCREEN src.
.......
SELECTION-SCREEN END OF SCREEN src.
該語法用於定義一個INCLUDE SUREEN,可通過CALL方法在Report程序中引用,CALL屏幕窗體時加入STARTING AT ... ENDING AT ...參數可以將所定義屏幕窗體作為一個新的對話框窗體來引用,並指定期創建的具體大小及位置,如下代碼所示:
REPORT ZZWEISTSCREEN.
SELECTION-SCREEN BEGIN OF SCREEN 1314 AS WINDOW TITLE TEXT-W01. "TEXT-W01為對話框的標題,在文本符號中可以設置
PARAMETERS:MATNR LIKE MARA-MATNR.
PARAMETERS:T AS CHECKBOX.
SELECTION-SCREEN END OF SCREEN 1314.
CALL SCREEN 1314 STARTING AT 30 5 ENDING AT 90 5. "調用SELECTION-SCREEN
程序執行結果如下:
需要注意的是,此時窗體的名稱必須為Numeric(數字)類型的的,如將上面代碼中的1314改為myscreen,那么程序將提示以下錯誤:
注意:當從一個主屏幕中來調用其程序中的另一窗體時,必須使用CALL SELECTION-SCREEN方法,如下通過SELECTION-SCREEN調用Include Screen。
REPORT ZZWEISTSCREEN.
PARAMETERS:T AS CHECKBOX. "第一個窗體元素
CALL SELECTION-SCREEN 1314."SELECTION-SCREEN調用另一個窗體
SELECTION-SCREEN BEGIN OF SCREEN 1314 AS WINDOW TITLE TEXT-W01.
PARAMETERS:MATNR LIKE MARA-MATNR.
SELECTION-SCREEN END OF SCREEN 1314.
(2)SELECTION-SCREEN BEGIN OF SCREEN sra AS SUBSCREEN.
該語法用於定義一個SUBSCREEN,SUBSCREEN主要用於SCREEN PAINTER所創建屏幕。
(3)SELECTION-SCREEN BEGIN OF BLOCK block.
......
SELECTION-SCREEN END OF BLOCK.
該語法在屏幕中定義一個BLOCK,其擴展語法包括:
...WITH FRAME:創建一個框架
...TITLE title:創建一個帶標題的框架。
...NO INTERVALS:所創建的框架中限制SELECT只有一個輸入項。
以下為示例代碼:
DATA MAT LIKE MARA-MATNR.
*不包含擴展語法
SELECTION-SCREEN BEGIN OF BLOCK block1.
SELECT-OPTIONS:MATNR1 FOR MAT.
SELECTION-SCREEN END OF BLOCK block1.
*包含框架
SELECTION-SCREEN BEGIN OF BLOCK block2 WITH FRAME.
SELECT-OPTIONS:MATNR2 FOR MAT.
SELECTION-SCREEN END OF BLOCK block2.
*包含框架及標頭
SELECTION-SCREEN BEGIN OF BLOCK block3 WITH FRAME TITLE TEXT-W01.
SELECT-OPTIONS:MATNR3 FOR MAT.
SELECTION-SCREEN END OF BLOCK block3.
*包含框架及標頭且只有一個輸入框
SELECTION-SCREEN BEGIN OF BLOCK block4 WITH FRAME TITLE TEXT-W01 NO INTERVALS.
SELECT-OPTIONS:MATNR4 FOR MAT.
SELECTION-SCREEN END OF BLOCK block4.
代碼運行界面如下:
下一篇,我們將繼續講解,盡請期待!
