在程序中创建一个100屏幕,然后设定子屏幕区域,可通过屏幕号指定页签,让选择屏幕更多样式,效果如下图:

实现方式如下
定义不同的选择屏幕
*  基本条件屏幕
SELECTION-SCREEN BEGIN OF SCREEN 1100 AS SUBSCREEN.
SELECTION-SCREEN BEGIN OF BLOCK B_JB WITH FRAME TITLE TEXT-010.SELECT-OPTIONS:S_GSBER FOR TGSB-GSBER NO INTERVALS NO-EXTENSION OBLIGATORY MEMORY ID GSB,"业务范围S_VKORG FOR TVKO-VKORG NO INTERVALS NO-EXTENSION OBLIGATORY DEFAULT '8000',"销售组织S_KUNNR FOR KNA1-KUNNR . "客户SELECTION-SCREEN END OF BLOCK B_JB.
SELECTION-SCREEN END OF SCREEN 1100.
*发票屏幕
SELECTION-SCREEN BEGIN OF SCREEN 1200 AS SUBSCREEN.
SELECTION-SCREEN BEGIN OF BLOCK B_FP WITH FRAME TITLE TEXT-020.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(7) G_FPCX."
PARAMETERS: R_FPCX USER-COMMAND RFPRADIOBUTTON GROUP RAD1.
SELECTION-SCREEN COMMENT 16(7) G_SCTS.
PARAMETERS: R_SCTS  RADIOBUTTON GROUP RAD1 DEFAULT 'X'.
SELECTION-SCREEN END OF LINE.
SELECT-OPTIONS:S_VBELN FOR VBRK-VBELN MODIF ID MTS,"发票号S_FKDAT FOR VBRK-FKDAT MODIF ID MTS,"发票日期S_FBELNR FOR ZTMM_ZTSCL-BELNR MODIF ID MTS."托收单号
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(7) G_YTS MODIF ID MTS."屏幕中横着的checkbox定义
PARAMETERS: C_YTS AS CHECKBOX MODIF ID MTS.
SELECTION-SCREEN COMMENT 16(7) G_WXTS MODIF ID MTS.
PARAMETERS: C_WXTS AS CHECKBOX MODIF ID MTS.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK B_FP.
SELECTION-SCREEN END OF SCREEN 1200.
*托收屏幕
SELECTION-SCREEN BEGIN OF SCREEN 1300 AS SUBSCREEN.
SELECTION-SCREEN BEGIN OF BLOCK B_TS WITH FRAME TITLE TEXT-030.
SELECT-OPTIONS:S_BELNR FOR VBRK-VKONT ,"托收单号S_BUDAT1 FOR ZTMM_ZTSCL-BUDAT1 ,"委托日期S_ERNAM1 FOR ZTMM_ZTSCL-ERNAM1 NO INTERVALS NO-EXTENSION, "创建者S_TVBELN  FOR VBRK-VBELN.
*
SELECTION-SCREEN BEGIN OF LINE.SELECTION-SCREEN COMMENT 1(6)  G_YSC."
PARAMETERS: C_YSC AS CHECKBOX  DEFAULT 'X'.
SELECTION-SCREEN COMMENT 13(6) G_YDY.
PARAMETERS: C_YDY AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN COMMENT 28(8) G_YJJ.
PARAMETERS: C_YJJ AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN COMMENT 45(8) G_BFHX.
PARAMETERS: C_BFHX AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN COMMENT 60(6) G_YHX.
PARAMETERS: C_YHX AS CHECKBOX.
SELECTION-SCREEN COMMENT 75(6) G_YZF.
PARAMETERS: C_YZF AS CHECKBOX.
SELECTION-SCREEN END OF LINE.
*
SELECT-OPTIONS:
S_ERNAM2 FOR ZTMM_ZTSCL-ERNAM2 NO INTERVALS NO-EXTENSION, "交接操作人
S_BUDAT2 FOR ZTMM_ZTSCL-BUDAT2, "交接日期
S_ERNAM3 FOR ZTMM_ZTSCL-ERNAM3 NO INTERVALS NO-EXTENSION, "作废操作人
S_BUDAT3 FOR ZTMM_ZTSCL-BUDAT3. "作废日期SELECTION-SCREEN END OF BLOCK B_TS.
SELECTION-SCREEN END OF SCREEN 1300.
*应收分析屏幕
SELECTION-SCREEN BEGIN OF SCREEN 1400 AS SUBSCREEN.
SELECTION-SCREEN BEGIN OF BLOCK B_YSFX WITH FRAME TITLE TEXT-040.
PARAMETERS:    P_SDATE LIKE SY-DATUM OBLIGATORY DEFAULT SY-DATUM."开始日期
PARAMETERS:    P_EDATE LIKE SY-DATUM OBLIGATORY DEFAULT SY-DATUM."截止日期SELECTION-SCREEN END OF BLOCK B_YSFX.
SELECTION-SCREEN END OF SCREEN 1400. 
 
调用自定义屏幕
*tabstrip定义
CONTROLS MYTABSTRIP TYPE TABSTRIP.START-OF-SELECTION.  MYTABSTRIP-ACTIVETAB = 'B_FP'.CALL SCREEN 100. 
自定义屏幕



PBO
MODULE 0100_PAI_STATUS OUTPUT.SET PF-STATUS 'ST_SCREEN_100'.SET TITLEBAR 'T_TITLE'.
ENDMODULE.                    "status_0100 OUTPUT
 
PAI
MODULE 0100_PBO_USER_COMMAND INPUT.SAVE_OK = OK_CODE.CLEAR OK_CODE.CASE SAVE_OK.WHEN 'B_FP'.MYTABSTRIP-ACTIVETAB = SAVE_OK.G_NUMBER = 1200.WHEN 'B_TS'.MYTABSTRIP-ACTIVETAB = SAVE_OK.G_NUMBER = 1300.WHEN 'B_YSFX'.MYTABSTRIP-ACTIVETAB = SAVE_OK.G_NUMBER = 1400.WHEN 'T_EX'."执行PERFORM AUTHORIZATION_CHECK.CASE MYTABSTRIP-ACTIVETAB.WHEN 'B_FP'.IF R_FPCX = 'X'."发票查询PERFORM SUB_FPCX.ELSEIF R_SCTS = 'X'. "生成托收PERFORM SUB_INIT_DATA."数据初始化PERFORM SUB_SCTS.ENDIF.WHEN 'B_TS'.PERFORM SUB_INIT_DATA_TSDCL."数据初始化PERFORM SUB_TSDCL."托收单处理WHEN 'B_YSFX'.PERFORM SUB_YSFX.ENDCASE.ENDCASE.ENDMODULE.                    "user_command_0100 INPUT 


















