ABAP选择屏幕 - 年度月份快速选择

本文介绍了一种在创建报表时,通过添加上下箭头按钮和月份选择功能,灵活调整会计年度和月份范围的方法,代码示例展示了如何使用用户命令和参数进行操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

很多时候在做报表时遇到会计年度和月份的查询条件时通常我们都是使用F4搜索帮助或者下拉框,之前一直想着用按钮来实现,后来看到有些标准事务码使用了,自己做个测试用例,具体如下:

选择屏幕见截图,主要是加了向上/向下的按钮,可选择调整开始或截止月按钮来调整月份,同时也加了截止月和开始月的比较

代码比较简单,可直接使用

TABLES:SSCRFIELDS.

*----------------------------------------------------------------------*
* SELECTION-SCREEN
*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-010.

  SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN POSITION 33.
    PARAMETERS P_GJAHR TYPE KKB_GJAHR1 OBLIGATORY DEFAULT SY-DATUM+0(4).
    SELECTION-SCREEN COMMENT 1(10) TEXT-006 FOR FIELD P_GJAHR.

    SELECTION-SCREEN: PUSHBUTTON 48(2) Q2 USER-COMMAND C2.
    SELECTION-SCREEN: PUSHBUTTON 51(2) Q3 USER-COMMAND C3.

  SELECTION-SCREEN END OF LINE.

  SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 01(31) TEXT-005 FOR FIELD P_MONAT.
    PARAMETERS P_MONAT TYPE MONTH12 OBLIGATORY MEMORY ID P_MONAT DEFAULT '01'.
    SELECTION-SCREEN COMMENT 38(5) TEXT-002 FOR FIELD P_MONAT2.
    PARAMETERS P_MONAT2 TYPE MONTH12 OBLIGATORY MEMORY ID P_MONAT2 DEFAULT '12'.

    SELECTION-SCREEN: PUSHBUTTON 48(2) Q4 USER-COMMAND C4.
    SELECTION-SCREEN: PUSHBUTTON 51(2) Q5 USER-COMMAND C5.

    SELECTION-SCREEN POSITION 55.
    PARAMETERS P2 RADIOBUTTON GROUP R1 MODIF ID S1.
    SELECTION-SCREEN COMMENT 56(10) TEXT-003 FOR FIELD P2.

    SELECTION-SCREEN POSITION 68.
    PARAMETERS P3 RADIOBUTTON GROUP R1 MODIF ID S1.
    SELECTION-SCREEN COMMENT 69(10) TEXT-004 FOR FIELD P3.
  SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN END OF BLOCK B1.

*----------------------------------------------------------------------*
* INITIALIZATION
*----------------------------------------------------------------------*
INITIALIZATION.
  Q2 = '▼'.
  Q3 = '▲'.
  Q4 = '▼'.
  Q5 = '▲'.

*----------------------------------------------------------------------*
* AT SELECTION-SCREEN
*----------------------------------------------------------------------*
AT SELECTION-SCREEN.
  CASE SSCRFIELDS-UCOMM.
    WHEN 'C2'.
      P_GJAHR = P_GJAHR - 1.

    WHEN 'C3'.
      P_GJAHR = P_GJAHR + 1.
      IF P_GJAHR > SY-DATUM+0(4).
        P_GJAHR = SY-DATUM+0(4).
      ENDIF.

    WHEN 'C4'.
      IF P2 = 'X'.
        P_MONAT = P_MONAT - 1.
      ELSEIF P3 = 'X'.
        P_MONAT2 = P_MONAT2 - 1.
        IF P_MONAT2 < P_MONAT.
          P_MONAT2 = P_MONAT.
        ENDIF.
      ENDIF.

    WHEN 'C5'.
      IF P2 = 'X'.
        P_MONAT = P_MONAT + 1.
        IF P_MONAT > P_MONAT2.
          P_MONAT = P_MONAT2.
        ENDIF.
      ELSEIF P3 = 'X'.
        P_MONAT2 = P_MONAT2 + 1.
        IF P_MONAT2 > '12'.
          P_MONAT2 = '12'.
        ENDIF.
      ENDIF.

  ENDCASE.

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值