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。
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.
(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.
代碼運作界面如下:
下一篇,我們将繼續講解,盡請期待!