ABAP:多页签的选择屏幕

35 篇文章 1 订阅

在程序中创建一个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 RFP
                                 RADIOBUTTON 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

 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值