函数讲解系列.docx
《函数讲解系列.docx》由会员分享,可在线阅读,更多相关《函数讲解系列.docx(37页珍藏版)》请在冰豆网上搜索。
函数讲解系列
每日函数讲解---函数列表
2006.01.09:
函数名 描述
SD_VBAP_READ_WITH_VBELN 根据销售订单读取表vbap中的信息
EDIT_LINES 把READ_TEXT返回的LINES中的行按照TDFORMAT=“*”重新组织
VIEW_MAINTENANCE_CALL 维护表视图
2006.01.10:
函数名 描述
DY_GET_FOCUS 获得屏幕焦点
DY_GET_SET_FIELD_VALUE 获得或者设置屏幕字段的值
2006.01.11:
函数名 描述
F4IF_INT_TABLE_VALUE_REQUEST 显示检索help
READ_TEXT 读取长文本
CONVERSION_EXIT_CUNIT_OUTPUT 单位转换
SJIS_DBC_TO_SBC 全角转半角
SJIS_SBC_TO_DBC 半角转换为全角
CO_R0_CHECK_DECIMAL_POINT 根据单位检查数据的小数位
POSTAL_CODE_CHECK 检查邮政编码
2006.01.12:
函数名 描述
CONVERSION_EXIT_ALPHA_INPUT 全数字则在前面补0
CONVERSION_EXIT_ALPHA_INPUT 和上面相反
GET_JOB_RUNTIME_INFO 获得job相关信息
TERMINAL_ID_GET 获得端末id
DATE_CONVERT_TO_FACTORYDATE 把输入日期转为工厂日历日期
MESSAGE_TEXT_BUILD 把消息转为文本
2006.01.16:
函数名 描述
POPUP_TO_CONFIRM 弹出确认窗口
2006.01.20:
函数名 描述
CONVERSION_EXIT_MATN1_INPUT 物料号码转换函数
CONVERSION_EXIT_MATN1_OUTPUT 同上相反
CONVERT_TO_LOCAL_CURRENCY 按照指定日期汇率转换金额为指定货币类型
SSF_FUNCTION_MODULE_NAME 根据form名取得对应的函数名(SmartForm)
2006.01.23:
函数名 描述
DATE_CHECK_PLAUSIBILITY 日期CHECK
cl_gui_frontend_services=>gui_upload 上传到服务器
cl_gui_frontend_services=>gui_download 下载到服本地
SSF_FUNCTION_MODULE_NAME SMARTFORMS输出报表时,生成一个函数名称,然后CALL这个名称
2006.02.11:
函数名 描述
POPUP_TO_DECIDE_LIST 弹出供选择窗口
每天函数讲解系列----2006.01.09
1.function:
SD_VBAP_READ_WITH_VBELN
功能:
根据销售订单读取表vbap中的信息
参数:
import:
I_VBELN 订单号(必输项)
I_BYPASSING_BUFFER 是否回避buffer
I_REFRESH_BUFFER 是否清空buffer
tables:
ET_VBAPVB 不清楚其意义
ET_VBAP vbap表
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_I TYPEI.
READTABLEP_IT_LINESTRANSPORTINGNOFIELDS
WITHKEYTDFORMAT=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-TDLINE
INTOL_WA_LINE1-TDLINE.
APPENDL_WA_LINE1TOP_IT_LINES.
L_INDEX=L_INDEX+2.
ENDIF.
ENDDO.
ENDFORM. "S4110_EDIT_LINES
3.function:
VIEW_MAINTENANCE_CALL
功能:
维护表视图等
Thefunctionmodulecallstheextendedtablemaintenance(Viewmaintenance).
参数:
import:
ACTION S=DisplayU=ChangeT=Transport
CORR_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'
EXPORTING
ACTION ='U' "更新
SHOW_SELECTION_POPUP ='X' "显示选择画面
VIEW_NAME ='ZPPT000020'"表名
NO_WARNING_FOR_CLIENTINDEP ='' "不显示警告
EXCEPTIONS
CLIENT_REFERENCE =1
FOREIGN_LOCK =2
INVALID_ACTION =3
NO_CLIENTINDEPENDENT_AUTH =4
NO_DATABASE_FUNCTION =5
NO_EDITOR_FUNCTION =6
NO_SHOW_AUTH =7
NO_TVDIR_ENTRY =8
NO_UPD_AUTH =9
ONLY_SHOW_ALLOWED =10
SYSTEM_FAILURE =11
UNKNOWN_FIELD_IN_DBA_SELLIST=12
VIEW_NOT_FOUND =13
MAINTENANCE_PROHIBITED =14
OTHERS =15.
效果:
每天函数讲解系列----2006.01.10
1.SYSTEM-CALL:
DY_GET_FOCUS
说明:
获得屏幕焦点
参数:
ID'SSCREENNAM'FIELDCURRSUBSCREEN
ID'SSCREENNBR'FIELDCURRSUBSCREENNO
ID'MSCREENNAM'FIELDCURRSCREEN
ID'MSCREENNBR'FIELDCURRSCREENNO
ID'FIELDNAME'FIELDCURSOR_FIELD
ID'FIELDOFFS'FIELDDUMMYOFFS
ID'LINE'FIELDCURSOR_LINE.
2.SYSTEM-CALL:
DY_GET_SET_FIELD_VALUE
说明:
获得或者设置屏幕字段的值
参数:
ID'GET_SET' FIELD'S' "S:
Setmode G:
Getmode
ID'SSCREENNAM'FIELDSHSUBSCREEN
ID'SSCREENNBR'FIELDSHSUBSCREENNO
ID'MSCREENNAM'FIELDSHSCREEN
ID'MSCREENNBR'FIELDSHSCREENNO
ID'FIELDNAME'FIELDDYNP_EXPORT
ID'LINE'FIELDDYNP_EXSTEPL
ID'VALUE'FIELDDYNP_EXPVAL.
例子:
我做了一个检索help的exit,例如屏幕上有两个字段,我按了一个字段的检索help,那么根据这个字段就会取得相应的另外一个字段的值,然后把这个之设置到第二个字段。
FUNCTIONZTEST_F4.
*"----------------------------------------------------------------------
*"*"Localinterface:
*" TABLES
*" SHLP_TABTYPE SHLP_DESCT
*" RECORD_TABSTRUCTURE SEAHLPRES
*" CHANGING
*" REFERENCE(SHLP)TYPE SHLP_DESCR
*" REFERENCE(CALLCONTROL)LIKE DDSHF4CTRLSTRUCTURE DDSHF4CTRL
*"----------------------------------------------------------------------
*Localdatadefinition
DATA:
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.
*Getrecordvaluefromrecordtable
READTABLERECORD_TABINDEX1.
L_ZZPOSID=RECORD_TAB+0(10).
IFSHLP_TAB-INTDESCR-HOTKEYISINITIAL.
L_ZZOINO=RECORD_TAB+10(3).
ENDIF.
*Checkcommand,ifreturn,setscreen
IFCALLCONTROL-STEP='RETTOP'.
* Initializescreen,getscreenfocus
CALL'DY_GET_FOCUS'
ID'SSCREENNAM'FIELDCURRSUBSCREEN
ID'SSCREENNBR'FIELDCURRSUBSCREENNO
ID'MSCREENNAM'FIELDCURRSCREEN
ID'MSCREENNBR'FIELDCURRSCREENNO
ID'FIELDNAME'FIELDCURSOR_FIELD
ID'FIELDOFFS'FIELDDUMMYOFFS
ID'LINE'FIELDCURSOR_LINE.
* Setscreenparameter
GETPARAMETERID'RID'FIELDSHSUBSCREEN.
SHSCREEN=SHSUBSCREEN.
GETPARAMETERID'DYN'FIELDSHSUBSCREENNO.
SHSCREENNO=SHSUBSCREENNO.
DYNP_EXPORT ='V_WA_DYNPRO_9000-ZZOINO'.
DYNP_EXPVAL =L_ZZOINO.
* Systemcallforsetscreen
CALL'DY_GET_SET_FIELD_VALUE'
ID'GET_SET' FIELD'S' "Setmode
ID'SSCREENNAM'FIELDSHSUBSCREEN
ID'SSCREENNBR'FIELDSHSUBSCREENNO
ID'MSCREENNAM'FIELDSHSCREEN
ID'MSCREENNBR'FIELDSHSCREENNO
ID'FIELDNAME'FIELDDYNP_EXPORT
ID'LINE'FIELDDYNP_EXSTEPL
ID'VALUE'FIELDDYNP_EXPVAL.
* Systemcallforsetscreen
DYNP_EXPORT ='V_WA_DYNPRO_9000-ZZPOSID'.
DYNP_EXPVAL =L_ZZPOSID.
CALL'DY_GET_SET_FIELD_VALUE'
ID'GET_SET' FIELD'S' "Setmode
ID'SSCREENNAM'FIELDSHSUBSCREEN
ID'SSCREENNBR'FIELDSHSUBSCREENNO
ID'MSCREENNAM'FIELDSHSCREEN
ID'MSCREENNBR'FIELDSHSCREENNO
ID'FIELDNAME'FIELDDYNP_EXPORT
ID'LINE'FIELDDYNP_EXSTEPL
ID'VALUE'FIELDDYNP_EXPVAL.
ENDIF.
ENDFUNCTION.
每天函数讲解系列----2006.01.11
Function:
F4IF_INT_TABLE_VALUE_REQUEST
功能:
显示检