一.首先我们先完成窗体显示部分的代码
TABLES: BKPF,SSCRFIELDS.
DATA FLAG TYPE I.
SELECTION-SCREEN BEGIN OF BLOCK PART1 WITH FRAME TITLE TITLE1.
*了解type/like/必选/memory id
PARAMETERS:NUMBER1 TYPE I OBLIGATORY,"必填
NUMBER2 TYPE I,
BUMBER3 TYPE I.
PARAMETERS: P_BUKRS4 TYPE C MEMORY ID HK."注意memory id 不能超过三字符
PARAMETERS:S_BUKRS LIKE BKPF-BUKRS DEFAULT '1000'.
SELECTION-SCREEN END OF BLOCK PART1.
SELECTION-SCREEN BEGIN OF BLOCK PART2 WITH FRAME TITLE
TITLE2.
*注意了解一下no-extension/no intervals/mod if
SELECT-OPTIONS:S_BUKRS1
FOR BKPF-BUKRS NO-EXTENSION MODIF ID G1,"关闭不连续多选
S_BUKRS2 FOR
BKPF-BUKRS NO INTERVALS MODIF ID G1,"不显示高的条件
S_BUKRS3 FOR
BKPF-BUKRS MODIF ID G1,
S_BUKRS4 FOR BKPF-BUKRS DEFAULT '1111'
MODIF ID G1."带默认值
SELECTION-SCREEN SKIP 1.“换行
SELECT-OPTIONS:S_MONAT1 FOR
BKPF-MONAT NO-EXTENSION MODIF ID G2,
S_MONAT2 FOR BKPF-MONAT
NO INTERVALS MODIF ID G2,
S_MONAT3 FOR BKPF-MONAT MODIF ID
G2,
S_MONAT4 FOR BKPF-MONAT DEFAULT '1111' MODIF ID
G2.
*添加一组按钮控制显示,放置在一行内
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN
PUSHBUTTON 30(10) BTNTXT1 USER-COMMAND BUT1.
SELECTION-SCREEN PUSHBUTTON
45(10) BTNTXT2 USER-COMMAND BUT2.
SELECTION-SCREEN PUSHBUTTON 60(10) BTNTXT3
USER-COMMAND BUT3.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF
BLOCK PART2.
SELECTION-SCREEN BEGIN OF BLOCK PART3 WITH FRAME TITLE
TITLE3.
*了解checkbox/comment/line/radiobutton
SELECTION-SCREEN BEGIN OF
LINE.
*复选按钮放在一行上
SELECTION-SCREEN POSITION 1."定位
SELECTION-SCREEN
COMMENT 1(5) CHK1 FOR FIELD PCK1.
SELECTION-SCREEN COMMENT 20(5) CHK2 FOR
FIELD PCK2.
SELECTION-SCREEN POSITION
10."定位,调试容易出错,特别要注意这个数据不能冲突,
PARAMETERS PCK1 AS CHECKBOX DEFAULT
'X'.
SELECTION-SCREEN POSITION 26.
PARAMETERS PCK2 AS
CHECKBOX.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN ULINE.”划横线
SELECTION-SCREEN BEGIN OF LINE.
*单选按钮放在一行上
SELECTION-SCREEN COMMENT
1(5) RD1 FOR FIELD PRD1.
PARAMETERS:PRD1 RADIOBUTTON GROUP SG1 DEFAULT
'X'.
SELECTION-SCREEN COMMENT 10(5) RD2 FOR FIELD PRD2.
PARAMETERS:PRD2
RADIOBUTTON GROUP SG1.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK PART3.
SELECTION-SCREEN BEGIN OF BLOCK PART4 WITH FRAME TITLE TITLE4.
*function
key
SELECTION-SCREEN COMMENT 1(50)
PART4TXT.
*在应用工具条上添加功能键按钮响应事件
SELECTION-SCREEN:FUNCTION KEY
1,
FUNCTION KEY 2.
SELECTION-SCREEN
END OF BLOCK PART4.
INITIALIZATION.
*用于屏幕初始化,屏幕字段默认值的填充和赋值
TITLE1 =
'第一个Frame(了解type/like/必选/memory id)'.
TITLE2 =
'第二个Frame(了解一下no-extension/no intervals/mod if/radiobutton)'.
TITLE3 =
'第三个Frame(了解checkbox/comment/line)'.
TITLE4 =
'第四个Frame(了解checkbox/comment/line)'.
NUMBER1 = 1000.
CHK1 =
'CHINA'.
CHK2 = 'USA'.
RD1 = '中文'.
RD2 = '英文'.
BTNTXT1 =
'全部显示'.
BTNTXT2 = '只显示第一组'.
BTNTXT3 = '只显示第二组'.
PART4TXT =
'看看function key是否出发 start-of-selection?'.
SSCRFIELDS-FUNCTXT_01 =
'SELF_FUNCTION1'.
SSCRFIELDS-FUNCTXT_02 = 'SELF_FUNCTION2'.
完成这部分代码,你就可以看见下面这样一个界面了
二.接着你可以先看看下面这张图,然后继续后面的事件代码
了解了这张图,就对选择屏幕中的事件响应过程和顺序有了了解,也就可以显示我们下面的功能了,继续coding:
AT
SELECTION-SCREEN OUTPUT.
*屏幕更改(屏幕显示出来前判断哪些要显示)
LOOP AT SCREEN.
IF
SCREEN-GROUP1 = 'G1' AND FLAG > 0.
SCREEN-ACTIVE = '0'.
ENDIF.
IF SCREEN-GROUP1 = 'G2' AND FLAG < 0.
SCREEN-ACTIVE =
'0'.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
"下面的这些message是为了让自己了解程序运行过程的
AT SELECTION-SCREEN ON BLOCK PART1.
MESSAGE '你想检查 PART1 块内的字段就在这里处理' TYPE 'I'.
AT SELECTION-SCREEN ON BLOCK PART2.
MESSAGE '你想检查 PART2 块内的字段就在这里处理'
TYPE 'I'.
AT SELECTION-SCREEN ON NUMBER1.
MESSAGE '你只想验证某一具体字段可以这样处理' TYPE
'I'.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR NUMBER1.
MESSAGE '可以显示你想要的列表值'
TYPE 'I'.
AT SELECTION-SCREEN ON HELP-REQUEST FOR NUMBER2.
MESSAGE
'你可为屏幕字段显示自定义帮助' TYPE 'I'.
AT SELECTION-SCREEN ON RADIOBUTTON GROUP SG1.
MESSAGE
'对于单选按钮选择后的处理可以在这里处理' TYPE 'I'.
AT SELECTION-SCREEN.
MESSAGE '你操作界面上面的所有字段都要检查就在这里处理' TYPE
'I'.
*如果你在initialztion中已经初始化了,在这里或者下面的output中再修改看看
NUMBER1 = 2000.
TITLE4 = '第四个Frame'.
*先判断是哪一个按钮
MESSAGE SSCRFIELDS-UCOMM TYPE 'I'.
CASE SSCRFIELDS-UCOMM.
WHEN 'BUT1'.
FLAG = 0.
WHEN
'BUT2'.
FLAG = -1.
WHEN 'BUT3'.
FLAG =
1.
WHEN 'FC01'.
MESSAGE 'FUNCTION 1' TYPE 'I'.
WHEN 'FC02'.
MESSAGE 'FUNCTION 2' TYPE 'I'.
WHEN
OTHERS.
FLAG = 0.
ENDCASE.
START-OF-SELECTION.
MESSAGE '你在这里开始进行按添加取数的处理' TYPE 'I'.
END-OF-SELECTION.
MESSAGE '你将你取出的数展现到屏幕,如果你偷懒也可以放在start-of-selection里面'
TYPE 'I'.
AT LINE-SELECTION.
MESSAGE '你点我干吗?' TYPE 'I'.
需要注意的是:
AT USER-COMMAND和 AT LINE-SELECTION.事件的触发,如果功能代码不是和PICK绑定就会触发AT USER-COMMAND,当你双击选择行,然而at line-selection中的程序却不执行。
三.选择屏幕的调用
我们另外定义一个选择屏幕500
SELECTION-SCREEN BEGIN OF SCREEN 500.
SELECTION-SCREEN BEGIN OF LINE.
SELECT-OPTIONS:S_BUKRS6 FOR BKPF-BUKRS NO INTERVALS .
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF SCREEN 500.
修改START-OF-SELECTION事件为:
CALL SELECTION-SCREEN 500.
四.选择屏幕嵌入到标准屏幕
1.需要在标准屏幕中的PBO/PAI中加入
PBO: CALL
SUBSCREEN subsc1 INCLUDING sy-repid 屏幕编号参数."不能直接输编号,DATA: 参数 TYPE sy-dynnr VALUE
'500'.
PAI: CALL SUBSCRENN subsc1.
"主要就显示了在标准屏幕中操作选择屏幕,这些事件能够传递个选择屏幕处理事件;
2.主程序
DATA: SUBSCNUMBER TYPE SY-DYNNR VALUE '500'.
SELECTION-SCREEN BEGIN OF SCREEN 500 AS SUBSCREEN."这个as subscreen很重要
PARAMETERS P TYPE I.
SELECTION-SCREEN END OF SCREEN 500.
START-OF-SELECTION.
CALL SCREEN 1200.“500选择屏幕嵌入到1200标准屏幕
AT SELECTION-SCREEN.
IF SY-DYNNR = '500'.
MESSAGE 'click subscree' TYPE 'I'.
ENDIF.
需要注意两个地方:一个是as
subscreen,另外一个就是激活了,因为嵌来嵌去的,你调试的时候容易报错。
发表评论
-
FI常用bapi
2012-03-16 14:13 0总帐会计: (比较简单全部测试通过,关帐时使用) ... -
如何通过Tcode查找Badi或者用户出口
2012-03-15 16:04 2221在SAP系统中,SAP提供了Badi和用户出口来方便用户对标准 ... -
ABAP 内表(internal table) 标题行(header line) 工作区(work area) 简介
2011-04-17 13:08 2941是用TYPES关键字定义一 ... -
sap学习网站
2010-12-29 17:11 2108SAP学习网站 SAP学习网站大全: 1.S ... -
OO事件处理
2010-12-29 16:32 813class adding definition. publi ... -
REUSE_ALV_GRID_DISPLAY事件子过程和cl_gui_grid类的事件对应关系
2010-12-29 11:14 1594一、SLIS定义的ALV的事件名称* Eventsslis_e ... -
abap_oo小例子
2010-12-28 10:09 903*类定义 class application definit ... -
abap之alv笔记
2010-12-27 09:26 15711)ALV是系统的一种网格的显示方式,这种方式带有汇总排序筛选 ... -
ALV常用参数的详细描述
2010-12-24 14:44 15728调用功能模块: CALL FUNCTION \'R ... -
alv简单笔记
2010-12-24 09:59 1336调用功能模块: CALL FUNCTION 'REUSE ... -
调用功能模块
2010-12-22 10:19 1252模块化技术包括:子程序(Subroutine),功能模块(Fu ... -
abap子程序
2010-12-21 17:30 1432子程序 语法: form < ... -
sap屏幕元素与事件
2010-12-21 13:56 2267sap屏幕基本元素的创建 select-o ... -
sap常用的系统变量
2010-12-17 09:03 1589系统内部有一个专门存放系统变量的结构SYST,其中最常用的系统 ... -
abap数据字典
2010-12-15 14:55 2152SAP 系统里面, ... -
ABAP常用的Tcode
2010-12-15 09:18 2109Tcode ... -
abap名词理解
2010-12-13 17:03 13101.occurs a.occurs是ABAP 3. ... -
abap内表,标题行,工作区
2010-12-13 09:36 1376先是用TYPES 关键字定义 ...
相关推荐
### SAP ABAP 屏幕字段输入帮助实现 #### 一、概述 在SAP ABAP开发过程中,为了提高用户体验和减少输入错误,开发者经常会为屏幕字段设置输入帮助(Input Help)。当用户按下F4键时,系统会弹出一个搜索帮助窗口,...
通过本文,我们将了解 Dynpros 的基本结构、屏幕元素的构成、屏幕事件等知识点。 屏幕元素 在 Dynpros 中,屏幕元素是构成屏幕的基本组件。屏幕元素可以是文字、按钮、输入框、复选框、单选按钮等。这些元素可以...
本教程将聚焦于“ABAP屏幕开发-仿照采购订单界面”,这是一个实用的示例,旨在帮助学习者掌握如何在SAP系统中构建类似的实际业务界面。 首先,我们要理解ABAP屏幕开发的基本概念。在ABAP中,屏幕是由一系列的屏幕...
3. **屏幕元素(Screen Elements)**:这些是屏幕上的基本组件,包括输入字段、选择字段、按钮、文本框等。每个元素都有其特定的属性,如大小、位置、颜色、是否可读/写等。 4. **屏幕事件(Screen Events)**:在...
### ABAP基础学习知识点:将数据输出到屏幕 #### 一、概述 本文档主要介绍了如何使用ABAP语言中的`WRITE`语句将数据输出到屏幕。`WRITE`语句是ABAP编程中最基本也是最常用的输出语句之一,它可以方便地在屏幕上展示...
在ABAP编程中,标准列表(Standard List)和选择屏幕(Selection Screen)是两种非常重要的交互界面元素。它们主要用于数据的展示和用户输入,确保用户能够有效地与SAP系统进行交互。下面将详细阐述这两个概念以及...
7. **屏幕编程**:讨论如何利用屏幕事件和用户接口元素进行用户交互界面的设计。 8. **报表程序**:深入理解REPORT语句,包括如何生成简单的到复杂的报表。 9. **函数模块**:介绍如何创建和使用函数模块,理解其...
2. **语法基础**:包括数据类型、变量声明、常量、运算符和表达式等基本元素。 3. **控制结构**:如IF...THEN...ELSE、CASE语句、LOOP循环以及选择结构,用于实现程序的逻辑流程。 4. **输入/输出处理**:学会如何...
- SCREEN-OBJECTS:用于定义屏幕元素,如输入字段、按钮等。 7. ABAP报表开发: - ALV(ABAP List Viewer):用于快速生成表格形式的报告。 - SMARTFORMS:创建复杂的打印格式。 8. ABAP Web Dynpro: - 用于...
BADI(Business Add-In)和屏幕增强是ABAP开发中的关键概念,它们允许用户自定义和扩展标准SAP功能以满足特定业务需求。 **BADI简介** BADI是一种灵活的、面向对象的设计技术,它允许开发人员在不修改标准SAP代码的...
1. ABAP基础:理解ABAP的语法结构,如数据元素、数据类型、内部表、选择屏幕和屏幕设计。 2. ABAP程序设计:掌握程序结构、流程控制、错误处理和模块化编程。 3. ABAP与数据库:熟练运用ABAP SQL进行数据库操作,...
5. **ABAP Reports**: ABAP Report是最基本的开发单元,用于生成打印报告或交互式屏幕。在SE38中,可以创建和编辑报告,通过选择不同的程序类型(如Report, Function Module等)来满足不同需求。 6. **Function ...
1. 在ABAP/4的开发工作中,哪一个TCODE是直接进入就可以创建程序、函数组以及程序内部各种元素的? 答案:A) SE80 知识点:SE80是ABAP Workbench的入口,用于创建、编辑和测试ABAP程序。 2. 下面的定义语句中,哪...
ABAP的基本语言元素包括数据元素声明(如数值和字符数据变量声明)、操作符(如加减乘除)、控制元素(如布尔值)、特殊数据格式(如日期和时间)、字符处理函数(如字符串截取)、子程序或自定义函数的调用以及SQL...
6. 文本元素:ABAP中的文本元素包括标题、表头和列表头等,可通过创建和更改文本元素来调整程序的显示内容。还包括复制、比较文本符号、翻译文本元素等操作。 7. 控制ABAP程序流:ABAP通过编程逻辑表达式控制程序的...
屏幕元素(如字段、按钮)的定义和事件(如输入事件、选择事件)的处理,都需要通过ABAP Screen Painter和相关的编程技术来实现。 ABAP还支持Web编程,如WebDynpro ABAP,这是一种用于开发富客户端应用程序的技术。...
在ABAP字典中,你可以创建、维护和组织数据库表、结构、域、数据元素等数据对象。这些对象在SAP系统中被用来存储和处理业务数据。例如,你可以创建一个名为“EMPLOYEE”的表来存储员工信息,定义每个字段的数据类型...
② 作为屏幕元素之一与其他屏幕元素结合出现。 ALV 的特点是:① ALV 是独立的二进制软件元素;② 安装在系统的前台(即 SAPGUI 中),将列表处理功能从应用服务器移至显示层,因而提高了相应速度;③ 可以通过 ...
1. **ABAP/4的基本组件**:介绍语言的基础元素,如数据声明、数据操作、流程控制和事件响应机制等。 2. **如何编写报表程序**:教授如何利用ABAP/4来设计和实现报表,包括数据提取、处理和展示的技巧。 3. **...