




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
abap常用函数收集一、单位换算callfunction'Z_FICO_DWHS'EXPORTINGa_matnr=tab01-ymatnr"物料号码a_unit_from='PNL'"基本计量单位meinsa_unit_to='PC'"itab_fp-vrkme"销售单位IMPORTINGa_rate=tybrgew.二、CONVERSION_EXIT_ALPHA_OUTPUT功能:删除输入的数字编号中的前置0。这个基本上不太用得到。输入参数:INPUT:不限制类型,必须输入。原始编号。输出参数:OUTPUT:日期类型。计算出的结果。测试结果:如果INPUT输入为纯数字(就是只有0~9之间的字符),结果删除该数字的前置0。如果INPUT输入不为纯数字(就是包含0~9之外的字符),结果就跟输入值一样。代码说明:调用了一个系统函数CONVERSION_EXIT_ALPHA_OUTPUT,这个函数是SAP用C语言写的,仅供SAP公司内部使用,我们的开发时无法使用。三、正确地使用SAP的标准对话框函数在用户设计sap的程序时,经常需要一些对话框,用户可以自己编写,但使用SAP系统中提供了的对话框函数将减少许多开发工作。12.3.1.将货币转成外部储存值CALLFUNCTION'BAPI_CURRENCY_CONV_TO_EXTERNAL'EXPORTINGcurrency=amount_internal=IMPORTINGAMOUNT_EXTERNAL=exceptionsOTHERS=1.12.3.2.将货币转成内部CALLFUNCTION'BAPI_CURRENCY_CONV_TO_INTERNALEXPORTINGcurrency=amount_external=max_number_of_digits=IMPORTINGAMOUNT_INTERNAL=RETURN=exceptionsOTHERS=1.12.3.3.求汇率CALLFUNCTION'CALCULATE_EXCHANGE_RATE'EXPORTINGDATE=ITAB1-INVDTFOREIGN_AMOUNT=ITAB1-AMTFOREIGN_CURRENCY=ITAB1-CURRLOCAL_AMOUNT=ITAB1-AMTNTDLOCAL_CURRENCY='NTD'TYPE_OF_RATE='M'IMPORTINGEXCHANGE_RATE=ITAB1-EXRAT*FOREIGN_FACTOR=*LOCAL_FACTOR=EXCEPTIONSNO_RATE_COMPUTABLE=1NO_RATE_FOUND=2RATE_TOO_BIG=3*NO_FACTORS_FOUND=4NO_SPREAD_FOUND=5OTHERS=6.CALLFUNCTION'READ_EXCHANGE_RATE'EXPORTINGdate=eket-eindtforeign_currency=ekko-waerslocal_currency='NTD'type_of_rate='M'IMPORTINGexchange_rate=zexchange_rateFOREIGN_FACTOR=LOCAL_FACTOR=VALID_FROM_DATE=EXCEPTIONSno_rate_found=1no_factors_found=2no_spread_found=3OTHERS=4.1、sap的函数组列表和用途说明适用情况Functiongroup提示用户将可能丢失数据SPO1提示用户对某个问题选择Yes或者NoSPO1提示用户将可能丢失数据,并询问用户是否继续操作SPO1提示用户在多个操作中选择一个操作SPO2提示用户是继续当前操作或者取消当前操作SPO2提示用户输入数据(可以根据一个表检查或者不检查输入值)SPO4将数据显示给用户SPO4将详细数据显示给用户SPO6从列表中选择数据SP05用可滚动的对话框显示数据给用户STAB从视图或者数据表中打印数据STPR2、函数列表和说明2.1SPO1的函数*POPUP_TO_CONFIRM_STEP*POPUP_TO_CONFIRM_WITH_MESSAGE类似POPUP_TO_CONFIRM_STEP,只是多三行的文本错误诊断提示。系统在窗口上显示一个绿色问号图标。callfunction'POPUP_TO_CONFIRM_WITH_MESSAGE'exportingtitel='确认提示测试'textline1='确实要执行;;'textline2=spop-textline2diagnosetext1=spop-diagnose1diagnosetext2=spop-diagnose2diagnosetext3=spop-diagnose3importinganswer=answer.*POPUP_TO_CONFIRM_WITH_VALUE*POPUP_TO_CONFIRM_LOSS_OF_DATA*POPUP_TO_CONFIRM该函数是POPUP函数的增强版,可以自定义按钮文本和图标。用此函数可以建立一个对话框用于询问用户是否执行某步操作,该操作可能会丢失数据,用户可以选择YesNo或者Cancel。该函数可以传入一个标题和一个两行的文本(提示问题)。系统在窗口上显示一个黄色!图标和一行“数据将丢失。”。可以设置某个按钮作为默认按钮。CALLFUNCTION'POPUP_TO_CONFIRM_LOSS_OF_DATA'EXPORTINGTITEL=TITELTEXTLINE1=SPOP-TEXTLINE1TEXTLINE2=SPOP-TEXTLINE2IMPORTINGANSWER=ANSWER.用此函数可以建立一个对话框用于询问用户是否执行某步操作,该操作可能会丢失数据,用户可以选择YesNo或者Cancel。该函数可以传入一个标题,两行的文本(提示问题)和一个对象值(对象值将会插入在提示问题文本的两部分之间)。系统在窗口上显示一个绿色问号图标。可以设置某个按钮作为默认按钮。CALLFUNCTION'POPUP_TO_CONFIRM_WITH_VALUE'EXPORTINGTITEL=TITELTEXT_BEFORE='确实要执行'OBJECTVALUE='TEST'TEXT_AFTER='?'IMPORTINGANSWER=ANSWER.用此函数可以建立一个对话框用于询问用户是否执行某步操作,用户可以选择YesNo或者Cancel。该函数可以传入一个标题和两行的文本(提示问题)。系统在窗口上显示一个绿色问号图标。可以设置某个按钮作为默认按钮。CALLFUNCTION'POPUP_TO_CONFIRM_STEP'EXPORTINGTITEL='确认提示测试'TEXTLINE1='确实要执行'TEXTLINE2='测试?'CANCEL_DISPLAY=SPACE"不显示CANCEL按钮IMPORTINGANSWER=ANSWER.2.2、FunctiongroupSPO2*POPUP_TO_DECIDE显示一个对话框,用户可以两个操作中的一个或者取消。可以传入三行提示文本。*POPUP_TO_DECIDE_WITH_MESSAGE类同POPUP_TO_DECIDE,程序员可以多传入Withthisfunctionmoduleyoucreateadialogboxinwhichyouinformtheuseraboutaspecificdecisionpointviaadiagnosistext,duringanaction.Heorshecanchooseoneoftwoalternativeactionsofferedorcanceltheaction.Theaction,thediagnosistext,thequestionandthealternativeactionsarepassedasparameters.Theuseraction(Alternative1,Alternative2,orCancel)isreturnedinaparameter.2.3、FunctiongroupSPO4*POPUP_GET_VALUESThisfunctionmodulesendsadialogboxfordatadisplayandinput.TheinputfieldsarepassedinastructureandmustbedefinedintheDictionary.Youcanalsospecifyindividualfielddisplayattributesandafieldtext,ifthekeywordfromtheDictionaryisnottobedisplayedasfieldtextinthedialogbox,inthestructure.Thestandardhelpfunctionality(F1,F4)issupported.*POPUP_GET_VALUES_DB_CHECKEDThisfunctionmodulesendsadialogboxfordatatobeinputundcheckedagainstthedatabase.TheinputfieldsarepassedinastructureandmustbedefinedintheDictionary.Youcanalsospecifyindividualfielddisplayattributesandafieldtextinthestructure,ifthekeywordfromtheDictionaryisnottobedisplayedasfieldtextinthedialogbox.Acomparisonoperatorforcheckingtheinputdatainthedatabaseispassed.Youcanspecifywhetherthecheckisfortheexistenceorabsenceofanobject.Aforeignkeyrelationshipcheckissupported.Thestandardhelpfunctionality(F1,F4)issupported.Theuseractionisreturnedinaparameter.*POPUP_GET_VALUES_USER_CHECKEDThisfunctionmodulesendsadialogboxfordatatobeinputandcheckedinanexternalsub-routine(userexit).Theinputfieldsarepassedinastructureandmustbedefinedinthedictionary.Youcanalsospecifyindividualfielddisplayattributesandafieldtextinthestructure,ifthekeywordfromtheDictionaryisnottobedisplayedasfieldtextinthedialogbox.TheDatainputbytheuserinthedialogboxarepassedtothesub-routinespecifiedintheinterfaceforchecking.Errorsfoundbythecheckareenteredinanerrorstructureandareevaluatedonreturnfromthesub-routinebythefunctionmodule.Thestandardhelpfunctionality(F1,F4)issupported.Theuseraction(ContinueorCancel)isreturnedinaparameter.*POPUP_GET_VALUES_USER_HELPThisfunctionmodulesendsadialogboxfordatatobeinputwiththepossibilityofacheckinanexternalsub-routine(userexit)andbranchinginauserF1orF4help.TheinputfieldsarepassedinastructureandmustbedefinedintheDictionary.Youcanalsospecifyindividualfielddisplayattributesandafieldtextinthestructure,ifthekeywordfromtheDictionaryisnottobedisplayedasfieldtextinthedialogbox.Youcanpassthedatawhichareenteredbytheuserinadialogboxtoasub-routinewhichmustbespecifiedintheinterfaceforchecking.Errorsoccurringinthecheckarestoredinanerrorstructureandareanalyzedbythefunctionmoduleuponreturnfromthesub-routine.Thedata,andanerrormessage,ifappropriate,aredisplayedagain.Thestandardhelpfunctionality(F1,F4)issupported.UserexitsforauserF1orF4helpcanalsobespecified.Theuseraction(ContinueorCancel)isreturnedinaparameter.*POPUP_GET_VALUES_USER_BUTTONSThisfunctionmoduleislikethepreviousfunctionmodulePOPUP_GET_VALUES_USER_HELP,withtheadditionalpossibilityofpassingoneortwoadditionalpushbuttonsandastandardpushbutton,whichtheusercanname.*POPUP_GET_VALUES_SET_MAX_FIELDWiththisfunctionmoduleyoucanspecifythemaximumnumberoffieldswhichcanbedisplayedindialogboxesforthisfunctiongroup(SPO4).Thespecifiedvalueisstoredinthefunctiongrouplocalmemoryandappliesfortherestoftheapplication.Dialogboxeswhichdisplaymorethenthisnumberoffieldsaredisplayedwithascrollbar.2.4、FunctiongroupSPO6*POPUP_DISPLAY_TEXTWiththisfunctionmoduleyoudisplayatextwhichexistsinthesysteminadialogbox.*POPUP_DISPLAY_TEXT_WITH_PARAMSWiththisfunctionmoduleyoudisplayatextwhichexistsinthesystemwithparametersinadialogbox.Theparametervaluesarepassedinatable.Theuseofnumberedtextsisrecommended,tomaketheparametervaluestranslatable.Theparameternamesmustbepassedinupper-caseletters.2.5、FunctiongroupSPO5*POPUP_TO_DECIDE_LIST从列表中选择数据,样例程序reportrsspo500.data:selectlistlikespoplioccurs5withheaderline.data:antworttypec.whileantwortne2.clearselectlist.refreshselectlist.selectlist-varoption=显示含有单选按钮的弹出框'.appendselectlist.selectlist-varoption='显示含有复选框的弹出框'.selectlist-selflag='X'.appendselectlist.callfunction'POPUP_TO_DECIDE_LIST'exporting*CURSORLINE=1*MARK_FLAG=''mark_max=1start_col=10start_row=10textline1='Text1'textline2='POPUP_TO_DECIDE_LIST'textline3='TEXT3'titel='TITLE'importinganswer=antworttablest_spopli=selectlistexceptionsnot_enough_answers=1too_much_answers=2too_much_marks=3others=4.ifantworteq'A'.exit.endif.endwhile.ifantwortne'A'.clearselectlist.refreshselectlist.selectlist-varoption='最多15个选项'.selectlist-selflag='X'.appendselectlist.selectlist-varoption='含有复选框'.selectlist-selflag='X'.appendselectlist.selectlist-varoption='或单选按钮'.selectlist-selflag='X'.appendselectlist.selectlist-varoption='典型的列表功能:'.selectlist-selflag='X'.appendselectlist.selectlist-varoption='*选择'.selectlist-selflag='X'.appendselectlist.selectlist-varoption='*选择全部'.selectlist-selflag='X'.appendselectlist.selectlist-varoption='取消全部选择'.selectlist-selflag='X'.appendselectlist.selectlist-varoption='370字符/选项'.selectlist-selflag='X'.appendselectlist.selectlist-varoption='65字符/选项'.selectlist-selflag='X'.appendselectlist.selectlist-varoption='激活/不激活可选行'.selectlist-selflag='X'.selectlist-inactive='X'.appendselectlist.*2.Aufruf**********************************************************callfunction'POPUP_TO_DECIDE_LIST'exporting*CURSORLINE=1mark_flag='X'mark_max=0start_col=15start_row=15textline1='DasPOPUPbietet'(c01)textline2='folgendeFunktionalit鋞:'(c02)titel='DasBeispiel2'(b02)importinganswer=antworttablest_spopli=selectlistexceptionsnot_enough_answers=1too_much_answers=2too_much_marks=3others=4.endif.function收集(一)1.Function:CLOI_PUT_SIGN_IN_FRONT功能:将负号提前参数:Changing:VALUE:需要负号提前的变量2.Function:EPS_GET_DIRECTORY_LISTING功能:获得某路径下的文件列表参数:Import:DIR_NAME:需要查找的路径FILE_MASK:没用过Export:DIR_NAME:文件路径FILE_COUNTER:文件个数ERROR_COUNTER:错误的个数Tables:DIR_LIST:文件列表说明:这个函数可以获得服务器某个路径下的所有文件,对opendatasetforreadfile中file名字的获得有帮助。3.Function:BAPI_COMPANYCODE_GET_PERIOD功能:获得公司的会计年度以及过账日期参数:Import:COMPANYCODEID:公司代码POSTING_DATE:postingdateExport:FISCAL_YEAR:会计年度FISCAL_PERIOD:财务期间RETURN:返回值说明:该函数可用来检查会计期间。4.Function:MARA_SINGLE_READ功能:读取物料信息参数:Import:KZRFB:Indicator:RefreshbufferentryMAXTZ:Max.no.ofentriesinbuffer(这两个参数应该和性能优化相关)MATNR:物料号SPERRMODUS:Lockmode(none,shared,excl.)STD_SPERRMODUS:Standardlockmode(ifdifferent)(锁相关)OUTPUT_NO_MESSAGE:是否输出消息Export:WMARA:返回的物料信息说明:该函数可用于性能优化,例如无法避免在loop中有sql的情况可以用该函数取代sql。对mara的其它操作参考functiongroup:MG215.Function:KNA1_SINGLE_READ功能:读取customer表信息参数:Import:KZRFB:Indicator:RefreshbufferentryKNA1_KUNNR:customercodeExport:WKNA1:返回的信息说明:还有很多表的读取参考functiongroup:MG416.Function:ADDR_GET_COMPLETE_ALL_TYPES功能:获得地址的相关信息参数:Import:ADDRNUMBER:addressnumberPERSNUMBER:个人信息ADDRESS_OBJECT_TYPE:类型1:组织2:个人3:客户Export:ADDR1_COMPLETE:地址1ADDR2_COMPLETE:地址2ADDR3_COMPLETE:地址3ADDR1_COMPLETE_BAPI:地址1ADDR2_COMPLETE_BAPI:地址2ADDR3_COMPLETE_BAPI:地址3(以上三个bapi用)7.Function:READ_VBFA功能:取得documentflow(省得select了)参数:Import:I_VBELV:PrecedingsalesanddistributiondocumentI_POSNV:PrecedingitemofanSDdocumentI_VBTYP_V:DocumentcategoryofprecedingSDdocumentI_VBTYP_N:DocumentcategoryofsubsequentdocumentI_FKTYP:BillingcategoryI_BYPASSING_BUFFER:是否用bufferI_REFRESH_BUFFER:删除buffer?Tables:E_VBFA:凭证流的表说明:可以通过bypassingbuffer来优化性能8.Function:SD_VBAK_SINGLE_READ功能:读取销售订单表头信息参数:Import:I_VBELN:销售订单I_BYPASSING_BUFFER:是否用bufferI_REFRESH_BUFFER:删除buffer?Export:E_VBAK:返回表头信息说明:读相关sd表的函数请参考functiongroup:V45I9.Function:LIKP_READ功能:DeliveryHeaderData参数:Import:I_VBELN:DeliveryLINE_EXIST:if'x'checkonlyiflineexsistsExport:O_ANSWR:sendout'x'forlineexsistsintableTables:E_LIKP:SDDocument:DeliveryHeaderData说明:有关读取delivery的信息请参考functiongroup:LMGT10.Function:CREATE_SAP_SHORTCUT功能:创建快捷方式参数:Import:SC_COMMAND:指定的tcodeSC_TITLE:快捷方式名字:例如:se38SC_TYPE:快捷方式类型:有三种:’report’,’transaction’,’systemcommand’NO_DIALOG:是否弹出窗口说明:具体没什么用,做着玩玩。11.Function:SAPGUI_PROGRESS_INDICATOR功能:显示进度参数:Import:PERCENTAGE:进度的百分数,>0,<100.TEXT:文本说明:在运行时间很长的程序中可以选择使用,这样保证了程序不会中止。当然也可以在rz10里面设置程序运行时间,不过比较麻烦。12.CALLFUNCTION'FIRST_DAY_IN_PERIOD_GET'EXPORTINGi_gjahr=p_gjahr"会计年度*I_MONMIT=00i_periv='K4'“会计年度变式i_poper=p_period”会计期间(一个月份)IMPORTINGe_date=r_date-low“返回的月首日下面这个则是取得月尾日CALLFUNCTION'LAST_DAY_IN_PERIOD_GET'EXPORTINGi_gjahr=p_gjahr*I_MONMIT=00i_periv='K4'i_poper=p_periodIMPORTINGe_date=r_date-high.13.Funtion:K_GROUP_SELECT功能:利润中心组的检索help参数:Import:BUTTONS:按钮,决定是否可以选择group类型CLASS:costcenterclassCRUSER:创建人FIELD_NAME:字段名称:此项为必输项SEARCHFLD:还没用过SEARCHFLD_INPUT:成本控制范围是否可以输入(参照图1)SEARCHFLD_REQUIRED:成本控制范围是否必输,如果设置为不可输入,那么这个参数无效(参考图2)SET:利润中心组的开头字母START_COLUMN:弹出窗口的位置START_ROW:弹出窗口的位置TABLE:表或者结构的名称Export:SET_NAME:取得帮助字段的值新手请教大家:我在看alv的时候,看到type-pools:slis.slis应该是一组数据结构,例子里有:(1)xeventTYPEslis_t_event,ls_eventTYPEslis_alv_event.slis_er_tepTYPEslis_formnamevalue'TOP_OF_PAGE'(2)通过调用函数REUSE_ALV_EVENTS_GET,获取所有的事件到xevent,然后把slis_er_tep赋给ls_event-form.我打印出xevent.它包含下面的事件.CALLER_EXITUSER_COMMANDTOP_OF_PAGE"页标题TOP_OF_COVERPAGEEND_OF_COVERPAGEFOREIGN_TOP_OF_PAGEFOREIGN_END_OF_PAGEPF_STATUS_SETLIST_MODIFYTOP_OF_LISTEND_OF_PAGE"页尾END_OF_LISTAFTER_LINE_OUTPUTBEFOR_LINE_OUTPUTREPREP_SEL_MODIFYSUBTOTAL_TEXTGROUPLEVEL_CHANGE能说明,以上事件具体是什么?ABAP:ALVALV是系统的一种网格的显示方式,这种方式带有汇总\排序\筛选等功能,ALV格式的数据是以单元格为单位显示,不象一般的写屏方式拷出来或是导出成文件不同列的内容粘在一块,这种方式便于数据导出来放在电子表格里进行加工.slis_t_fieldcat_alv是表内字段的整体,slis_fieldcat_alv是某一个字段的内容,将字段的内容写到slis_fieldcat_alv中,然后append到slis_t_fieldcat_alv,后者是整个列表的标题,在显示的时候用到。slis_fieldcat_alv中的部分字段及意义:fieldname是对应内表中哪个字段,必须。seltext_s/m/l是标题的名字,(一个即可)必须。col_pos表示所在位置,是第一列还是第二列。。intlen表示可以筛选的长度,如果不输得话有可能在筛选的时候显示不够长。hotsot='x'表示可以点它来显示次表。slis_t_event是event的整体可看作event的集合,感觉可以用来写表头。。slis_alv_event是某个event,需要将slis_alv_eventappend到slis_t_event.它可以包含图片和listheader等,也就是说listheader等是靠event来显示的。slis_t_listheader是listheader的集合,slis_listheader是某个listheader。将slis_listheader赋值后append到slis_t_listheader中。它是内表的表头slis_listheader包含:typ:H=header,S=Selection,A=action.key:是和s对应的,是那个的标题吧.info:可以是变量和赋值的。跟在key的标题后面,是个表达值函数:reuse_alv_events_get:将各个事件的名字写到slis_t_event的name中。这样,可以在后面,根据名字的不同,对不同的event付不同的form,来实现不同功能。fieldcat属性col_pos输出列tabname标签名称currency(5)货币单位quantity(3)计量单位qfieldname参考计量单位的字段名称roundROUND值exponent(3)流动表示的指数key(1)关键字段icon(1)作为图标输出symbol(1)输出作为符号checkbox(1)作为复选框输出just(1)对齐lzero(1)输出前导零no_sign(1)输出抑制符号no_zero(1)为输出隐藏零edit_mask为输出编辑掩码emphasize(4)带有颜色的高亮列fix_column(1)固定列do_sum(1)总计列值no_out(1)列没有输出tech(1)技术字段outputlen列的字符宽度decimals_out能控制小数点的位数这里面很多都是最后一个对后面的都有影响。。。比如你想固定左边的前3列那么在第一列的key='x'.然后在要在第四列处key=''.这样前3列固定了(只能在grid类型下使用?)AP:ALV的一些说明2007-12-0616:52APALVuserexit-ALV增强下载ALV为本地文件上一篇/下一篇2008-05-2311:08:05查看(2)/评论(0)/评分(0/0)每一个标准的用'REUSE_ALV_GRID_DISPLAY'实现的ALV,执行后都会跳转到一个标准的屏幕。我们可以去观察这个screen的GUIStatus—‘STANDARD_FULLSCREEN’。上面有不少的按钮,每个按钮都有一个功能代码。如‘&ALL’‘&SAL’这种。我的想法是,按这个按钮的时候激发我在程序中代码,实现ALV的userexit。做法(以下载按钮为例):Step1:DATA:it_event_testTYPEslis_t_event_exit,it_event_test_waTYPEslis_event_exit.it_event_test_wa-ucomm='%PC'.it_event_test_wa-before='X'.*it_event_test_wa-after='X'.APPENDit_event_test_waTOit_event_test.Step2:FORM.mycommandUSINGr_ucommLIKEsy-ucommrs_selfieldTYPEslis_selfield.IFr_ucomm='%PC'.此处添加增强的代码ENDIF.ENDFORM.Step3:CALLFUNCTION'REUSE_ALV_GRID_DISPLAY'EXPORTINGi_callback_program=g_repidis_layout=gs_layoutit_fieldcat=gt_fieldcat[]i_grid_title=l_texti_save='A'is_variant=gs_varianti_callback_user_command='MYCOMMAND'it_event_exit=it_event_testTABLESt_outtab=gt_data[]..SAP:SAPALV标准范例程序介绍上一篇/下一篇2008-05-2310:10:20查看(5)/评论(0)/评分(0/0)下面介绍几个学习ALV的SAP自带标准程序实例1.BALVSD06:Outputflights(simpleversion+save)这是该系列范例最简单的一个,建议以此入门。使用的FunctionModules:REUSE_ALV_LIST_DISPLAY:此FM非常重要,用来显示simpleinteractivelist。大家要熟练掌握该FM的输入参数名称和作用,对ALV编程很有帮助。输入参数:I_CALLBACK_PROGRAM:FM执行完之后回调的程序名I_STRUCTURE_NAME:internaltable的结构。栏位格式(fieldcatalog,含输出栏位的名称)都参考自DataDictionary的这个结构(注意:如果不是所有栏位都要输出显示,或要自行定义栏位格式而不用DataDictionary內的结构,则请参考其他的输入参数设定)I_SAVE:是否要储存variants,“A”:standardanduser-specificsavingTables:T_OUTTAB:要输出数据的internaltable2.BALVSD01:Simplelistflightmodel使用的FunctionModules:REUSE_ALV_VARIANT_DEFAULT_GETREUSE_ALV_EVENTS_GETREUSE_ALV_COMMENTARY_WRITEREUSE_ALV_VARIANT_F4REUSE_ALV_VARIANT_EXISTENCEREUSE_ALV_LIST_DISPLAY3.BALVSD11:Simplelistwithinteractionsandlayouts使用的FunctionModules:REUSE_ALV_FIELDCATALOG_MERGEREUSE_ALV_LIST_DISPLAY4.BALVHD01:Hierarchical-sequentiallistflightmodel显示分级层次式的interactivelist,也就是Header–Item两阶层的list使用的FunctionModules:REUSE_ALV_VARIANT_DEFAULT_GETREUSE_ALV_FIELDCATALOG_MERGEREUSE_ALV_EVENTS_GETREUSE_ALV_COMMENTARY_WRITEREUSE_ALV_VARIANT_F4REUSE_ALV_VARIANT_EXISTENCEREUSE_ALV_HIERSEQ_LIST_DISPLAY:该FM用来显示Hierarchical-sequentialinteractivelist,很重要5.BALVHD01_GROUP:Hierarchical-sequentiallistflightmodel使用的FunctionModules:REUSE_ALV_EVENTS_GETREUSE_ALV_HIERSEQ_LIST_DISPLAY在SE38环境下的程序名输入栏输入'DEMO*'后按F4,你可以查到SAP所有的DEMO示例程序,会学到很多ABAP功能的实现方法,输入'BCALV*'后按F4,你可以查到很多ALV示例程序每日函数讲解函数列表数名描述SD_VBAP_READ_WITH_VBELN根据销售订单读取表vbap中的信息EDIT_LINES把READ_TEXT返回的LINES中的行按照TDFORMAT=“*”重新组织VIEW_MAINTENANCE_CALL维护表视图函数名描述DY_GET_FOCUS获得屏幕焦点DY_GET_SET_FIELD_VALUE获得或者设置屏幕字段的值函数名描述F4IF_INT_TABLE_VALUE_REQUEST显示检索helpREAD_TEXT读取长文本CONVERSION_EXIT_CUNIT_OUTPUT单位转换SJIS_DBC_TO_SBC全角转半角SJIS_SBC_TO_DBC半角转换为全角CO_R0_CHECK_DECIMAL_POINT根据单位检查数据的小数位POSTAL_CODE_CHECK检查邮政编码函数名描述CONVERSION_EXIT_ALPHA_INPUT全数字则在前面补0CONVERSION_EXIT_ALPHA_INPUT和上面相反GET_JOB_RUNTIME_INFO获得job相关信息TERMINAL_ID_GET获得端末idDATE_CONVERT_TO_FACTORYDATE把输入日期转为工厂日历日期MESSAGE_TEXT_BUILD把消息转为文本函数名描述POPUP_TO_CONFIRM弹出确认窗口函数名描述CONVERSION_EXIT_MATN1_INPUT物料号码转换函数CONVERSION_EXIT_MATN1_OUTPUT同上相反CONVERT_TO_LOCAL_CURRENCY按照指定日期汇率转换金额为指定货币类型SSF_FUNCTION_MODULE_NAME根据form名取得对应的函数名(SmartForm)函数名描述DATE_CHECK_PLAUSIBILITY日期CHECKcl_gui_frontend_services=>gui_upload上传到服务器cl_gui_frontend_services=>gui_download下载到服本地SSF_FUNCTION_MODULE_NAMESMARTFORMS输出报表时,生成一个函数名称,然后CALL这个名称函数名描述POPUP_TO_DECIDE_LIST弹出供选择窗口1.function:SD_VBAP_READ_WITH_VBELN功能:根据销售订单读取表vbap中的信息参数:import:I_VBELN订单号(必输项)I_BYPASSING_BUFFER是否回避bufferI_REFRESH_BUFFER是否清空buffertables:ET_VBAPVB不清楚其意义ET_VBAPvbap表2.form:EDIT_LINES功能:把READ_TEXT返回的LINES中的行按照TDFORMAT=“*”重新组织原因:如果用Create_TEXT登录的长文本不存在该问题,如果是在前台业务登录的text,那么存到数据库的时候会在72位的地方换行,在lines这个表中的TDFORMAT设置为空,导致READ_TEXT返回的表中的行数也许不是你需要的行数。代码:FORMEDIT_LINESTABLESP_IT_LINESSTRUCTURETLINE.DATA:L_IT_LINESTYPESTANDARDTABLEOFTLINE,L_WA_LINESTYPETLINE,L_WA_LINE1TYPETLINE,L_LINETYPEI.DATA:L_INDEXTYPEI,L_ITYPEI.READTABLEP_IT_LINESTRANSPORTINGNOFIELDSWITHKEYTDFORMAT=SPACE.CHECKSY-SUBRC=0.L_LINE=LINES(P_IT_LINES).CHECKL_LINE>1.L_IT_LINES[]=P_IT_LINES[].CLEAR:P_IT_LINES[].L_INDEX=2.DO.CLEAR:L_WA_LINES.READTABLEL_IT_LINESINTOL_WA_LINESINDEXL_INDEX.IFSY-SUBRC<>0.L_I=L_INDEX-1.READTABLEL_IT_LINESINTOL_WA_LINESINDEXL_I.IFSY-SUBRC=0.APPENDL_WA_LINESTOP_IT_LINES.ENDIF.EXIT.ENDIF.IFL_WA_LINES-TDFORMAT='*'.L_I=L_INDEX-1.CLEARL_WA_LINE1.READTABLEL_IT_LINESINTOL_WA_LINE1INDEXL_I.APPENDL_WA_LINE1TOP_IT_LINES.L_INDEX=L_I+2.ELSE.L_I=L_INDEX-1.READTABLEL_IT_LINESINTOL_WA_LINE1INDEXL_I.CONCATENATEL_WA_LINE1-TDLINEL_WA_LINES-TDLINEINTOL_WA_LINE1-TDLINE.APPENDL_WA_LINE1TOP_IT_LINES.L_INDEX=L_INDEX+2.ENDIF.ENDDO.ENDFORM."S4110_EDIT_LINES3.function:VIEW_MAINTENANCE_CALL功能:维护表视图等Thefunctionmodulecallstheextendedtablemaintenance(Viewmaintenance).参数:import:ACTIONS=DisplayU=ChangeT=TransportCORR_NUMBER传送号(上面的action是t)SHOW_SelectION_POPUP是否弹出选择画面VIEW_NAME视图名NO_WARNING_FOR_CLIENTINDEP跨集团是否现实警告VARIANT_FOR_SelectION变式名CHECK_DDIC_MAINFLAG察看是否为可维护对象补充:VIEW_MAINTENANCE_CALL例子:CALLFUNCTION'VIEW_MAINTENANCE_CALL'EXPORTINGACTION='U'"更新SHOW_SelectION_POPUP='X'"显示选择画面VIEW_NAME='ZPPT000020'"表名NO_WARNING_FOR_CLIENTINDEP=''"不显示警告EXCEPTIONSCLIENT_REFERENCE=1FOREIGN_LOCK=2INVALID_ACTION=3NO_CLIENTINDEPENDENT_AUTH=4NO_DATABASE_FUNCTION=5NO_EDITOR_FUNCTION=6NO_SHOW_AUTH=7NO_TVDIR_ENTRY=8NO_UPD_AUTH=9ONLY_SHOW_ALLOWED=10SYSTEM_FAILURE=11UNKNOWN_FIELD_IN_DBA_SELLIST=12VIEW_NOT_FOUND=13MAINTENANCE_PROHIBITED=14OTHERS=15.效果:每天函数讲解系列2006.01.101.SYSTEM-CALL:DY_GET_FOCUS说明:获得屏幕焦点参数:ID'SSCREENNAM'FIELDCURRSUBSCREENID'SSCREENNBR'FIELDCURRSUBSCREENNOID'MSCREENNAM'FIELDCURRSCREENID'MSCREENNBR'FIELDCURRSCREENNOID'FIELDNAME'FIELDCURSOR_FIELDID'FIELDOFFS'FIELDDUMMYOFFSID'LINE'FIELDCURSOR_LINE.2.SYSTEM-CALL:DY_GET_SET_FIELD_VALUE说明:获得或者设置屏幕字段的值参数:ID'GET_SET'FIELD'S'"S:SetmodeG:GetmodeID'SSCREENNAM'FIELDSHSUBSCREENID'SSCREENNBR'FIELDSHSUBSCREENNOID'MSCREENNAM'FIELDSHSCREENID'MSCREENNBR'FIELDSHSCREENNOID'FIELDNAME'FIELDDYNP_EXPORTID'LINE'FIELDDYNP_EXSTEPLID'VALUE'FIELDDYNP_EXPVAL.例子:我做了一个检索help的exit,例如屏幕上有两个字段,我按了一个字段的检索help,那么根据这个字段就会取得相应的另外一个字段的值,然后把这个之设置到第二个字段。FUNCTIONZTEST_F4.*"*"*"Localinterface:*"TABLES*"SHLP_TABTYPESHLP_DESCT*"RECORD_TABSTRUCTURESEAHLPRES*"CHANGING*"REFERENCE(SHLP)TYPESHLP_DESCR*"REFERENCE(CALLCONTROL)LIKEDDSHF4CTRLSTRUCTUREDDSHF4CTRL*"*LocaldatadefinitionDATA:L_ZZOINO(3)TYPEC.DATA:L_ZZPOSID(10)TYPEC.DATA:DYNP_EXPORT(132),DYNP_EXPVAL(132).DATA:DYNP_EXSTEPLTYPEI,OK,DUMMYCHAR.DATA:DUMMYOFFSTYPEI.DATA:SHSUBSCREENLIKEHELP_INFO-DYNPPROG,SHSUBSCREENNOLIKEHELP_INFO-DYNPRO,SHSCREENLIKEHELP_INFO-DYNPPROG,SHSCREENNOLIKEHELP_INFO-DYNPRO.DATA:CURRSUBSCREENLIKEHELP_INFO-DYNPPROG,CURRSUBSCREENNOLIKEHELP_INFO-DYNPRO,CURRSCREENLIKEHELP_INFO-DYNPPROG,CURRSCREENNOLIKEHELP_INFO-DYNPRO.DATA:CURSOR_FIELDLIKEDYNPREAD-FIELDNAME,CURSOR_LINETYPEI.DATA:SETCURSOR_AVAILABLETYPEI.*GetrecordvaluefromrecordtableREADTABLERECORD_TABINDEX1.L_ZZPOSID=RECORD_TAB+0(10).IFSHLP_TAB-INTDESCR-HOTKEYISINITIAL.L_ZZOINO=RECORD_TAB+10(3).ENDIF.*Checkcommand,ifreturn,setscreenIFCALLCONTROL-STEP='RETTOP'.*Initializescreen,getscreenfocusCALL'DY_GET_FOCUS'ID'SSCREENNAM'FIELDCURRSUBSCREENID'SSCREENNBR'FIELDCURRSUBSCREENNOID'MSCREENNAM'FIELDCURRSCREENID'MSCREENNBR'FIELDCURRSCREENNOID'FIELDNAME'FIELDCURSOR_FIELDID'FIELDOFFS'FIELDDUMMYOFFSID'LINE'FIELDCURSOR_LINE.*SetscreenparameterGETPARAMETERID'RID'FIELDSHSUBSCREEN.SHSCREEN=SHSUBSCREEN.GETPARAMETERID'DYN'FIELDSHSUBSCREENNO.SHSCREENNO=SHSUBSCREENNO.DYNP_EXPORT='V_WA_DYNPRO_9000-ZZOINO'.DYNP_EXPVAL=L_ZZOINO.*SystemcallforsetscreenCALL'DY_GET_SET_FIELD_VALUE'ID'GET_SET'FIELD'S'"SetmodeID'SSCREENNAM'FIELDSHSUBSCREENID'SSCREENNBR'FIELDSHSUBSCREENNOID'MSCREENNAM'FIELDSHSCREENID'MSCREENNBR'FIELDSHSCREENNOID'FIELDNAME'FIELDDYNP_EXPORTID'LINE'FIELDDYNP_EXSTEPLID'VALUE'FIELDDYNP_EXPVAL.*SystemcallforsetscreenDYNP_EXPORT='V_WA_DYNPRO_9000-ZZPOSID'.DYNP_EXPVAL=L_ZZPOSID.CALL'DY_GET_SET_FIELD_VALUE'ID'GET_SET'FIELD'S'"SetmodeID'SSCREENNAM'FIELDSHSUBSCREENID'SSCREENNBR'FIELDSHSUBSCREENNOID'MSCREENNAM'FIELDSHSCREENID'MSCREENNBR'FIELDSHSCREENNOID'FIELDNAME'FIELDDYNP_EXPORTID'LINE'FIELDDYNP_EXSTEPLID'VALUE'FIELDDYNP_EXPVAL.ENDIF.ENDFUNCTION.每天函数讲解系列2006.01.11Function:F4IF_INT_TABLE_VALUE_REQUEST功能:显示检索help参数:Import:DDIC_STRUCTURE:返回table的结构:‘s’:VALUE_TAB的结构‘c’:VALUE_TAB只有一个字段RETFIELD:返回的字段名称必输DYNPPROG:当前程序DYNPNR:屏幕号DYNPROFIELD:屏幕上需要检索help的字段名称WINDOW_TITLE:检索help的标题VALUE_ORG:检索help屏幕显示属性:‘c’:cellbycell‘s’:structuredCALLBACK_PROGRAM:在f4之前调用的程序CALLBACK_FORM:在f4之前调用的程序里面的form名称,形式如下FORMTABLESRECORD_TABSTRUCTURESEAHLPRESCHANGINGSHLPTYPESHLP_DESCRCALLCONTROLLIKEDDSHF4CTRL.Export:USER_RESET:如果没有选择(按红x),返回‘x’Tables:VALUE_TAB:传进去的表必输FIELD_TAB:Fieldsofthehitlist(暂时没用)RETURN_TAB:返回值表,即如果选择了而没有写到屏幕上的值存在这个表中。DYNPFLD_MAPPING:把屏幕上需要help的字段可以放在这个表中。推测:如果屏幕上有多个字段关联,那么只作一个help的话,这个应该可以满足。例子:FORMA3000_SET_F4_FIELD_WERKSUSINGP_FIELD.TYPES:BEGINOFT_S_WERKS,WERKSTYPET001W-WERKS,"プラントNAME1TYPET001W-NAME1,"名称NAME2TYPET001W-NAME2,"名称2STRASTYPET001W-STRAS,"地名/番地-号orT01TYPET001W-ORT01,"市区町村名ENDOFT_S_WERKS.TYPEST_I_WERKSTYPESTANDARDTABLEOFT_S_WERKS.*这个就是value_tabDATAL_IT_WERKSTYPET_I_WERKS.*取数据SelectWERKS"プラントNAME1"名称NAME2"名称2STRAS"地名/番地-号orT01"市区町村名FROMT001WINTOCORRESPONDINGFIELDSOFTABLEL_IT_WERKS.*调用函数CALLFUNCTION'F4IF_INT_TABLE_VALUE_REQUEST'EXPORTINGRETFIELD='WERKS'“plantDYNPPROG=SY-REPID“程序名DYNPNR=SY-DYNNR“屏幕号DYNPROFIELD=P_FIELD“字段名称VALUE_ORG='S'“显示属性:cellbycellTABLESVALUE_TAB=L_IT_WERKSEXCEPTIONSPARAMETER_ERROR=1NO_VALUES_FOUND=2OTHERS=3.IFSY-SUBRC<>0.MESSAGEIDSY-MSGIDTYPESY-MSGTYNUMBERSY-MSGNOWITHSY-MSGV1SY-MSGV2SY-MSGV3SY-MSGV4.ENDIF.ENDFORM."A3000_SET_F4_FIELD_WERKS程序:REPORTZF4IF_INT_TABLE_VALUE_REQUEST.TYPES:BEGINOFT_S_WERKS,WERKSTYPET001W-WERKS,"NAME1TYPET001W-NAME1,"NAME2TYPET001W-NAME2,"2STRASTYPET001W-STRAS,"/-orT01TYPET001W-ORT01,"ENDOFT_S_WERKS.TYPEST_I_WERKSTYPESTANDARDTABLEOFT_S_WERKS.*value_tabDATAL_IT_WERKSTYPET_I_WERKS.PARAMETERS:P_WERKS(4)TYPEC.ATSelectION-SCREENONVALUE-REQUESTFORP_WERKS.*ATSelectION-SCREENONHELP-REQUESTFOR.*SelectWERKS"NAME1"NAME2"2STRAS"/-orT01"FROMT001WINTOCORRESPONDINGFIELDSOFTABLEL_IT_WERKS.*CALLFUNCTION'F4IF_INT_TABLE_VALUE_REQUEST'EXPORTINGRETFIELD='WERKS'"plantDYNPPROG=SY-REPID"DYNPNR=SY-DYNNR"DYNPROFIELD='P_WERKS'"VALUE_ORG='S'"cellbycellTABLESVALUE_TAB=L_IT_WERKSEXCEPTIONSPARAMETER_ERROR=1NO_VALUES_FOUND=2OTHERS=3.IFSY-SUBRC<>0.MESSAGEIDSY-MSGIDTYPESY-MSGTYNUMBERSY-MSGNOWITHSY-MSGV1SY-MSGV2SY-MSGV3SY-MSGV4.ENDIF.Function:READ_TEXT/Create_TEXT功能:读取长文本/创建长文本参数:Import:CLIENT:集团ID:文本ID(TTXID中定义)LANGUAGE:语言NAME:文本名字()OBJECT:文本对象(TTXOB中定义)Export:HEADER:文本的描述信息Tables:LINES:文本内容例子:读取销售订单头文本CALLFUNCTION'READ_TEXT'EXPORTINGID=‘Y001’LANGUAGE=SY-LANGUNAME=‘385’OBJECT=‘VBBK’TABLESLINES=L_IT_LINESEXCEPTIONSID=1LANGUAGE=2NAME=3NOT_FOUND=4OBJECT=5REFERENCE_CHECK=6WRONG_ACCESS_TO_ARCHIVE=7OTHERS=8.Function:CONVERSION_EXIT_CUNIT_OUTPUT功能:根据语言决定单位的显示参数:Import:INPUT:内部单位显示方式LANGUAGE:语言代码Export:LONG_TEXT:单位的长文本OUTPUT:外部单位显示方式SHORT_TEXT:单位的短文本例子:单位显示转换CALLFUNCTION'CONVERSION_EXIT_CUNIT_OUTPUT'EXPORTINGINPUT=‘ST’LANGUAGE=SY-LANGUIMPORTINGOUTPUT=L_OUTEXCEPTIONSUNIT_NOT_FOUND=1OTHERS=2.Function:SJIS_DBC_TO_SBC功能:全角转换为半角参数:Import:ALL:全部转换ALPHABET_UPPER:A-Z转换ALPHABET_LOWER:a-z转换NUMERIC:0-9转换Export:CONVERTED:转换的字符个数Changing:TEXT:转换结果Function:SJIS_SBC_TO_DBC功能:半角转换为全角参数:Import:ALL:全部转换ALPHABET_UPPER:A-Z转换ALPHABET_LOWER:a-z转换NUMERIC:0-9转换Export:CONVERTED:转换的字符个数Changing:TEXT:转换结果Function:CO_R0_CHECK_DECIMAL_POINT功能:根据单位检查数据的小数位参数:Import:I_QUANTITY:数量I_UNIT:单位例子:下面的例子会返回错误信息,以为单位ST是不能有小数位的。CALLFUNCTION'CO_R0_CHECK_DECIMAL_POINT'EXPORTINGI_QUANTITY=3.2I_UNIT=‘ST’EXCEPTIONSWRONG_DATA=1OTHERS=2.Function:POSTAL_CODE_CHECK功能:检查邮政编码参数:Import:COUNTRY:国家(T005)必输ONE_TIME_ACCOUNT:不明确POSTAL_CODE:邮政编码POSTAL_CODE_PO_BOX:没用过,以下为推测:如果输入则会检查,如果t005表中的XPLPF设置了,那么如果输入PO_BOX,这个选项就必须输入。PO_BOX:没用过REGION:区域Ex
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030年中国太湖蟹数据监测研究报告
- 2025至2030年中国中号吸通数据监测研究报告
- 山西省太原市多校2024-2025学年高一下学期开学考试化学试题
- Unit 1 My day 单元试卷含答案含听力原文无听力音频
- 2025年军队文职人员招聘之军队文职公共科目综合检测试卷B卷含答案
- 2024河北省中考英语真题【原卷版】
- 重大事件公关管理合同(2篇)
- 金子抵押合同(2篇)
- (一诊)2025年兰州市高三诊断考试历史试卷(含答案)
- 电子商务平台交易额及客户评价统计表
- 软胶囊成本结构分析-深度研究
- 2025年安徽国防科技职业学院单招职业技能考试题库必考题
- 客房专业知识培训课件
- 2025年中考百日誓师大会校长致辞稿(一)
- 2025重庆市建筑安全员A证考试题库
- 2025年湖南铁路科技职业技术学院单招职业适应性测试题库附答案
- 人教版初中数学八年级下册全册教案(2024年春季修订)
- 医院感染及其危害
- 2025年佳木斯职业学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 2025-2030年中国船舶配套自动化行业市场竞争格局及前景趋势预测报告
- GA/T 761-2024停车库(场)安全管理系统技术要求
评论
0/150
提交评论