最近一个同事有一个比较变态的用户需求,他希望每次回到选择屏幕时,选择参数是有程序控制输入的,用户客户端的输入清除。对此需求有两种处理方法:
一、在AT SELECTION-SCREEN中写赋值语句,这种方法你可能需要中间变量缓存选择条件用于查询,代码样例:
REPORT demo_write_statement.
tables vbak.
DATA: NAME(20) VALUE 'SOURCE',
SOURCE(10) VALUE 'abcd',
TARGET(10).
select-options k_kunnr for vbak-kunnr.
data: is_parent type i value 0.
INITIALIZATION.
× refresh k_kunnr.
AT SELECTION-SCREEN.
refresh k_kunnr.
MOVE: 'I' TO k_kunnr-SIGN,
'EQ' TO k_kunnr-OPTION,
'9999' TO k_kunnr-LOW.
APPEND k_kunnr.
*SYSTEM-CALL INITIALIZATION.
二、在Initialization事件中写赋值代码
在Initialization事件中写赋值代码,默认情况只有第一次会影响输入屏幕,以后将失去作用。为了使该代码起作用你必须在选择屏幕的其他事件中执行SYSTEM-CALL INITIALIZATION.这个语句。代码样例:
REPORT demo_write_statement.
tables: spfli.
DATA: tab_spfli TYPE TABLE OF spfli,
tab_sflight TYPE SORTED TABLE OF sflight
WITH UNIQUE KEY table_line,
wa LIKE LINE OF tab_sflight.
select-options s_CARRID for spfli-CARRID.
INITIALIZATION.
refresh s_CARRID.
MOVE: 'I' TO s_CARRID-SIGN,
'EQ' TO s_CARRID-OPTION,
'AZ' TO s_CARRID-LOW.
APPEND k_kunnr.
AT SELECTION-SCREEN.
start-of-SELECTION.
SELECT carrid connid
INTO CORRESPONDING FIELDS OF TABLE tab_spfli
FROM spfli
WHERE CARRID in s_CARRID .
SYSTEM-CALL INITIALIZATION.
SELECT carrid connid fldate
INTO CORRESPONDING FIELDS OF TABLE tab_sflight
FROM sflight
FOR ALL ENTRIES IN tab_spfli
WHERE carrid = tab_spfli-carrid AND
connid = tab_spfli-connid.
LOOP AT tab_sflight INTO wa.
AT NEW connid.
WRITE: / wa-carrid, wa-connid.
ENDAT.
WRITE: / wa-fldate.
ENDLOOP.
相关连接:http://blog.csdn.net/CompassButton/archive/2006/08/18/1091626.aspx
分享到:
相关推荐
初始化阶段是在LOAD-OF-PROGRAM之后发生的事件,主要用于报表的初始设置。 - **触发时机**:在程序加载后立即发生。 - **用途**:可以在此处设置初始参数、进行变量赋值等操作。 ##### AT SELECTION-SCREEN OUTPUT...
- `INITIALIZATION`:程序初始化时调用。 - `AT SELECTION-SCREEN`:在用户输入时调用。 - `START-OF-SELECTION`:用户离开输入屏幕后调用。 - `GET`:当用户选择某个特定选项时调用。 - `END-OF-SELECTION`:...
1. **LOAD-OF-PROGRAM**:此事件在程序启动时自动触发,无需显式声明,常用于初始化配置或预加载资源。 2. **INITIALIZATION**:仅适用于报表程序,发生在选择屏幕展示前,是修改选择屏幕初始值的唯一机会,常用于...
此外,还有与屏幕交互相关的事件块,如`INITIALIZATION`在屏幕初始化时执行,`AT SELECTION-SCREEN`响应屏幕事件,`START-OF-SELECTION`在数据选择开始时执行,`GET`处理屏幕字段的获取,`END-OF-SELECTION`在数据...
例如,INITIALIZATION事件关键字用于定义初始化事件块,AT SELECTION-SCREEN事件关键字用于定义选择屏幕事件块,START-OF-SELECTION事件关键字用于定义选择事件块的开始,GET事件关键字用于定义数据获取事件块,END-...
- INITIALIZATION:仅触发一次,类似于传统报告的初始化事件。 在ABAP中,事件驱动的编程模型使得程序可以根据特定的程序状态和用户交互来执行代码,这样可以更好地组织和控制程序流程。通过合理利用这些事件,...
- **3.3.3 初始化日期范围在选择选项 (Initializing Date Ranges on Selection Options)** - **概述**:设置日期范围的选择选项,方便用户过滤数据。 - **用途**:提高报表的灵活性和可用性。 - **3.3.4 报表标题...
当用户点击“上一页”或“下一页”按钮时,会触发相应的事件处理器,更新`INDEX_BEGIN`和`INDEX_END`的值,并重新加载数据。 #### 核心代码分析 ```abap *&-----------------------------------------------------...
- **INITIALIZATION**:初始化部分,用于定义初始变量和其他初始化操作。 - **AT SELECTION-SCREEN**:选择屏幕事件处理器,用于处理用户在选择屏幕上的输入。 - **START-OF-SELECTION**:选择屏幕执行后触发的部分...
普通报表程序的输出格式固定,用户无法进行交互式操作,而交互式报表程序允许用户通过各种触发事件(如双击、菜单选择、按钮点击或功能键)对报表结果进行操作。 在报表程序的结构中,处理块和事件块是非常关键的...
- 报表事件是指在处理报表过程中发生的特定事件,例如启动报表、选择屏幕处理、初始化、结束处理等。 - **启动事件**: 当报表被首次加载时触发。 - **选择屏幕事件**: 用户输入选择参数后触发。 - **初始化事件*...
- AT SELECTION-SCREEN事件处理用户界面输入,INITIAL SCREEN用于初始化屏幕。 - WRITE语句用于在屏幕上输出数据。 5. **ABAP数据库通信** - 使用SELECT-OPTIONS处理筛选条件,直接在SQL语句中操作。 - OPEN ...
ABAP程序由若干部分组成,如初始化(INITIALIZATION),开始(START-OF-SELECTION),结束(END-OF-SELECTION)等,每个部分有其特定的执行时机。 以上只是ABAP语法的一部分,实际使用中还包括表操作、动态编程、...
注意:from number 只有初始化时候在这个界面维护,不能再做改变! 程序调用 在 ABAP 中,可以使用 REPORT 语句调用 SNRO 号码范围。例如: ```abap REPORT Z_NUMBER_RANGE. DATA: nextnum TYPE i. * 传入生产...
开发者可以定义工作流模型,设置触发事件,以及编写工作流活动的ABAP代码。 综上所述,《SAP ABAP大全》涵盖了ABAP语言的各个方面,无论是初学者还是经验丰富的开发者,都能从中获取到丰富而实用的知识,提升在SAP...
- **事件元素**:响应外部事件,如用户界面交互、定时触发等,使程序能够动态地响应变化。 #### ABAP/4编程实践 **编写ABAP/4报表**:报表程序是ABAP/4中最常见的应用之一,主要用于数据查询、汇总和展示。开发者...
- **TXT1**:初始化屏幕时显示的消息。 #### 选择屏幕事件 - 用户输入查询条件后触发的事件。 #### 开始选择事件 - **GETDATA**:执行查询操作,从MAKT和MARA表中选取所需字段,并将结果存储在GT_DISPLAY表中。 ...
- 通过“ABAP/4编辑器: 初始屏幕”(事务SE38)中选择“实用程序 -> ABAP/4关键字文档”。 - 在ABAP/4编辑器中选择“帮助”。 - 将光标放在ABAP/4编辑器中的关键字上, 然后按F1键。 - **用途**: - 提供ABAP/4...
1. **ALV Grid的初始化**: - `DATA: ALV_GRID TYPE REF TO CL_GUI_ALV_GRID`: 创建一个类型为`CL_GUI_ALV_GRID`的引用,这是ALV网格的主要对象。 - `DATA: WA_CONTAINER TYPE SCRFNAME VALUE 'ALVDATA'`: 定义一...