ABAP 选择屏幕按钮

场景描述:获取汇率显示或者发送
先来预览图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
代码:
ZFIR003 :其中有四个包含文件

REPORT ZFIR003.

"TOP: contains declaration of varibles and constants
INCLUDE ZFIR003_TOP.

"S01: contains selection screen elements
INCLUDE ZFIR003_S01.

"E01: contains all events for selection screen
INCLUDE ZFIR003_E01.

"F01: contains all subroutines
INCLUDE ZFIR003_F01.

ZFIR003_TOP :数据定义

DATA EV_UKURS TYPE TCURR-UKURS.

ZFIR003_S01 :选择屏幕设置

SELECTION-SCREEN BEGIN OF BLOCK B1.

  "定义屏幕输入
  PARAMETERS P_KURST TYPE TCURR-KURST OBLIGATORY DEFAULT 'M' .
  PARAMETERS P_FCURR TYPE TCURR-FCURR OBLIGATORY DEFAULT 'JPY'.
  PARAMETERS P_TCURR TYPE TCURR-TCURR OBLIGATORY DEFAULT 'EUR'.
  PARAMETERS P_GDATU TYPE SY-DATUM OBLIGATORY DEFAULT SY-DATUM.

  SELECTION-SCREEN SKIP 1. "屏幕换行
  SELECTION-SCREEN PUSHBUTTON 30(10) TEXT-001 USER-COMMAND PB1. "查询按钮
  SELECTION-SCREEN SKIP 1. "屏幕换行
  SELECTION-SCREEN PUSHBUTTON 30(10) TEXT-002 USER-COMMAND PB2. "发送按钮

  SELECTION-SCREEN SKIP 1. "屏幕换行
  SELECTION-SCREEN COMMENT 30(65) TXT1 ."屏幕上输出文本

SELECTION-SCREEN END OF BLOCK B1.

上述代码讲解:
1、SELECTION-SCREEN PUSHBUTTON 30(10) TEXT-001 USER-COMMAND PB1. "查询按钮其中
PUSHBUTTON表示这是一个按钮
30(10)为PUSHBUTTON按钮在屏幕生成的位置与长度。
TEXT-001为文本元素设置文本
USER-COMMAND PB1表示给按钮设置上用户命令,命令名称为PB1
2、SELECTION-SCREEN COMMENT 30(65) TXT1 ."屏幕上输出文本
其中
COMMENT表示这是一个备注文本
30(65)为COMMENT在屏幕生成的位置与长度。
TXT1为文本内容,这里不用上面那种TEXT-001是因为后面要修改他,而TEXT-001没法修改

ZFIR003_E01 :事件流

INITIALIZATION.
  TXT1 = 'UKURS='.

AT SELECTION-SCREEN OUTPUT.


START-OF-SELECTION.
  PERFORM FRM_AUTH_CHECK.

AT SELECTION-SCREEN.
  CASE SY-UCOMM.
    WHEN 'PB1'.
      PERFORM FRM_GET_DATA.
      PERFORM FRM_DISPLAY_DATA.
    WHEN 'PB2'.
      PERFORM FRM_GET_DATA.
      PERFORM FRM_SEND_DATA.
  ENDCASE.


END-OF-SELECTION.

ZFIR003_F01 :子例程

FORM FRM_AUTH_CHECK .

ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_GET_DATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM FRM_GET_DATA .
  P_FCURR = TO_UPPER( VAL = P_FCURR ).
  P_TCURR = TO_UPPER( VAL = P_TCURR ).

  "设置有效日期
  DATA LV_VALID_DATE LIKE TCURR-GDATU.
*  CONVERT DATE SY-DATUM INTO INVERTED-DATE LV_VALID_DATE.
  LV_VALID_DATE = P_GDATU.


  SELECT SINGLE
    UKURS
    FROM TCURR
    INTO @EV_UKURS
    BYPASSING BUFFER
    WHERE
        KURST = @P_KURST
    AND FCURR = @P_FCURR
    AND TCURR = @P_TCURR
    AND GDATU = ( SELECT
                    MIN( A~GDATU )
                    FROM TCURR AS A
                    WHERE
                        A~KURST = TCURR~KURST
                    AND A~FCURR = TCURR~FCURR
                    AND A~TCURR = TCURR~TCURR
                    AND A~GDATU GE @LV_VALID_DATE )
    .
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_DISPLAY_DATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM FRM_DISPLAY_DATA .
  TXT1 = CONV CHAR20( EV_UKURS ).
  TXT1 = 'UKURS=' && TXT1.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_SEND_DATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM FRM_SEND_DATA .
  TXT1 = '发送成功'.

  "调用外部接口
ENDFORM.
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值