第七课 Function Module.

这篇文章展示了在SAPABAP中如何定义数据结构(如T_SSCRFIELDS,W_SCHID等),设置选择屏幕参数(包括单选按钮RB_INT1,RB_INT2,复选框CB_INT1,CB_INT2以及选择选项S_NAME,S_SEX等),并处理屏幕事件,如初始化和屏幕输出时的逻辑操作。代码还涉及到功能键的设定和下载EXCEL模板的功能。

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

TABLES:SSCRFIELDS.

*&---------------------------------------------------------------------*
*& DATA定義
*&---------------------------------------------------------------------*
DATA:
  T_SSCRFIELDS TYPE STANDARD TABLE OF SSCRFIELDS,
  W_SCHID   TYPE ZWMQ_E_SCHID,
  W_NAME    TYPE ZWMQ_E_NAME,
  W_SEX     TYPE ZWMQ_E_SEX,
  W_WERKS_D TYPE WERKS_D.

*&---------------------------------------------------------------------*
*& PARAMETERS/SELECT-OPTIONS
*&---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-T02.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 1.
PARAMETERS:
  RB_INT1 TYPE CHAR1 RADIOBUTTON GROUP G1 USER-COMMAND UC1.
SELECTION-SCREEN COMMENT 2(12) TEXT-T03 FOR FIELD RB_INT1.

SELECTION-SCREEN POSITION 19.

PARAMETERS:
  RB_INT2 TYPE CHAR1 RADIOBUTTON GROUP G1 DEFAULT 'X'.
SELECTION-SCREEN COMMENT 20(12) TEXT-T04 FOR FIELD RB_INT2.
SELECTION-SCREEN END OF LINE.

PARAMETERS:
  CB_INT1 TYPE CHAR1 AS CHECKBOX DEFAULT 'X',
  CB_INT2 TYPE CHAR1 AS CHECKBOX.

SELECTION-SCREEN END OF BLOCK B2.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-T01.

PARAMETERS:
  P_CODE TYPE ZSTD_WMQ001-Z_CODE MODIF ID M1 DEFAULT 102.
SELECT-OPTIONS:
  S_NAME FOR W_NAME NO-EXTENSION VISIBLE LENGTH 10 MODIF ID M1,
  S_SEX FOR W_SEX NO INTERVALS MODIF ID M1,
  S_SCHID FOR W_SCHID MODIF ID M2.

SELECTION-SCREEN END OF BLOCK B1.

SELECTION-SCREEN FUNCTION KEY 1.
SELECTION-SCREEN FUNCTION KEY 2.
SELECTION-SCREEN FUNCTION KEY 3.
SELECTION-SCREEN FUNCTION KEY 4.
SELECTION-SCREEN FUNCTION KEY 5.


* 初始化事件
INITIALIZATION.

  SSCRFIELDS-FUNCTXT_01 = '下载EXCEL模板1'.
*  APPEND SSCRFIELDS TO T_SSCRFIELDS.
  SSCRFIELDS-FUNCTXT_02 = '下载EXCEL模板2'.
*  APPEND SSCRFIELDS TO T_SSCRFIELDS.
  SSCRFIELDS-FUNCTXT_03 = '下载EXCEL模板3'.
*  APPEND SSCRFIELDS TO T_SSCRFIELDS.
  SSCRFIELDS-FUNCTXT_04 = '下载EXCEL模板4'.
*  APPEND SSCRFIELDS TO T_SSCRFIELDS.
  SSCRFIELDS-FUNCTXT_05 = '下载EXCEL模板5'.
*  APPEND SSCRFIELDS TO T_SSCRFIELDS.

  IF P_CODE = 102.
    P_CODE = 101.
  ENDIF.



* 屏幕出现前事件
AT SELECTION-SCREEN OUTPUT.

  LOOP AT SCREEN.

    IF RB_INT1 = 'X' AND SCREEN-GROUP1 = 'M2'.
      SCREEN-ACTIVE = 0.
    ENDIF.

    IF RB_INT2 = 'X' AND SCREEN-GROUP1 = 'M1'.
      SCREEN-ACTIVE = 0.
    ENDIF.

    MODIFY SCREEN.

  ENDLOOP.

*  P_SCHID TYPE ZSTD_WMQ001-Z_SCHID MODIF ID GR2.


*TEXT-001.
*PARAMETERS:
*  RB_SEL1 TYPE CHAR1 RADIOBUTTON GROUP RB1 DEFAULT 'X' USER-COMMAND UC1,
*  RB_SEL2 TYPE CHAR1 RADIOBUTTON GROUP RB1.

*PARAMETERS:
*  PA_CODE TYPE ZSTD_WMQ001-Z_CODE MODIF ID GR1,
*  PA_SCHID TYPE ZSTD_WMQ001-Z_SCHID MODIF ID GR2.

*SELECT-OPTIONS:
*  SO_WERK1 FOR W_WERKS_D,
*  SO_WERK2 FOR W_WERKS_D NO INTERVALS..

*AT SELECTION-SCREEN OUTPUT.
*  LOOP AT SCREEN.
*
*    IF RB_SEL1 = ABAP_TRUE
*      AND SCREEN-GROUP1 = 'GR2'.
*
*      SCREEN-ACTIVE = 0.
*
*    ENDIF.
*
*    IF RB_SEL2 = ABAP_TRUE
*      AND SCREEN-GROUP1 = 'GR1'.
*
*      SCREEN-ACTIVE = 0.
*
*    ENDIF.
*    MODIFY SCREEN.
*
*  ENDLOOP.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值