F4IF_FIELD_VALUE_REQUEST 和 F4IF_INT_TABLE_VALUE_REQUEST的不同
F4IF_FIELD_VALUE_REQUEST 和 F4IF_INT_TABLE_VALUE_REQUEST的不同
F4IF_FIELD_VALUE_REQUEST主要功能是将表里的字段对应的search help引入到屏幕上来,从而打开对话框,当然也可以任意指定某个search help。
F4IF_INT_TABLE_VALUE_REQUEST支持字定义内表,但是不能通过指定search help的方式打开对话框。
1.F4IF_FIELD_VALUE_REQUEST的应用实例
TYPES: BEGIN OF type_carrid,
carrid TYPE spfli-carrid,
connid type spfli-connid,
carrname TYPE scarr-carrname,
END OF type_carrid.
DATA itab_carrid TYPE STANDARD TABLE OF type_carrid.
parameters airline(2) type c.
*&---------------------------------------------------------------------*
*& Processing Blocks called by the Runtime Environment *
*&---------------------------------------------------------------------*
* Event Block AT SELECTION-SCREEN ON VALUE-REQUEST FOR
at selection-screen on value-request for airline.
perform frm_f4_help.
* Form for generating F4 HELP for parameter AIRLINE
form FRM_F4_HELP .
SELECT carrid carrname
FROM scarr
INTO CORRESPONDING FIELDS OF TABLE itab_carrid.
CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'
EXPORTING
TABNAME = 'SPFLI' "指定stucture,必须的
fieldname = 'CARRID' "指定structure中的field
dynpprog = sy-repid "指定屏幕参数所在的程序名称
dynpnr = sy-dynnr "指定参数所在的屏幕编号
dynprofield = 'AIRLINE'. "指定屏幕参数的名称
IF sy-subrc <> 0.
...
ENDIF.
endform. " FRM_F4_HELP
2.F4IF_INT_TABLE_VALUE_REQUEST的应用实例
TYPES: BEGIN OF type_carrid,
carrid TYPE spfli-carrid,
connid type spfli-connid,
carrname TYPE scarr-carrname,
END OF type_carrid.
DATA itab_carrid TYPE STANDARD TABLE OF type_carrid.
* Selection Screen
parameters airline(2) type c.
* Event Block AT SELECTION-SCREEN ON VALUE-REQUEST FOR
at selection-screen on value-request for airline.
perform frm_f4_help.
* Form for generating F4 HELP for parameter AIRLINE
form FRM_F4_HELP .
SELECT carrid carrname
FROM scarr
INTO CORRESPONDING FIELDS OF TABLE itab_carrid.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'CARRID' "指定要返回屏幕参数的在内表中的field
value_org = 'S' "S代表structure
dynpprog = sy-repid "指定屏幕参数所在的程序名称
dynpnr = sy-dynnr "指定参数所在的屏幕编号
dynprofield = 'AIRLINE'"指定屏幕参数的名称
TABLES
value_tab = itab_carrid "内表
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
IF sy-subrc <> 0.
...
ENDIF.
endform. " FRM_F4_HELP
完整例子:
DATA: BEGIN OF wa_help ,
ebeln TYPE ebeln,
aedat TYPE erdat,
END OF wa_help.
DATA: it_help LIKE TABLE OF wa_help.
DATA: it_return LIKE TABLE OF ddshretval WITH HEADER LINE.
DATA: BEGIN OF wa_data.
INCLUDE STRUCTURE ztable_line.
DATA: maktx(40),
rowcolor(4),
END OF wa_data.
DATA: it_data LIKE TABLE OF wa_data WITH HEADER LINE.
DATA: it_data_tmp LIKE TABLE OF wa_data WITH HEADER LINE.
DATA:BEGIN OF it_maktx OCCURS 0,
matnr TYPE matnr,
maktx(40),
END OF it_maktx.
SELECTION-SCREEN BEGIN OF BLOCK bl1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_ebeln FOR g_ebeln OBLIGATORY.
SELECT-OPTIONS: s_bukrs FOR g_bukrs .
SELECTION-SCREEN END OF BLOCK bl1.
INITIALIZATION.
CLEAR:it_help, wa_help.
SELECT ebeln aedat
INTO TABLE it_help
FROM ekko
UP TO 100 ROWS.
AT SELECTION-SCREEN.
*AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_ebeln.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_ebeln-low.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'EBELN'
value_org = 'S'
TABLES
value_tab = it_help
return_tab = it_return
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
IF it_return[] IS NOT INITIAL.
READ TABLE it_return INDEX 1.
IF sy-subrc = 0.
s_ebeln-low = it_return-fieldval .
ENDIF.
ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_ebeln-high.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'EBELN'
value_org = 'S'
TABLES
value_tab = it_help
return_tab = it_return
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
IF it_return[] IS NOT INITIAL.
READ TABLE it_return INDEX 1.
IF sy-subrc = 0.
s_ebeln-high = it_return-fieldval .
ENDIF.
ENDIF.
——————————————————————————————
总结:总上所述,在se11已经存在建立好的search help的情况下我们通常使用第一个function module,在需要给某个字段限定一些特殊值的时候,我们通常使用第2种function module.
F4IF_FIELD_VALUE_REQUEST 和 F4IF_INT_TABLE_VALUE_REQUEST的不同的更多相关文章
- F4IF_INT_TABLE_VALUE_REQUEST选择屏幕自定义F4帮助
今天在用 F4IF_INT_TABLE_VALUE_REQUEST函数写选择屏幕的自定义帮助的时候,发现了个问题,那就是 F4IF_INT_TABLE_VALUE_REQUEST中参数value_ta ...
- 屏幕 Dynpro
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- PA教材提纲 TAW10-2
Unit1 Introduction to the ABAP Dictionary(ABAP字典介绍) 1.1 Describing the ABAP Dictionary(描述ABAP字典) ABA ...
- ABAP技术总结
SAP ——ABAP/4 技术总结 V3.0 2014-10-14 --江正军 1. 1.1. 1.1.1. 1.2. 1.3. 1.4. 1.5. 1.6. 1.7. 1.7.1. 1.7.2. ...
- 2019.03.30 Dialog demo 一个标准使用的dialog程序
PROGRAM zdemo_dialog. INCLUDE zdemo_dialogtop. INCLUDE zdemo_dialogo01. INCLUDE zdemo_dialogi01. INC ...
- 自定义SAP搜索帮助记录-代码实现
一般来说,标准的字段都可以用SE11来创建搜索帮助,但是有时候这里的满足不了需求或者,相同的数据元素需要用不同的搜索帮助类型,就需要用别的方式实现 1.用函数:F4IF_INT_TABLE_VALUE ...
- SAP中的F4帮助
今天在调试标准程序的时候,意外的发现了一个F4帮助的函数,感觉还是挺好用的. F4IF_FIELD_VALUE_REQUEST从函数名就可以看出是给字段添加F4帮助的. F4 help for fie ...
- ABAP 订单-交货单-发货过账自动完成 案例
*&---------------------------------------------------------------------* *& Report ZSDR006 ...
- F4搜索帮助 带回多个值
昨天群里有人问,就自己试了一下,POV执行在走PAI之前,所以空表行的时候TABLE里是没有数据的,所以一开始想用MIDOFY的想法看来不完善,可以再空表时做个APPEND. 后来又换了个想法,直 ...
随机推荐
- java调用Oracle存储存储过程
数据库表和增删改的procedure参照(http://www.cnblogs.com/J-wym/p/3292913.html) 1.测试添加数据的procedure public void tes ...
- Excel 自定义函数
浅谈Excel开发:四 Excel 自定义函数 我们知道,Excel中有很多内置的函数,比如求和,求平均,字符串操作函数,金融函数等等.在有些时候,结合业务要求,这些函数可能不能满足我们的需求,比 ...
- HTML5学习+javascript学习:打飞机游戏Service层Control层+源码
2.Service层 如前所述,Service层是Control层与Model层之间桥接的一层,它拥有所有要在屏幕上显示的实体(除了背景)的引用 我们知道,当游戏运行时,随时都可能发生碰撞,随时都可能 ...
- SVN Access to '/svn/Test/!svn/me' forbidden,不能更新解决办法
从之前的电脑将Repositorise复制到现在用的PC,出现可以checkout但是不能update的问题.在网上找到以下解决方法,均未能解决. 1.确认URL跟实际一致: 2.确认用户名密码正确: ...
- IE11仿真文档模式默认IE5 IE7的调整办法
<meta http-equiv="X-UA-Compatible" content="IE=edge">
- MFC注册表操作
注册表简介 有时程序中要存些设置信息,一个方法就是创建一些普通的txt或xml文件,然后保存进去就行了.另一办法就是保存到注册表里.注册表是由windows维护的一个小数据库.里面也会保存window ...
- 安装oracle11数据库时,先决条件都失败怎么处理?
安装oracle11数据库时,先决条件都失败怎么处理?
- freemarker 遍历 hashmap 到select option
<select id="experience"> <option value ="">--请选择--</option> &l ...
- [Bzoj]1012最大数maxnumber
题目如上(线段树???),蒟蒻第二眼想法(其实这道题正解是单队的说,但蒟蒻刚学线段树,于是...就) 献上黑历史: RE是因为蒟蒻数组开太小:第一次开110000:第二次开200000:结果就………… ...
- [UWP小白日记-7]转换MVA学院的XML字幕为SRT (二)
瞎扯淡 上个版本,非常蠢用来N多的循环导致非常卡性能烂得不行,这次使用XmlDocument类来读取XML字幕 其实根本不用各种扒XML字幕,好吧我这是学习使用XmlDocument类,嗯就是这个样子 ...