sap abap screen
ABAP屏幕的事件顺序
SAP程序事件块.ABAP-SAP的Selection屏幕的事件处理顺序一、处理顺序图二、处理说明1、程序首先执行INITIALIZATION 事件;2、接着执行AT SELECTION SCREEN OUTPUT事件(也就是PBO) ,在这个事件里你可以通过修改系统默认screen内表修改屏幕的某些属性;PARAMETERS: TEST1(10) MODIF ID SC1,TEST2(10) MODIF ID SC2,TEST3(10) MODIF ID SC1,TEST4(10) MODIF ID SC2.AT SELECTION-SCREEN OUTPUT.LOOP AT SCREEN.IF SCREEN-GROUP1 = 'SC1'.SCREEN-INTENSIFIED = '1'.MODIFY SCREEN.CONTINUE.ENDIF.IF SCREEN-GROUP1 = 'SC2'.SCREEN-INTENSIFIED = '0'.MODIFY SCREEN.ENDIF.ENDLOOP.3、系统将屏幕输出到用户端,用户就可进行交互操作了。
也就是PAI处理,其分为3.1字段AT SELECTION-SCREEN ON XXXX.REPORT EVENT_DEMO.NODES SPFLI.AT SELECTION-SCREEN ON CITY_FR.IF CARRID-LOW EQ 'AA' AND CITY_FR NE 'NEW Benjamin'.MESSAGE E010(HB).ENDIF.3.2区域AT SELECTION-SCREEN ON BLOCK XXXX.REPORT EVENT_DEMO.SELECTION-SCREEN BEGIN OF BLOCK PART1 WITH FRAME. PARAMETERS: NUMBER1 TYPE I,NUMBER2 TYPE I,NUMBE r3TYPE I.SELECTION-SCREEN END OF BLOCK PART1.SELECTION-SCREEN BEGIN OF BLOCK PART2 WITH FRAME. PARAMETERS: NUMBER4 TYPE I,NUMBER5 TYPE I,NUMBER6 TYPE I.SELECTION-SCREEN END OF BLOCK PART2.AT SELECTION-SCREEN ON BLOCK PART1.IF NUMBER3 LT NUMBER2 ORNUMBER3 LT NUMBER1 ORNUMBER2 LT NUMBER1.MESSAGE E020(HB).ENDIF.AT SELECTION-SCREEN ON BLOCK PART2.IF NUMBER6 LT NUMBER5 ORNUMBER6 LT NUMBER4 ORNUMBER5 LT NUMBER4.MESSAGE E030(HB).ENDIF.3.3屏幕AT SELECTION-SCREEN在此事件里可以进行对用户输入进行完整性进行检查。
实战SAP程序开发从实例学SAP ABAP编程第六章 实战屏幕SCREEN设计
7
版权归原作者所有
对输入框的检查,对按钮事件的控制等。 窗口的属性。
窗口上所有对象的列表,属性等。
单击
,出现如图 6-11 所示窗口。
仅供学习交流之用,请勿用于他途
图 6-11 PROCESS BEFORE OUTPUT(PBO):屏幕显示前的调用模块。 PROCESS AFTER INPUT(PAI):响应用户输入后的调用模块,如单击按钮,输入字段后回 车等事件。
仅供学习交流之用,请勿用于他途
设计完成保存后,单击工具条上的 按钮,激活状态条。
单击 按钮回到 Screen 设计界面,单击
按钮设计逻辑流。
6.3.5 逻辑流设计
将默认的 PAI 和 PBO 两个 MODULE 设为有效(去掉*注释),如图 6-27 所示。
图 6-27 在 MODULE STATUS_0100 调用设计的状态条,在 MODULE USER_COMMAND_0100 中处理各类按钮事件。
6.3.9 屏幕输出
屏幕输出如图 6-30 所示。
图 6-30 单击“测试二”按钮,退出设计屏幕,系统输出输入框内容如图 6-31 所示。
(由于我做的时候没有安装中文,所以会出现乱码的情况) 图 6-31
20
版权归原作者所有
6.4 屏幕对象功能
6.4.1 单选按钮组的定义
仅供学习交流之用,请勿用于他途
6.3.6 输入字段
进入屏幕设计界面,添加两个文本字段和两个输入字段。选择输入字段时,设定属性为 输入输出字段,如图 6-28 所示。
17
版权归原作者所有
仅供学习交流之用,请勿用于他途
6.3.7 OKCODE
sap abap 面试题
sap abap 面试题SAP ABAP面试题导语:SAP ABAP(Advanced Business Application Programming)是一种高级商务应用程序编程语言,用于开发SAP应用程序。
面试时,了解ABAP的基本概念和技术是非常重要的。
本文将讨论一些常见的SAP ABAP面试题。
1. 介绍SAP ABAP是什么以及它的主要特点。
SAP ABAP是一种面向对象的编程语言,用于开发SAP应用程序。
它的主要特点包括:- ABAP是一种高级语言,具有丰富的库函数和开发工具。
- ABAP支持与SAP系统的连接,可以访问和修改SAP系统内的数据。
- ABAP可以通过SAP GUI(图形用户界面)或Web浏览器进行访问。
- ABAP支持事务处理和批处理功能。
- ABAP具有强大的调试功能,可以帮助开发人员快速定位和修复错误。
2. 什么是SAP数据字典?SAP数据字典是一个数据库的元数据存储库。
它包含SAP系统中使用的所有数据结构的定义,如表、视图、数据类型、域等。
开发人员可以使用数据字典创建和管理数据库对象,并在ABAP程序中使用这些对象。
3. ABAP中的内表和数据库表有什么区别?内表(Internal Table)是在ABAP程序中定义的一种数据结构,用于在内存中存储和处理数据。
内表只存在于程序运行期间,并且通常用于处理临时数据。
数据库表是在SAP数据字典中定义的,用于在数据库中永久存储数据。
数据库表可以在多个ABAP程序之间共享,并且数据可以长期保留。
4. 怎样避免ABAP程序中的死循环?为了避免ABAP程序中的死循环,可以采取以下措施:- 在循环中使用BREAK语句,当满足某个条件时跳出循环。
- 在循环中使用EXIT语句,直接退出整个程序。
- 确保循环条件能够最终为假,避免无限循环。
5. 请解释什么是BADI(Business Add-In)?BADI是SAP系统中用于扩展或修改现有功能的一种方法。
SAP的ABAP4语言中文培训教材第三部分第四章控制屏幕流程
SAP的ABAP4语言中文培训教材第三部分第四章控制屏幕流程第四章控制屏幕流程概览内容屏幕流程控制介绍........................................................................................................................... 1设置下一个屏幕 .......................................................................................................................... .... 2调用新的屏幕序列........................................................................................................................... 2退出当前屏幕........................................................................................................................... ....... 3后台处理屏幕........................................................................................................................... ....... 5对于用户来说,事务就是逐个出现的一系列屏幕。
在事务程序中,屏幕由一系列的“下一个屏幕”号链接在一起。
定义事务时,要指定第一个屏幕的号码。
然后,对事务中的每个屏幕,可以静态地或动态地指定“下一个屏幕”静态屏幕指示器定义屏幕时,要为它指定“下一个屏幕”属性。
[SAPABAP开发技术总结]选择屏幕——SELECT-OPTIONS
[SAPABAP开发技术总结]选择屏幕——SELECT-OPTIONS SELECT-OPTIONS selcrit FOR {dobj|(name)}screen_options[OBLIGATORY|NO-DISPLAY][VISIBLE LENGTH vlen][NO-EXTENSION][NO INTERVALS][MODIF ID id]value_options [DEFAULT val1 [TO val2] [OPTION opt] [SIGN sgn]][LOWER CASE][MATCHCODE OBJECT search_help][MEMORY ID pid]该语句会⽣成⼀个名为selcrit选择条件内表,具体请参数OPEN SQL章节中的NO-:限制选择表为单⾏,元素输⼊后⾯不会出现按钮[iks?ten??n]NO :只会出现LOW字段,To后⾯的HIGH字段不出现在选择屏幕上,但是⽤户仍然可以在Mutiple Selection窗⼝中输⼊范围选择。
也就是说:只要有按钮,就可以选择多个条件与范围值 [?int?v?l]:只有前⾯⼀个框框中出现钩,第⼆个框没有,也就是说该选项只能LOW字段有效 [??bl?g??t?:ri:]DEFAULT:TABLES: mara,marc.SELECT-OPTIONS:werks FOR -werks OBLIGATORY DEFAULT 1001TO 1007SIGN I OPTION BT.:p2 FOR mara-matnr MODIF.AT SELECTION-SCREEN OUTPUT.p2-low = 'aaaa'.APPEND p2 .MEMORY ID:将第⼀个输⼊框中的数据存放到SAP MEMORY中共享12.4.1.输⼊ABAP程序默认值时,需要加上“=”程序中相应字段所对应的初始值时(如字符类型为空串,时间与数字类型为“0”串时),需要在第⼀个框前⾯选择操作符,否则程序将会忽略这个值的输⼊,即查询所有的12.4.2.选择条件内表多条件组合规则(Select Intervals OR…))( AND NOT Exclude Single Values) … (AND NOT Exclude Intervals) …"MATNR" = '1' OR "MATNR" >= '2' OR "MATNR" <= '3' OR "MATNR" > '4' OR "MATNR" < '5' OR "MATNR" <> '6' OR "MATNR" <> '7' OR "MATNR" LIKE '23%' OR NOT ( "MATNR" LIKE '24_' ) OR"MATNR" BETWEEN '8' AND '9' OR NOT ( "MATNR" BETWEEN '10' AND '11' )) AND"MATNR" <> '12' AND "MATNR" < '13' AND "MATNR" > '14' AND "MATNR" <= '15' AND "MATNR" >= '16' AND "MATNR" = '17' AND "MATNR" = '18' AND NOT ( "MATNR" LIKE '25%' ) AND "MATNR" LIKE '26_' AND NOT ("MATNR" BETWEEN '19' AND '20' ) AND "MATNR" BETWEEN '21' AND '22'SELECT-OPTIONS替代PARAMETERS实际上PARAMETERS 类型的参数完全可以使⽤SELECT-OPTIONS来替代,下⾯就是使⽤这种替换⽅式,外表看上去与PARAMETERS是⼀样的,但双击后可以出现操作符选择界⾯,所以唯⼀不同点就是这个可以选择操作符,⽽且这样做的好处是:当不输⼊值时,查询所有的,但PARAMETERS值为空是查询就是为空(或0)的值(如果此时要忽略这个条件,则要将单值转换为Rang或者是分两种情况来写SQL条件):: marc.SELECT-OPTIONS: s_werks FOR marc-werks NO INTERVALS NO-EXTENSION.。
SAP的ABAP4语言中文培训教材第三部分第五章修改屏幕
第五章修改屏幕概览运行时可以用许多不同的方式修改屏幕:内容修改屏幕............................................................................................................................................ a设置屏幕字段属性............................................................................................................................ a用功能“字段选择”更改屏幕字段属性........................................................................................ b 字段选择- 概述 .......................................................................................................................... b调用字段选择 ............................................................................................................................. c属性的组合规则.......................................................................................................................... c屏幕制作器属性.......................................................................................................................... d生成字段选择 ............................................................................................................................. e字段选择的功能模块................................................................................................................... e链接字段 ....................................................................................................................................... f显示属性‘激活’ ...................................................................................................................... h字段选择授权 ............................................................................................................................. h 使用子屏幕 .. (i)使用光标 (i)在动态程序中设置字段属性可以在对话程序中临时更改字段属性(例如输入/输出字段,强制字段)。
sapabap使用选择屏幕
第二章使用选择屏幕概览内容选择屏幕是什么?.................................................................. 1选择屏幕与逻辑数据库.............................................................. 2为变量定义输入字段................................................................ 3PARAMETERS 语句基本格式.......................................................... 3给参数分配缺省值 ................................................................ 4禁止参数显示 .................................................................... 4允许参数接受大小写 .............................................................. 4制作需要的输入字段的参数........................................................ 5在选择屏幕上创建复选框.......................................................... 5从 SAP 内存中使用缺省值.......................................................... 6给参数分配匹配代码对象.......................................................... 6给修改组分配参数 ................................................................ 7使用选择标准...................................................................... 7选择标准是什么? ................................................................ 8定义选择标准 .................................................................. 10使用报表的选择标准 ............................................................ 14格式化选择屏幕.................................................................. 17指定空行、下划线和注释........................................................ 17将几个元素放在一行上 .......................................................... 19定位元素 ....................................................................... 19创建元素块 ..................................................................... 20在应用工具条中创建按钮........................................................ 20在选择屏幕上创建按钮 .......................................................... 21选择屏幕是报表程序的一部分,您可以设计选择屏幕以便交互输入字段值和选择标准。
sap 中screen表字段的用法
sap 中screen表字段的用法
在SAP中,屏幕字段结构SCREEN的字段对应一个SCREEN结构,就像控件的多个属性。
以下是SAP中SCREEN表字段的一些常见用法:
1. 名称(NAME):屏幕字段的名称,用于标识和引用该字段。
2. 长度(LENGTH):字段的长度,用于指定字段可以存储的字符数。
3. 说明(DESCRIPTION):字段的描述或注释,用于提供有关字段的更多
信息。
4. 类型(TYPE):字段的数据类型,例如字符型、数字型等。
5. 默认值(DEFAULT):字段的默认值,用于在输入数据时自动填充字段。
6. 必填项(REQUIRED):指示字段是否为必填项的标志。
如果设置为必填项,用户在输入数据时必须填写该字段。
7. 条件表达式(CONDITIONAL):用于指定字段的条件表达式的字符串,以便根据特定条件控制字段的行为或显示。
8. 计算表达式(CALCULATION):用于指定字段的计算表达式的字符串,以便在输入数据时自动计算并更新字段的值。
9. 显示格式(FORMAT):用于指定字段的显示格式的字符串,例如货币
格式、日期格式等。
10. 参数设置(PARAMETERS):用于配置字段参数的选项,例如选择列表、范围限制等。
这些字段的具体名称、长度和用途可能因SAP系统中的不同表和模块而有所不同。
因此,在实际使用中,您应该根据具体的SAP系统表和模块的文档或指南来了解和使用相关的屏幕表字段。
SAP ABAP-屏幕设计
(1).Screen 设计TABLES: SSCRFIELDS.PARAMETERS: P_EBLEN LIKE VBRK-EBLEN DEFAULT ' '.PARAMETERS: P_CK1 AS CHECKBOX DEFAULT 'X'.PARAMETERS: P_CK2 AS CHECKBOX.PARAMETERS: P_RAD1 RADIOBUTTON GROUP SG1 DEFAULT 'X'.PARAMETERS: P_RAD2 RADIOBUTTON GROUP SG1 .SELECT-OPTIONS: S_EBLEN FOR VBRK-EBLEN NO-EXTENSTION. “无后边的箭头SELECT-OPTIONS: S_EBLEN FOR VBRK-EBLEN NO INTERVALS. ”无到后边的选项SELECTION-SCREEN SKIP 1. "产生空行SELECTION-SCREEN BEGIN OF LINE . "将元素排列到一行SELECTION-SCREEN END OF LINE.SELECTION-SCREEN ULINE. "画直线SELECTION-SCREEN COMMENT 10(20) TEXT-001."屏幕上输出文本SELECTION-SCREEN BEGIN OF BLOCK BK1 WITH FRAME TITLE TEXT-002.SELECTION-SCREEN END OF BLOCK BK1.SELECTION-SCREEN PUSHBUTTON 50(10) TEXT-003 USER-COMMAND BUT1. "产生按钮SELECTION-SCREEN FUNCTION KEY 1. "工具条按钮最多为5个.PARAMETERS: <P> .... MEMORY ID <PID>. "从全局SAP内存(SPA/GPA参数)使用缺省值SET PARAMETERS ID 'HK' FIELD 'Test Parameters' "以'HK'为名称在全局SAP内存中存储值.PARAMETERS: P_TEST(16) TYPE C MEMORY ID HK. "使用缺省值GET PARAMETERS ID ' ' FIELD ' '.INITIALIZATION.SSCRFIELDS-FUNCTXT_01 = 'Button 1'.SSCRFIELDS-UCOMM = 'FC01'.(2).修改ScreenNAME “字段名称GROUP1 ”字段组1GROUP2 “字段组2GROUP3 ”字段组3GROUP4 “字段组4ACTIVE ”可见并准备输入的字段REQUIRED “强制输入的字段INPUT ”字段准备输入OUTPUT ”字段仅用来显示INTENSIFIED ”高亮显示字段INVISIBLE “字段不可见LENGTH “设置字段长度DISPLAY_3D “以3围框架显示字段VALUE_HELP ”显示有值帮助的字段在PBO模块中对字段进行属性修改MODULE MODIFY_SCREEN OUTPUT.LOOP AT SCREEN.CHECK SCREEN-GROUP1 = 'MOD'.SCREEN-INPUT = 0.MODIFY SCREEN.ENDLOOP.ENDMODULE.(3) 使用子屏幕CALL SUBSCREEN <AREA> INCLUDING <PROGRAM> <SCREEN>(4)设置光标位置SET CURSOR FIELD <FIELD_NAME> OFFSEY <POSITION> 设置光标的特定位置(5)设置下一个屏幕SET SCREEN <SCREEN_NUMBER>.CALL SCREEN <SCREEN_NUMBER>.调用新的屏幕序列LEAVE TO SCREEN 0.SET SCREEN 0.LEAVE SCREEN.(6)后台处理屏幕可以使用SUPPRESS DIALOG 取消所有屏幕.*---------PBO MODULE OF SCREEN 100.CALL SCREEN 110 STARTING AT 10 5.*---------SCREEN 110 FLOW LOGICMODULE DIALOG_WINDOWS OUTPUT.SUPPRESS DIALOG.LEAVE TO LIST-PROCESSING AND RETURN TO SCREEN 0.WRITE: /.WRITE: /.ENDMODULE.(7)报表及选择屏幕事件过程报表事件过程INITIALIZATION 用于屏幕初始化,例如屏幕字段默认值的填充START-OF-SELECTIONEND-OF-SELECTION选择屏幕事件在INITIALIZATION之前 STATR-OF-SELECTION之后触发AT SELECTION-SCREEN OUTPUT."对选择屏幕字段进行修改AT SELECTION-SCREEN INPUT.处理特殊输入字段AT SELECTION-SCREEN ON <FIELD>创建值输入列表AT SELECTION-SCREEN ON VALUE-REQUEST FOR <FIELD>.创建输入字段的帮助AT SELECTION-SCREEN ON HELP-REQUEST FOE <FIELD>.处理单选按钮组AT SELECTION-SCREEN ON RADIOBUTTON GROUP <RADIO>处理输入字段块AT SELECTION-SCREEN ON BLOCK <BK1>.这篇文章涉及到了选择屏幕的一些基本控件和事件过程,有些功能在实际的开发过程中还没用到,有不足的地方也请各位网友给出指正.。
SAP的ABAP屏幕程序如何使用TableControl进行数据交互
SAP的ABAP屏幕程序如何使用TableControl进行数据交互SAP中ABAP的屏幕元素涉及到“定制控制” 和“Table Control” 两个数据显示容器。
定制控制是单向的数据展示,使用abap的SQL语句把数据从透明表(硬盘中)读取至内表(内存),进行一系列数据整理,然后采用ALV表格的形式把这些数据展示在“定制控制”这个用于数据显示的容器中。
而Table Control不仅拥有“定制控制”的功能,而且还可以通过这个“TC”把用户使用键盘输入的数据写入透明表(内表)中。
也就是说,区别在于TC是一个双向的数据显示容器。
下面给大家演示TC的使用过程。
在SAP中使用事务码SE80进入Object Navigator选中需要被修改的屏幕(screen)点击格式按钮(go to layout)进入了screen painter看到我们今天提到的两个控件,如上图。
严格来说,所谓的“控件”其实是“屏幕元素”,黄佳的书第十章《事务屏幕设计》接下来12章《高级屏幕元素》继续讲到了Table Control,他翻译成表格控件。
TC是SAP的标准控件之一,标准控件需要使用CONTROLS语句在ABAP程序代码中进行定义,并且有相应的屏幕元素与之对应。
我准备举例演示该功能的使用方法。
/szlaptop/article/details/8116441csdn关于TableControl的好文上面链接中的文章,基本讲了用TC显示内表中数据的过程(读取并显示),但是没有描述反向的数据写入过程(收集数据并保存)。
首先,使用SAP的事务码SE80(OBJECT NAVIGATOR)创建一个程序(program)Z_MM_TESTTC然后就在SE80中创建了一个空程序我们要在这个空程序中创建一个普通屏幕,然后在屏幕中创建table control,然后使用TC(table control)进行双向数据传递。
下面创建普通屏幕(编号2000)创建了普通屏幕2000之后需要为它添加GUI title 和GUI status上图所示,为2000屏幕的状态,也就是屏幕的状态栏,这是一种交互方式。
ABAP--SAP的SCreen录入的简单模板
SAPABAP程序设计基础教程选择屏幕与列表屏幕
if spfli-connid = '0017' . REJECT.
endif.
REJECT node_name.语句:中断目前和全部旳同一级别节点旳全 部后续GET事件,执行目前层高层次(即node_name所在那一层) 旳下一种逻辑数据库GET事件,语法如下: REKECT node_name.。逻辑数据库表旳层次构造中,节点名称 node_name是目前GET事件层旳高层节点。
逻辑数据库旳流程终止
STOP语句:结束整个报表旳输出,而且触发END-OF-SELECTION事件 EXIT语句:退出全部旳GET代码块,而且不触发任何旳后续事件,直接
转向基础列表屏幕输出屏幕显示(Basic List Screen)。因 此EXIT旳功能用于退出GET事件块,其功能与STOP基本一 致,只是它不会触发后续事件。 REJECT.语句:中断目前GET事件并转向逻辑数据库同一层旳下一种
[WITH FRAME [TITLE title] ]. …… SELECTION-SCREEN END OF BLOCK < block_name>. 来创建一种选择屏幕。可选项 WITH FRAME [TITLE title] 确 定选择屏幕是否带有边框,而TITLE title选项决定是否在边框上带 有文字阐明。
定制WRITE旳符号输出-4
定制WRITE旳符号输出-5
设置列表旳格式
在ABAP中,缺省旳列表旳行宽是83个字符,缺省旳每页旳行数是6万行,能够通 过在报表申明语句旳背面添加如下子句来变化缺省旳报表旳行数和列数旳设置: REPORT <report_name> LINE-SIZE <columns>
最新SAP-ABAP程序设计基础教程第9章用户对话屏幕设计
为对话屏幕设计命令按钮
为对话屏幕的命令按钮定义隐藏域
对话屏幕的处理流程
为对话屏幕的FLOW LOGIC编写处理代码
通过对话屏幕Flow Logic的导航功能:
结束语
谢谢大家聆听!!!
26
对话屏幕的图形化编辑工具Screen Painter
对话屏幕的应用场景
通过双击屏幕号进入Screen Painter的屏幕属性编辑窗口
通过Object Navigator导航区进入Screen Painter
Screen Painter屏幕属性编辑窗口
Screen Painter:从字典库对象中选择字段作为屏幕元素
1
字段的输出长度
1
字段可见并用于输入
1
以三维显示字段
1
有输入帮助的字段
屏幕元素列表
通过编程动态修改屏幕字段的属性
用TABLES 语句定义屏幕与程序间的数据传输区域
将列表屏幕数据都保存在内存的隐藏域中
将列表屏幕数据的主键保存在内存的隐藏域中
命令按钮处理
为对话屏幕设计命令按钮
为对话屏幕设计命令按钮
Screen Painter:从字典库中获取字段作为屏幕元素
Screen Painter:从ABAP程序中获取字段作为屏幕元素
Screen Painter:维护屏幕元素的属性
屏幕元素列表
结构体类型SCREEN的主要字段列表
字段名称 NAME GROUP1 GROUP2 GROUP3 GROUP4 REQUIRED INPUT OUTPUT INTENSIFIED INVISIBLE LENGTH ACTIVE DISPLAY_3D VALUE_HELP
SAP-ABAP程序设计基 础教程第9章用户对话屏
SAP ABAP 屏幕增强
11.编写用户增强用户增强通常包括下面3类,顾名思义,就是增强SAP的可能没有提供的功能(通过后台配置也不能实现).1.E Enhancement exits :就是常说User_exit (用户出口)使用SE37搜索EXIT*的函数大都是做exit用的,通常里面预包含了一个Z开头的程序. SE16查询TFDIR(函数表)输入EXIT*也可.2.C GUI codes( GUI接口增强)3. S Subscreens (屏幕增强)Enhancement在表MODSAP可看到,而TFDIR字段 MAND(值为C表示此出口函数被激活).使用SMOD(CMOD)当然可激活exit function,有时候一时难以查询到相关Enhancement时可使用下面程序将出口函数激活.REPORT Zactexitfun .data ztfdir like tfdir .* select single * from tfdir into ztfdir* where FUNCNAME =* 'EXIT_SAPMM06E_013'.* ztfdir-MAND = 'C' .* update tfdir from ztfdir.* 将EXIT_SAPMM06E_013换成实际所需exit函数名update tfdir set MAND = 'C'.where FUNcname = 'EXIT_SAPMM06E_013'.***当然也可SE16:MODSAP表enhancement输入EXIT_SAPMM06E_013然后得到enhancement name MM06E005后使用SMOD测试激活exit函数.增强相关函数和表格Function:[1].DYNP_VALUES_READ[2]. MODX_ALL_ACTIVE_MENUENTRIES(菜单增强)[3].MODX_FUNCTION_ACTIVE_CHECK(出口函数增强)由于读者可能接触user exit最多,除了附录光盘有个查找ZFINDEXIT的程序外(有些exit使用它并不能找到),另一个直接有效的方法就是使用这个函数,SE37设好断点后执行tcode如其有exit就会调用此函数.如图2-11-1是运行MIGO时的一个截图,表示相关exit被激活.4].MODX_MENUENTRY_ACTIVE_CHECK(菜单增强)[5].MODX_SUBSCREEN_ACTIVE_CHECK(屏幕增强)Table:[1]. TFDIR->function module table[2]. MODSAP->sap enhancement table[3]. TSDIR->Dynpro Areas CALL CUSTOMER SUBSCREEN(屏幕增强)[4]. CUATEXTS-> GUI Interface: Menu Texts Changed(GUI 菜单文本增强)***注意,为了确保一个出口被真正应用,必须同时激活相关程序(SE38)和出口函数(SMOD|CMOD,反正就是要保证tfdir-mandt=’C’,用程序也可.)关于增强中的user exit,在实战篇中会有更多详细的例子.找屏幕增强有很多方法,读者可从SE16:TSDIR中找寻,或者CMOD菜但utilities(M)->SAP Enhancements搜寻出所有的exit name,然后在搜寻结构中再输入’screen’ 关键字(通常在short text描述)一般能找到一些SAP预留的屏幕增强.下面以建立PO举个实例介绍什么是屏幕增强.如图2-11-2,很简单,SE38输入SAPMM06E.SAPMM06E可看成专为PO增强的一个module pool,可以增强的subscreen no一般还有0101,0111,0201,0211,0301,0311(增强的子屏作用读者可从描述中就知).SAPLXM06实际上包含四个include,INCLUDE LXM06TOP(Global Data在此为增强定义global data), INCLUDE LXM06UXX.(Function Modules实际上包含所有可用的user exit),INCLUDE LXM06F00. (SAP-Formpool for Customer-Use可在此建立Formpool),INCLUDE ZXM06ZZZ. (Subprograms and Modules,在此建立增强子屏)在include程序ZXM06ZZZ中加入如下代码.*&----------------------------------------------------------*& Include ZXM06ZZZ **&----------------------------------------------------------module modpohead.call screen 0101. "PO header增强子屏endmodule.module modpoitem.call screen 0111. "PO item增强子屏endmodule.注意上面的screen 0101和0111在attribute screen type必须选subscreen.再ME22N(ME23N)进去后能发现在PO header和line item都多出了一customer data tab页,不妨这样设想,假设用户希望在操作PO时写些额外的东西进自定义的表格,而且这些数据通过一般的user exit还做不到,因为这些字段在PO相关数据表中不存在,必须有用户在屏幕上输入(否则没必要使用增强屏幕直接使用合适的user exit将数据写到自定义表就可),就得使用增强屏幕. 屏幕上文本框和table control都可用,想输入怎样的额外数据到自定义表都行.如图2-11-3,读者可看到header和item都多出一Customer data的增强屏幕.1.有时实际需求会需要更改屏幕上某些字段的显示,比如用户希望物料主数据basic data 2视图other data 下的Prod./Insp. Memo(子段显示)保存其它信息,同时为了避免不必要的误会需要更改此字段显示,严格地讲,这并非屏幕增强.这是屏幕”强改”(强行更改).2.所谓屏幕增强就是多出个子屏幕来,在此你可显示一些数据或插入一些数据(到自定义表格中),global data(可理解为定义的全局变量内表什么的)对ME21N是SAPLMEGUI(main 程序)-> SAPLMEGUI(Global data include),就是PO的增强屏幕不能使用SAPLMEGUI中定义的东西.3.一个SOFT(软件)的可扩充性写到这份上还没有什么bug,除了佩服还是佩服.。
[SAPABAP开发技术总结]动态修改选择屏幕
[SAPABAP开发技术总结]动态修改选择屏幕12.16. 动态修改屏幕选择屏幕、对话屏幕都有对应的SCREEN内表,下面是几个重要属性:NAME:Name of the screen field。
如果参数是select-options 类型参数,则参数名以LOW与HIGH后缀来区分。
GROUP1:选择屏幕元素通过MODIF ID选项设置GROUP1(对话屏幕通过属性设置),将屏幕元素分为一组,方便屏幕的元素的批量修改REQUIRED:控制文本框、下拉列表屏幕元素的必输性,使用此属性后会忽略OBLIGATORY选项。
取值如下:0:不必输,框中前面也没有钩1:必输,框中前面有钩,系统会自动检验是否已输入,相当于OBLIGATORY选项2:不必输,但框中前面有钩,系统不会检查是否已输入,此时需要手动检验INPUT:控制屏幕元素(包括复选框、单选框、文本框)的可输性ACTIVE:控制屏幕元素的可见性REQUIRED选项的应用:该选项可以解决这个问题:在点击某个单选框(p_rd1)后显示某个必输字段(p_lclfil),但当这个必输框显示出来后,如果点击p_rd2想隐藏它时,此时输入框中必须有值,否则系统会自动检验要求重新输入。
现要求输入框没有输入值的情况下,也可在点击p_rd2时隐藏它,则解决的办法是:将输入框的这个属性设置为2(显示必须的钩,但系统不会自动进行必输验证),去掉OBLIGATORY选项(不去掉也会被忽略),并在AT SELECTION-SCREEN ON field事件里时手动进行为空验证'一定要设置USER-COMMAND ,否则点击之后,不会触发屏幕PAI事件,PAI事件不触发则会导致'屏幕的AT SELECTION-SCREEN OUTPUT也就不会被触发(非执行按钮的FunCode触发时都会刷新'屏幕,所以再次显示屏幕时再次执行PBO)PARAMETERS p_rd1 RADIOBUTTON GROUP gp1 USER-COMMAND mxx.'用来隐藏 p_lclfilPARAMETERS p_rd2 RADIOBUTTON GROUP gp1 DEFAULT 'X'.'用来显示 p_lclfil'当通过程序动态修改屏幕元素属性 required 后,会忽略掉这里的OBLIGATORY 选项*PARAMETERS p_lclfil(128) AS LISTBOX VISIBLE LENGTH 20 MODIF ID mxy OBLIGATORY .PARAMETERS p_lclfil(128) MODIF ID mxy OBLIGATORY .PARAMETERS: c AS CHECKBOX.'没什么作用,用来测试CHECKBOX 的可输入性'当 C2 被钩选时,屏幕上的其他输入元素均不可输入PARAMETERS: c2 AS CHECKBOX USER-COMMAND ddd DEFAULT 'X'.AT SELECTION-SCREEN OUTPUT.LOOP AT SCREEN .'当 C2 没有钩选时,其他元素都设置为可输入IF screen-name <> 'C2' AND c2 IS INITIAL .screen-input = 1.MODIFY SCREEN.ELSEIF screen-name <> 'C2' AND c2 IS NOT INITIAL .screen-input = 0.'C2钩选时,所以屏幕输入元素禁止输入MODIFY SCREEN.ENDIF.'控制下拉列表(文本框也是一样)的必输性:外观上打钩,但不自动校验IF p_rd2 = 'X' AND screen-group1 = 'MXY'.'显示screen-active = '1'.* screen-input = '1'.'显示前设为可输入screen-required = '2'.'外观上打钩,但不自动校验MODIFY SCREEN.ELSEIF screen-group1 = 'MXY'. ''隐藏screen-active = '0'.screen-required = '2'.MODIFY SCREEN.ENDIF.ENDLOOP.AT SELECTION-SCREEN ON p_lclfil.IF p_rd2 IS NOT INITIAL'手动检验:但当点击单选按钮与复选框C2 时,不校验AND sy-ucomm <> 'MXX' AND sy-ucomm <> 'DDD' AND p_lclfil IS INITIAL.MESSAGE e055(00).ENDIF.。
SAP ABAP 调试模式对话屏幕
ABAP--如何对模式对话屏幕进行调试
在SAPGUI的模式对话屏幕操作跟踪中,我们无法象一般屏幕那样在SAP的命令框中输入"/H"系统命令激活ABAP调试。
这个问题也一直用实现设置断点的方式变通方式绕过。
今天看到Note:118184-SAPshortcut-debugger start,终于解决我的困恼。
我也特地将文章翻译转载。
具体步骤如下:
1、创建"SAP GUI ShortCut"文件:Debug.sap
在桌面点击鼠标右键,并按下图选择创建SAP GUI ShortCut"文件。
2、编辑Debug.sap文件
选中桌面的Debug.sap,点击鼠标右键,选择"编辑",系统将弹出下面的窗口,请按图中的红色方框指示的输入参数,并按"确认"按钮保存文件。
3、在模式对话屏幕中激活调试设置。
我就那SE38来作实例,运新SE38,输入程序名,点击查看,进入ABAP编辑器屏幕,选择菜单"转到"->"属性",系统弹出“程序属性”模式屏幕。
选中桌面的Debug.sap文件,按住鼠标左键,将文件拖到“程序属性”模式屏幕上并放下,系统将自动激活调试,见下图。
4、进入调试
点击模式窗口的任意按钮,系统就自动进入调试屏幕,如下图。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
A container for further screen object
7
ห้องสมุดไป่ตู้
画面程序设计
Screen Object: Screen
7
8
画面程序设计 Defining and Managing Screens Screen_ _ _ _ Screen Objects Text field
©2002 HAND Enterprise Solutions Co., Ltd. Confidential Not For Public.
Airline Flight number
©2002 HAND Enterprise Solutions Co., Ltd. Confidential Not For Public.
Booking date Booking number
Displaying static texts
15
16
画面程序设计 Creating Text Fields
画面程序设计
画面程序设计
对话框设置
快捷键设置
消息设置
1
2
3
4
5
5
6
多国语言设置
5
6
画面程序设计
Screen Title bar Text field Input/Output field Status icon Group box Radio button and checkbox Pushbutton GUI status List
ABAP PROGRAM sapmzxxx. ...
18
19
画面程序设计 Input/Output Field:Attributes
Attributes
General
• Object name • Object text • Icon display - Icon name - Quick info • Start position • Size - Static - Dynamic • Scrollable • Modif. groups
©2002 HAND Enterprise Solutions Co., Ltd. Confidential Not For Public.
SCREEN 技术交流
1
1
©2002 HAND Enterprise Solutions Co., Ltd. Confidential Not For Public.
• Save,Check,Active • APPL0(Rarely update),APPL1(Frequently update) • Size
4
©2002 HAND Enterprise Solutions Co., Ltd. Confidential Not For Public.
建立客户透明表
Window titles
To New New San
12
13
画面程序设计 Creating and Using Title Bars
ABAP
SET TITLEBAR ‘TITLE_SCREEN_100’.
Create Object Title TITLE_SCREEN_100 does not exits. Do you want to create the object ?
©2002 HAND Enterprise Solutions Co., Ltd. Confidential Not For Public.
Selection screen Subscreen Tabstrip control Table control
11
12
画面程序设计 Screen Object: Title Bar
LH
Displaying and receiving data at the frontend
• Automatic field input checks • Data consistency checks (foreign key) • Possible values help
©2002 HAND Enterprise Solutions Co., Ltd. Confidential Not For Public.
Flight Connections
Airline
Flight No 0400 0402 2407 From Frankfurt Frankfurt Berlin
LH
©2002 HAND Enterprise Solutions Co., Ltd. Confidential Not For Public.
Table
uses
3
4
建立客户透明表 Exercise:Create a Table • SE11--Create a new tables • ZMKPF_FDEVxx
− mandt, mblnr, mjahr, budat
©2002 HAND Enterprise Solutions Co., Ltd. Confidential Not For Public.
19
Program
• Dialog properties
- Input field - Output field - Output only - Required field
Display
©2002 HAND Enterprise Solutions Co., Ltd. Confidential Not For Public.
Screen Attributes
...
Flow Logic PBO. ... PAI. ... Box 8 Title ... ... ... ... ... ...
©2002 HAND Enterprise Solutions Co., Ltd. Confidential Not For Public.
• Input options
- *input possible - without reset - without template
20
画面程序设计 Creating Input/Output Fields
Screen Painter
Fullscreen Editor
ABAP Dictionary
Display/Change
Display/Change
This field is always displayed. This field can be hidden.
This text is always displayed.
©2002 HAND Enterprise Solutions Co., Ltd. Confidential Not For Public.
Text field name: textfield1
21
22
画面程序设计 Dynamically Modifiable Attributes
************************** INCLUDE MZxxxTOP * ************************** TABLES sdyn_conn DATA hugo(8) TYPE c ...
20
21
画面程序设计
Hiding a Field Dynamically
Table: SDYN_CONN
Field name CARRID
Type
CHAR NUMC
Length
3 4
Object Attributes HUGO Object name defLg Data format 8 CHAR
CONNID
©2002 HAND Enterprise Solutions Co., Ltd. Confidential Not For Public.
Flight Connections
Save
13
Cancel
14
画面程序设计
Screen Title bar Text field Input/Output field Status icon Group box Radio button and checkbox Pushbutton GUI status List
Texts
Short Field name Text
Medium Longer text Long Much longer text
16
17
画面程序设计
Screen Title bar Text field Input/Output field Status icon Group box Radio button and checkbox Pushbutton GUI status List
• Possible entries
- with or without - P. entries button
• Fixed font • Intensified • Invisible • 2-dimensional
• Output options
- right-justified - leading zeros
©2002 HAND Enterprise Solutions Co., Ltd. Confidential Not For Public.
Double-click
Yes
No
Cancel
Create Title
Program Title code Title
XXXX TITLE_SCREEN_100
9
画面程序设计
9
©2002 HAND Enterprise Solutions Co., Ltd. Confidential Not For Public.