ABAP F4帮助.docx

上传人:b****5 文档编号:12052935 上传时间:2023-04-16 格式:DOCX 页数:12 大小:18.20KB
下载 相关 举报
ABAP F4帮助.docx_第1页
第1页 / 共12页
ABAP F4帮助.docx_第2页
第2页 / 共12页
ABAP F4帮助.docx_第3页
第3页 / 共12页
ABAP F4帮助.docx_第4页
第4页 / 共12页
ABAP F4帮助.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

ABAP F4帮助.docx

《ABAP F4帮助.docx》由会员分享,可在线阅读,更多相关《ABAP F4帮助.docx(12页珍藏版)》请在冰豆网上搜索。

ABAP F4帮助.docx

ABAPF4帮助

ABAP中的F4帮助怎么用?

Admin

2010年9月16日

名人名言:

个人如果但靠自己,如果置身于集体的关系之外,置身于任何团结民众的伟大思想的范围之外,就会变成怠惰的、保守的、与生活发展相敌对的人。

——高尔基

ABAP中的F4帮助怎么用?

 

ABAP中的F4帮助怎么用?

当我们在sap的界面上,焦点放到一个字段上的时候,按F4,会出现选择或者搜索的界面,这就是abap中的f4帮助。

 

有多种实现f4帮助的方法,现在就把我指导的一点点说出来:

 

1,固定值。

我们在Domain中可以定义valuerange,在valuerange中定义的值,就可以出现在f4帮助中。

这是最简单的实现f4帮助的方法。

 

2,数据类型关联。

加入我们在选择屏幕上定义一个dats类型的参数,她就自动调用了日期类型的f4帮助。

 

3,se11创建f4帮助。

将se11创建的搜索帮助挂到表上的时候,又可以分为以下三种类型:

 

用检查表实现输入帮助

字段的外部搜索帮助附件

数据元素的明确搜索帮助附件

 

她们之间有啥区别,我也不知道。

等我知道了再补充。

 

用se11创建的f4帮助可以分为两类:

 

基本搜索帮助

集中搜索帮助

 

基本搜索帮助是搜索帮助的最小单元,集中搜索帮助还可以包括集中搜索帮助,也可以包括基本搜索帮助。

 

在基本搜索帮助中可以定义数据来源,但是集中搜索帮助不可以定义数据来源。

 

无论是基本搜素偶帮助还是集中搜索帮助都包含输出输出字段定义,并可以定义搜索帮助exit,用于调用一个远程的functionmodule来对数据进行过滤和处理。

 

 

如果将这些搜索帮助与表挂上之后,我们在使用的时候就会自动出现该搜索帮助。

 

在synpro程序中。

也可以通过属性(属性名叫搜索帮助)为字段重新指定自定义的搜索帮助

 

 

也可以在选择屏幕或者screen中重新指定搜索帮助,下面举几个例子来说明使用的方法

 

一,根据搜索帮助的名字来指定搜索帮助

1选择屏幕

 

REPORTz_ljc_078LINE-SIZE200.

parameters:

mama(18)typec.

INITIALIZATION.

ATSELECTION-SCREENonvalue-requestformama.

DATA:

v_mamaLIKEhelp_info-dynprofld.

v_mama="MAMA".

CALLFUNCTION"F4IF_FIELD_VALUE_REQUEST"

EXPORTING

tabname=""

fieldname=""

SEARCHHELP="ZFI_CRC_001"

DYNPPROG=SY-REPID

DYNPNR=SY-DYNNR

DYNPROFIELD=v_mama

.

start-OF-SELECTION.

writemama.

 

2dynproscreen

 

流逻辑:

 

PROCESSBEFOREOUTPUT.

MODULEINIT.

PROCESSAFTERINPUT.

PROCESSONVALUE-REQUEST.

FIELDmatnrMODULEVALUE_matnr.

 

report:

MODULEinitOUTPUT.

progname=sy-repid.

dynnum=sy-dynnr.

ENDMODULE.

 

 

MODULEvalue_matnrINPUT.

CALLFUNCTION"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挂接的搜素偶帮助。

 

CALLFUNCTION"F4IF_FIELD_VALUE_REQUEST"

EXPORTING

tabname="mara"

fieldname="matnr"

*SEARCHHELP=""

DYNPPROG=SY-REPID

DYNPNR=SY-DYNNR

DYNPROFIELD="MATNR"

 

 

 

二,用内表生成f4帮助

 

1选择屏幕

TYPES:

BEGINOFty_aenr,

aennrtypeaenr-aennr,

datuvtypeaenr-datuv,

aenamtypeaenr-aenam,

aegrutypeaenr-aegru,

ccarttypeaenr-ccart,

aetxttypeaenr-aetxt,

ENDOFty_aenr.

 

DATA:

gt_aenrTYPETABLEOFty_aenr,

gs_aenrTYPEty_aenr.

 

INITIALIZATION.

PERFORMfrm_read_aenr.

 

 

*获得图幅的f4帮助

ATSELECTION-SCREENONVALUE-REQUESTFORso_aennr-low.

PERFORMfrm_search_help_file.

 

 

 

 

FORMfrm_read_aenr.

DATAl_objnrTYPEjest-objnr.

DATAl_lineTYPEbsvx-sttxt."订单状态

SELECTa~aennra~datuva~aenama~aegrua~ccarta~aetxt

INTOTABLEgt_aenr

FROMaenrasa

innerjoinUSGRP_USERasc

ona~annam=c~bname

wherec~usergroup="CCCAR".

loopatgt_aenrintogs_aenr.

CLEAR:

l_objnr,l_line.

***组建更改编号对象号

CONCATENATE"CD"gs_aenr-aennrINTOl_objnr.

***获得系统状态,调用函数

CALLFUNCTION"STATUS_TEXT_EDIT"

EXPORTING

objnr=l_objnr

spras=sy-langu

IMPORTING

line=l_line

EXCEPTIONS

object_not_found=1

OTHERS=2.

***判断该更改单是否批准

IFsy-subrc=0.

SEARCHl_lineFOR"ECOR".

IFsy-subrc<>0.

DELETEgt_aenr."没有下达的就删掉

ENDIF.

ENDIF.

endloop.

.

ENDFORM."frm_read_proj

 

 

FORMfrm_search_help_file.

DATA:

v_aennrLIKEhelp_info-dynprofld.

v_aennr="SO_aennr".

CALLFUNCTION"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.

*IFsy-subrc<>0.

*WRITE:

"error".

*ENDIF.

ENDFORM."frm_search_help_file

 

2dynproscreen:

 

流逻辑:

 

PROCESSBEFOREOUTPUT.

MODULEINIT.

PROCESSAFTERINPUT.

PROCESSONVALUE-REQUEST.

FIELDaenamMODULEVALUE_aenam.

 

 

report:

 

TYPES:

BEGINOFvalues,

aenamTYPEmara-aenam,

matnrTYPEmara-matnr,

ENDOFvalues.

DATA:

matnr(18)TYPEc,

aenam(12)TYPEc.

DATA:

prognameTYPEsy-repid,

dynnumTYPEsy-dynnr

.

CALLSCREEN100.

MODULEinitOUTPUT.

progname=sy-repid.

dynnum=sy-dynnr.

ENDMODULE.

MODULEvalue_aenamINPUT.

selectaenammatnrintotablevalues_tabfrommarawherematnrBETWEEN"000000000000001199"and"000000000000001250".

CALLFUNCTION"F4IF_INT_TABLE_VALUE_REQUEST"

EXPORTING

retfield="AENAM"

dynpprog=progname

dynpnr=dynnum

dynprofield="AENAM"

value_org="S"

TABLES

value_tab=values_tab.

ENDMODULE.

 

当然,也可以根据一个字段的选择过滤另一个字段的f4帮助的数据。

下面给出一个在dynproscreen中的例子。

在选择屏幕上就不给出例子了。

实现的方法都差不多。

甚至更简单。

 

 

流逻辑:

 

PROCESSBEFOREOUTPUT.

*MODULESTATUS_0100.

*

MODULEINIT.

PROCESSAFTERINPUT.

*MODULEUSER_COMMAND_0100.

MODULECANCELATEXIT-COMMAND.

PROCESSONVALUE-REQUEST.

FIELDmatnrMODULEVALUE_matnr.

FIELDaenamMODULEVALUE_aenam.

 

 

report:

 

*&

TYPES:

BEGINOFvalues,

aenamTYPEmara-aenam,

matnrTYPEmara-matnr,

ENDOFvalues.

DATA:

matnr(18)TYPEc,

aenam(12)TYPEc.

DATA:

prognameTYPEsy-repid,

dynnumTYPEsy-dynnr,

dynpro_valuesTYPETABLEOFdynpread,

field_valueLIKELINEOFdynpro_values,

values_tabTYPETABLEOFvalues.

CALLSCREEN100.

MODULEinitOUTPUT.

progname=sy-repid.

dynnum=sy-dynnr.

CLEAR:

field_value,dynpro_values.

field_value-fieldname="AENAM".

APPENDfield_valueTOdynpro_values.

ENDMODULE.

MODULEcancelINPUT.

LEAVEPROGRAM.

ENDMODULE.

MODULEvalue_aenamINPUT.

selectaenammatnrintotablevalues_tabfrommarawherematnrBETWEEN"000000000000001199"and"000000000000001250".

CALLFUNCTION"F4IF_INT_TABLE_VALUE_REQUEST"

EXPORTING

retfield="AENAM"

dynpprog=progname

dynpnr=dynnum

dynprofield="AENAM"

value_org="S"

TABLES

value_tab=values_tab.

ENDMODULE.

MODULEvalue_matnrINPUT.

CALLFUNCTION"DYNP_VALUES_READ"

EXPORTING

dyname=progname

dynumb=dynnum

translate_to_upper="X"

TABLES

dynpfields=dynpro_values.

READTABLEdynpro_valuesINDEX1INTOfield_value.

SELECTAENAMMATNR

FROMMARA

INTOCORRESPONDINGFIELDSOFTABLEvalues_tab

WHEREAENAM=field_value-fieldvalue.

CALLFUNCTION"F4IF_INT_TABLE_VALUE_REQUEST"

EXPORTING

retfield="AENAM"

dynpprog=progname

dynpnr=dynnum

dynprofield="MATNR"

value_org="S"

TABLES

value_tab=values_tab.

ENDMODULE.

好了,关于f4帮助,目前就知道这么一点点。

就讲这么多吧。

f4帮助与check没有关系,只是用来搜索数据,并不进行数据的检查!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1