ABAP F4帮助.doc_第1页
ABAP F4帮助.doc_第2页
ABAP F4帮助.doc_第3页
ABAP F4帮助.doc_第4页
ABAP F4帮助.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ABAP中的F4帮助怎么用?Admin2010年9月16日名人名言:个人如果但靠自己,如果置身于集体的关系之外,置身于任何团结民众的伟大思想的范围之外,就会变成怠惰的、保守的、与生活发展相敌对的人。高尔基 ABAP中的F4帮助怎么用? 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 aaennr adatuv aaenam aaegru accart aaetxt INTO TABLE gt_aenr FROM aenr as a inner join USGRP_USER as c on aannam = cbname where cusergroup = 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 val

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论