ABAP中的F4帮助怎么用? 
当我们在sap的界面上,焦点放到一个字段上的时候,按F4,会出现选择或者搜索的界面,这就是abap中的f4帮助。 
 
有多种实现f4帮助的方法,现在就把我指导的一点点说出来: 
 
1 , 固定值。 我们在Domain 中可以定义 value range ,在 value range 中定义的值,就可以出现在f4帮助中。这是最简单的实现f4帮助的方法。 
 
2 ,数据类型关联。 加入我们在选择屏幕上定义一个 dats 类型的 参数,她就自动调用了日期类型的f4帮助。 
 
3, se11 创建 f4帮助。 
( 
将se11创建的搜索帮助挂到表上的时候,又可以分为以下三种类型: 
 
用检查表实现输入帮助 
字段的外部搜索帮助附件 
数据元素的明确搜索帮助附件 
 
她们之间有啥区别,我也不知道。等我知道了再补充。 
) 
 
用 se11 创建 的 f4 帮助 可以分为两类: 
 
基本搜索帮助 
集中搜索帮助 
 
基本搜索帮助是搜索帮助的最小单元,集中搜索帮助还可以包括集中搜索帮助,也可以包括基本搜索帮助。 
 
在基本搜索帮助中 可以定义 数据来源,但是集中搜索帮助不可以定义数据来源。 
 
无论是基本搜素偶帮助还是集中搜索帮助都包含输出输出字段定义,并可以定义搜索帮助exit,用于调用一个远程的 function module 来对数据进行 过滤和处理。 
 
 
如果将这些搜索帮助与表挂上之后,我们在使用的时候就会自动出现该搜索帮助。 
 
在 synpro 程序中。也可以通过属性(属性名叫 搜索帮助)为字段 重新指定自定义的搜索帮助 
 
 
也可以在 选择屏幕或者 screen 中重新指定搜索帮助,下面举几个例子来说明使用的方法 
 
一, 根据搜索帮助的名字 来指定搜索帮助 
1 选择屏幕 
 
REPORT z_ljc_078 LINE-SIZE 200.

parameters: mama(18) type c.

INITIALIZATION.

AT SELECTION-SCREEN on value-request for mama.

DATA:v_mama LIKE help_info-dynprofld. 
v_mama = 'MAMA'. 
CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST' 
EXPORTING 
tabname = '' 
fieldname = '' 
SEARCHHELP = 'ZFI_CRC_001'

DYNPPROG = SY-REPID 
DYNPNR = SY-DYNNR 
DYNPROFIELD = v_mama

.

start-OF-SELECTION.

write mama. 
 
2 dynpro screen 
 
流逻辑: 
 
PROCESS BEFORE OUTPUT. 
MODULE INIT. 
PROCESS AFTER INPUT.

PROCESS ON VALUE-REQUEST. 
FIELD matnr MODULE VALUE_matnr.

report : 
MODULE init OUTPUT. 
progname = sy-repid. 
dynnum = sy-dynnr. 
ENDMODULE. 
 
 
MODULE value_matnr INPUT.

CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST' 
EXPORTING 
tabname = '' 
fieldname = '' 
SEARCHHELP = 'MAT1'

DYNPPROG = SY-REPID 
DYNPNR = SY-DYNNR 
DYNPROFIELD = 'MATNR' 
ENDMODULE. 
 
 
无论是在选择屏幕或者是dynpro中,如果指定了searchhelp 属性,则 tabname 和 fieldname 属性就不起作用了。 
当不指定 searchhelp 属性,而制定 了 tabname 和 fieldname 属性,则会调用 tabname-fieldname 挂接的搜素偶帮助。 
 
CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST' 
EXPORTING 
tabname = 'mara' 
fieldname = 'matnr' 
* SEARCHHELP = ''

DYNPPROG = SY-REPID 
DYNPNR = SY-DYNNR 
DYNPROFIELD = 'MATNR' 
 
 
 
二, 用内表生成f4帮助 
 
1 选择屏幕 
TYPES: BEGIN OF ty_aenr, 
aennr type aenr-aennr, 
datuv type aenr-datuv, 
aenam type aenr-aenam, 
aegru type aenr-aegru, 
ccart type aenr-ccart, 
aetxt type aenr-aetxt, 
END OF ty_aenr. 
 
DATA: gt_aenr TYPE TABLE OF ty_aenr, 
gs_aenr TYPE ty_aenr.

INITIALIZATION.

PERFORM frm_read_aenr. 
 
 
* 获得图幅的f4帮助 
AT SELECTION-SCREEN ON VALUE-REQUEST FOR so_aennr-low. 
PERFORM frm_search_help_file. 
 
 
 
 
FORM frm_read_aenr . 
DATA l_objnr TYPE jest-objnr. 
DATA l_line TYPE bsvx-sttxt. " 订单状态

SELECT a~aennr a~datuv a~aenam a~aegru a~ccart a~aetxt 
INTO TABLE gt_aenr 
FROM aenr as a 
inner join USGRP_USER as c 
on a~annam = c~bname 
where c~usergroup = 'CCCAR'. 
loop at gt_aenr into gs_aenr. 
CLEAR:l_objnr,l_line. 
***组建更改编号对象号 
CONCATENATE 'CD' gs_aenr-aennr INTO l_objnr. 
***获得系统状态,调用函数 
CALL FUNCTION 'STATUS_TEXT_EDIT' 
EXPORTING 
objnr = l_objnr 
spras = sy-langu 
IMPORTING 
line = l_line 
EXCEPTIONS 
object_not_found = 1 
OTHERS = 2. 
***判断该更改单是否批准 
IF sy-subrc = 0. 
SEARCH l_line FOR 'ECOR'. 
IF sy-subrc <> 0. 
DELETE gt_aenr. "没有下达的就删掉 
ENDIF. 
ENDIF. 
endloop. 

ENDFORM. " frm_read_proj 
 
 
FORM frm_search_help_file . 
DATA:v_aennr LIKE help_info-dynprofld. 
v_aennr = 'SO_aennr'.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST' 
EXPORTING 
retfield = 'AENNR' 
value_org = 'S' 
dynprofield = v_aennr 
dynpprog = sy-repid 
dynpnr = sy-dynnr 
TABLES 
value_tab = gt_aenr 
EXCEPTIONS 
parameter_error = 1 
no_values_found = 2 
OTHERS = 3. 
* IF sy-subrc <> 0. 
* WRITE: 'error'. 
* ENDIF.

ENDFORM. " frm_search_help_file 
 
2 dynpro screen: 
 
流逻辑: 
 
PROCESS BEFORE OUTPUT. 
MODULE INIT. 
PROCESS AFTER INPUT.

PROCESS ON VALUE-REQUEST. 
FIELD aenam MODULE VALUE_aenam. 
 
 
report : 
 
TYPES: BEGIN OF values, 
aenam TYPE mara-aenam, 
matnr TYPE mara-matnr,

END OF values.

DATA: matnr(18) TYPE c, 
aenam(12) TYPE c.

DATA: progname TYPE sy-repid, 
dynnum TYPE sy-dynnr 
.

CALL SCREEN 100.

MODULE init OUTPUT. 
progname = sy-repid. 
dynnum = sy-dynnr. 
ENDMODULE.

MODULE value_aenam INPUT.

select aenam matnr into table values_tab from mara where matnr BETWEEN '000000000000001199' and '000000000000001250'.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST' 
EXPORTING 
retfield = 'AENAM' 
dynpprog = progname 
dynpnr = dynnum 
dynprofield = 'AENAM' 
value_org = 'S' 
TABLES 
value_tab = values_tab. 
ENDMODULE. 
 
当然,也可以根据一个 字段的选择 过滤另一个字段的f4帮助的 数据。下面给出一个在 dynpro screen 中的例子。 
在选择屏幕上就不给出例子了。实现的方法都差不多。甚至更简单。 
 
 
流逻辑: 
 
PROCESS BEFORE OUTPUT. 
* MODULE STATUS_0100. 

MODULE INIT. 
PROCESS AFTER INPUT. 
* MODULE USER_COMMAND_0100. 
MODULE CANCEL AT EXIT-COMMAND.

PROCESS ON VALUE-REQUEST. 
FIELD matnr MODULE VALUE_matnr. 
FIELD aenam MODULE VALUE_aenam. 
 
 
report : 
 
*&

TYPES: BEGIN OF values, 
aenam TYPE mara-aenam, 
matnr TYPE mara-matnr,

END OF values.

DATA: matnr(18) TYPE c, 
aenam(12) TYPE c.

DATA: progname TYPE sy-repid, 
dynnum TYPE sy-dynnr, 
dynpro_values TYPE TABLE OF dynpread, 
field_value LIKE LINE OF dynpro_values, 
values_tab TYPE TABLE OF values.

CALL SCREEN 100.

MODULE init OUTPUT. 
progname = sy-repid. 
dynnum = sy-dynnr. 
CLEAR: field_value, dynpro_values. 
field_value-fieldname = 'AENAM'. 
APPEND field_value TO dynpro_values. 
ENDMODULE.

MODULE cancel INPUT. 
LEAVE PROGRAM. 
ENDMODULE.

MODULE value_aenam INPUT.

select aenam matnr into table values_tab from mara where matnr BETWEEN '000000000000001199' and '000000000000001250'.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST' 
EXPORTING 
retfield = 'AENAM' 
dynpprog = progname 
dynpnr = dynnum 
dynprofield = 'AENAM' 
value_org = 'S' 
TABLES 
value_tab = values_tab.

ENDMODULE.

MODULE value_matnr INPUT.

CALL FUNCTION 'DYNP_VALUES_READ' 
EXPORTING 
dyname = progname 
dynumb = dynnum 
translate_to_upper = 'X' 
TABLES 
dynpfields = dynpro_values.

READ TABLE dynpro_values INDEX 1 INTO field_value.

SELECT AENAM MATNR 
FROM MARA 
INTO CORRESPONDING FIELDS OF TABLE values_tab 
WHERE AENAM = field_value-fieldvalue.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST' 
EXPORTING 
retfield = 'AENAM' 
dynpprog = progname 
dynpnr = dynnum 
dynprofield = 'MATNR' 
value_org = 'S' 
TABLES 
value_tab = values_tab.

ENDMODULE.

ABAP中的F4帮助怎么用相关推荐

  1. ABAP中的F4帮助怎么用?

    ABAP中的F4帮助怎么用? 当我们在sap的界面上,焦点放到一个字段上的时候,按F4,会出现选择或者搜索的界面,这就是abap中的f4帮助. 有多种实现f4帮助的方法,现在就把我指导的一点点说出来: ...

  2. ABAP中使用浏览器打开网页

    在SAP ABAP中可以在Screen中嵌入Html control打开网页,也可以通过调用本地的IE浏览器打开. 1.在Screen中嵌入Html control的例子,在系统中有,se38:SAP ...

  3. [转]SAP ABAP中使用Read_Text函数读取项目文本的方法

    SAP ABAP中使用Read_Text函数读取项目文本的方法 使用Read_Text函数来读取文本内容.需要找到相关参数. 下面以采购订单为例: 双击文本,进入文本编辑器. 转到->表头. 显 ...

  4. 【转载】ABAP中数据和对象的动态创建和调用

    ABAP中数据和对象的动态创建和调用 动态创建数据或者对象是指在程序运行过程中创建数据变量或者对象实例,我们可以用引用定义来创建数据变量,格式为: CREATE DATA  gt_def TYPE ( ...

  5. ABAP中P类型介绍

    ABAP中比较难以理解的是P类型的使用,P类型是一种压缩类型,主要用于存储小数,定义时要指定字节数和小数点位数,定义语法如下: DATA: name(n) TYPE P decimals m,n代表字 ...

  6. ABAP中常见的接口技术类型

    下面总结一下ABAP中的各种接口技术,因为学习时间不是很长,肯定还不全(还有增强.出口等),以后再补上. 针对具体的情况,选择不同的接口方法,或几种方法并行使用. 一.CPI-C 是基础,但不是很常用 ...

  7. ABAP中接收.NET语言byte[]类型返回值问题

    在公司自开发的一个项目中,使用了.NET编写的视频监控控件.控件提供了CutBytePicture接口函数用于截取视频图片,返回图片字节流..NET函数原型如下: public byte[] CutB ...

  8. 【ABAP系列】SAP ABAP中关于commit的一点解释

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP中关于commi ...

  9. ibm 服务器 总显示f1,联想ThinkPad笔记本中F1/F4键盘指示灯一直常亮着如何解决

    有不少使用联想ThinkPad笔记本的小伙伴们在使用电脑的时候,发现遇到这样一个情况,就是键盘上的F1/F4键盘状态指示灯常亮,按FN+ESC组合键也无法取消,按FN和对应的功能键也不行,这可该怎么解 ...

最新文章

  1. 学习笔记:vsphere6 迁移物理机,指定被迁移的IP报错
  2. 用电脑发短信_丢掉你的手机数据线吧!用这个软件轻松在任何设备互传文件
  3. 使用阿里云ACM简化你的Spring Cloud微服务环境配置管理 1
  4. kudu大量数据更新_i2Stream提升异构数据库数据的互联互通
  5. Kubernetes本地集群和Google Kubernetes Engine的区别
  6. Visual C#实现HTTP代理服务程序
  7. 保存网络文章以供以后使用Instapaper阅读
  8. sqlserver 查询一个表的所有字段代码
  9. php自动加载原理,php中的自动加载类机制原理
  10. 让php来搞定一切!,ubuntu安装和配置php5
  11. 1、Ribbon相关组件初始化 - Ribbon 核心原理与源码分析
  12. Nginx安装使用及与tomcat实现负载均衡
  13. Spring Boot打包成jar包
  14. 《数据库系统概论》第五版 +学习笔记总目录
  15. k近邻算法_k近邻算法
  16. H5上传从微信保存的图片提示格式不对
  17. 成都最最最牛逼的IT公司全在这了
  18. 二进制炸弹实验binarybomb 拆弹
  19. unity Inspector
  20. OGC入门学习专栏(2.1) - SWE通用数据模型编码标准(写完所有小节再合)

热门文章

  1. 8-2:C++继承之父类和子类对象赋值转换(公有继承)也即切片
  2. 7-1:C++的IO流
  3. linux 获取本机的所有IP地址
  4. 面试题59 - I. 滑动窗口的最大值/239. 滑动窗口最大值
  5. 小学生计算机辅助教学系统--练习加,减,乘,除法
  6. Qt:Windows编程—Qt实现进程管理
  7. 大数据学习——免密登录配置
  8. css3 实现水晶按钮
  9. 关于APK文件反编译方法(图文详解)
  10. 让WEB FORM更像WINDOWS FORM: 控制窗体事件