`
evangxli
  • 浏览: 231613 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

ABAP:参数输入屏幕SELECTION-SCREEN中的事件

阅读更多
在SAP开发中,有用户提出,在输入参数的屏幕中,根据用户的选择对某些输入框进行屏蔽,防止用户在不需要的地方输入参数。这需要用到SELECTION-SCREEN的事件。

下面的选择屏幕中,要求根据用户选择的单选按钮,对不同的参数输入栏进行控制,不允许用户输入。

*//===========================================================//*
*  PARAMETERS
*//===========================================================//*
*屏幕条件查询显示界面
SELECTION-SCREEN BEGIN OF BLOCK blk01 WITH FRAME TITLE text-001 .
PARAMETERS:
  p_d1 TYPE c RADIOBUTTON GROUP pz DEFAULT 'X'
                                   USER-COMMAND rad_click ,  " 物料凭证
  p_d2 TYPE c RADIOBUTTON GROUP pz .                         " 预留单
SELECTION-SCREEN  END OF BLOCK blk01 .

SELECTION-SCREEN BEGIN OF BLOCK blk02 WITH FRAME TITLE text-002 .
PARAMETERS:
  p_mjahr LIKE mkpf-mjahr DEFAULT sy-datum+0(4) MODIF ID sa ." 年度
SELECT-OPTIONS:
  s_bldat FOR mkpf-bldat MODIF ID sa ,                       " 物料凭证日期
  s_mblnr FOR mkpf-mblnr MODIF ID sa ,                       " 物料凭证号码
  s_rsdat FOR rkpf-rsdat MODIF ID sb ,                       " 预留单凭证日期
  s_rsnum FOR rkpf-rsnum MODIF ID sb ,                       " 预留号
  s_matnr FOR mseg-matnr,                                    " 物料号码
  s_bwart FOR mseg-bwart.                                    " 移动类型
SELECTION-SCREEN  END OF BLOCK blk02.


为了方便单选按钮的控制,我们对输入控件进行了分组,使用MODIF ID name(name只能为3个字符以内),对这一组参数进行屏蔽或打开。在本例程中组名为sa/sb。
还需要注意,我们希望屏幕上的radiobutton能够触发事件,因此需要在第一个RadioButton上加上USER-COMMAND name的代码,它会触发屏幕标准的事件。


* 处理输入屏幕的互相锁定
AT SELECTION-SCREEN OUTPUT .
  LOOP AT SCREEN .
    IF screen-group1 = 'SA' AND SCREEN-GROUP3 <> 'OPU' AND SCREEN-GROUP3 <> 'TXT'.
      IF p_d1 = 'X' .
        screen-input = '1' .
      ELSE.
        screen-input = '0' .
      ENDIF.
    ELSEIF screen-group1 = 'SB' AND SCREEN-GROUP3 <> 'OPU' AND SCREEN-GROUP3 <> 'TXT'.
      IF p_d2 = 'X' .
        screen-input = '1' .
      ELSE.
        screen-input = '0' .
      ENDIF.
    ENDIF.
    MODIFY SCREEN.
  ENDLOOP.


AT SELECTION-SCREEN OUTPUT .事件会被单选控件触发。

Screen的Group1是给用户编程使用的,在前面给控件编组以后,这里可以得到控件的组名称。

Group3是保留属性,通过跟踪,猜测它可能是控件的类型属性,对于TXT和OPU的控件,我们不需要改变它的INPUT属性,因此将它们排出在外。


详细可查看http://help.sap.com/saphelp_470/helpdata/EN/9f/dbab6f35c111d1829f0000e829fbfe/frameset.htm
分享到:
评论

相关推荐

    abap实例讲解----SAP学习好帮手

    - 在`AT SELECTION-SCREEN`事件块中处理用户输入。 综上所述,ABAP是一种强大的工具,特别适合于构建复杂的业务流程和报表系统。通过对ABAP基础知识和实例的讲解,我们可以更好地理解其核心概念和技术细节,从而...

    ABAP selection screen

    ABAP 选择屏幕是 SAP ABAP 报表开发中的一种常用设计方法,用于创建交互式的选择屏幕,以便用户输入参数并进行相关操作。下面我们将详细介绍 ABAP 选择屏幕的设计方法和实现步骤。 一、处理顺序图 ABAP 选择屏幕的...

    ABAP SELECT-SCREEN 的几个用法.doc

    在SAP ABAP编程中,SELECT-SCREEN是一种用于接收用户输入的关键机制,它允许开发人员设计出直观且功能丰富的屏幕界面。通过SELECT-SCREEN,开发者能够控制屏幕元素的位置、布局以及与用户交互的方式。下面,我们将...

    ABAP 查询屏幕标签页搜索条件

    根据提供的ABAP代码示例,我们可以深入探讨其中涉及的关键知识点,包括如何在ABAP程序中创建查询屏幕、使用标签页以及处理用户输入等。 ### ABAP查询屏幕标签页搜索条件 #### 报告ZTEST_TAN9 此报告旨在演示如何...

    SAP DOC\SAP的Selection屏幕的事件处理顺序

    本文将详细介绍SAP ABAP程序中Selection屏幕事件的处理流程,并通过实例解释各个事件的作用及其实现方式。 #### 二、INITIALIZATION和START-OF-SELECTION事件之间的事件顺序 在ABAP程序中,Selection屏幕的事件...

    SAP ABAP 屏幕字段输入帮助实现

    例如,可以通过编写事件处理器(如`at matchcode`或`at selection-screen output`)来触发特定的逻辑,实现更复杂的搜索帮助功能。 #### 五、总结 通过以上介绍可以看出,SAP ABAP提供了多种方法来为屏幕字段设置...

    ABAP-选择屏幕

    SELECTION-SCREEN 是 Dynpros 中的一种选择屏幕元素,用于选择和输入数据。SELECTION-SCREEN 可以定义不同的选择范围和条件,以实现不同的业务逻辑和交互效果。 按钮控制 按钮控制是 Dynpros 中的一种机制,用于...

    SAP ABAP开发学习——第13课:选择屏幕(视频教程)

    在SAP ABAP开发中,选择屏幕(Selection Screen)是一个重要的功能,用于用户交互和数据输入。本课程“SAP ABAP开发学习——第13课:选择屏幕”旨在帮助初学者掌握如何创建和自定义选择屏幕,以便在运行ABAP程序时...

    SAP BC402-ABAP进阶教程(中文版).pdf

    - `SELECTION-SCREEN`:选择屏幕处理。 - `WRITE,SKIP`:写入并跳过一行。 - `ULINE`:下划线。 - `TOP-OF-PAGE`:页面顶部。 - `END-OF-PAGE`:页面底部。 - `PICK`:选择操作。 - `ATLINE-SELECTION`:行选择时。 ...

    ABAP 读取EXECL数据到数据表中

    在 ABAP 中,可以使用 SELECTION-SCREEN 语句定义选择屏幕,该屏幕允许用户选择要上传的文件。下面是定义选择屏幕的示例代码: ```ABAP SELECTION-SCREEN BEGIN OF BLOCK S02 WITH FRAME TITLE TEXT-S02. SELECTION...

    SAP -ABAP开发实例

    通过使用`SELECTION-SCREEN`命令,可以在程序执行前收集用户输入。在本例中,程序允许用户选择航空公司ID作为筛选条件。这可以通过以下命令实现: ```abap SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE ...

    ABAP屏幕开发-仿照采购订单界面

    在ABAP(Advanced Business Application ...通过本教程,学习者将能够逐步熟悉ABAP编程环境,理解屏幕元素的创建与管理,以及如何在ABAP程序中实现屏幕事件的响应。这将为进一步深入学习SAP ABAP开发打下坚实的基础。

    ABAP程序相互调用

    我们可以使用VIA SELECTION-SCREEN关键字来实现报表的提交通过其自己的选择屏幕。例如: ```abap SUBMIT zreport VIA SELECTION-SCREEN. ``` 3. Submit报表使用选择屏幕变体 我们可以使用USING SELECTION-SET关键字...

    ABAP ALV 报表基础模板(两种)

    本节将介绍如何设计选择屏幕,使用户能够输入必要的参数以进行查询或报表的生成。 - **设置选择屏幕的布局:** ```abap SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN COMMENT 1(8) TEXT-001 FOR FIELD P_...

    ABAP report报表文件上传下载

    - **功能键事件处理**:在`AT SELECTION-SCREEN`中根据用户选择的功能键触发相应的处理逻辑。例如,当用户点击功能键1时,执行下载模板的操作。 ```abap AT SELECTION-SCREEN. IF SSCRFIELDS-UCOMM = 'FC01'. ...

    SAP ABAP开发学习——第15课:屏幕设计(视频教程)

    6. **选择屏幕(Selection Screen)**:这是允许用户在运行时输入查询参数的屏幕。选择屏幕可以自定义,以满足特定的查询需求。 7. **屏幕设计工具(Screen Painter)**:这是一个可视化的工具,允许开发者直接在...

    内含ABAP入门资源(11天学会ABAP)以级中级ABAP篇,高级ABAP资料

    - 选择屏幕(Selection Screen):学习创建交互式的输入屏幕,提高用户友好性。 - 内部表操作:深入理解内部表的操作,包括INSERT, DELETE, LOOP, JOIN等高级功能。 - 逻辑库(Logical Database):学习如何使用...

    ABAP 屏幕设计中添加文本编辑器

    在 START-OF-SELECTION 事件中,我们调用屏幕 200,并输出编辑框内容。我们使用 CALL METHOD 语句来调用编辑器的 GET_TEXT_AS_R3TABLE 方法,获取编辑框内容,并将其输出到屏幕上。 知识点7:使用 REFRESH 语句刷新...

    第05章 标准列表和选择屏幕.rar_ABAP列表_ABAP选择屏幕_hide

    在ABAP编程中,标准列表(Standard List)和选择屏幕(Selection Screen)是两种非常重要的交互界面元素。它们主要用于数据的展示和用户输入,确保用户能够有效地与SAP系统进行交互。下面将详细阐述这两个概念以及...

    ABAP实例讲解PPT--石化培训

    在用户界面方面,`SELECTION-SCREEN`语句用于定义输入屏幕,`PARAMETERS`和`SELECT-OPTIONS`语句分别用于创建参数和筛选选项,以获取用户输入。此外,还有与屏幕交互相关的事件块,如`INITIALIZATION`在屏幕初始化时...

Global site tag (gtag.js) - Google Analytics