Function

很多经常用到的函数 ,希望对大家有帮助.

 

Funtion:DDIF_FIELDINFO_GET
功能:获得字段的相关信息
参数:
Import:
TABNAME:数据库表的名字
FIELDNAME:无需指定,由LFIELDNAME代替了
LANGU: 语言设定,默认sy-langu
LFIELDNAME:指定关联字段
ALL_TYPES:是否指定所有类型
GROUP_NAMES:是否包含include的字段
UCLEN:没用过,应该是和unicode相关的
Export:
X030L_WA:返回表头的信息
DDOBJTYPE:表类型
‘TRANSP’   = transparent table
‘POOL’     = logical pooled table
‘CLUSTER’  = logical cluster table
‘VIEW’     = database or projection view
‘INTTAB’   = structure, help view, maintenance view or structure view
‘TPOOL’    = physical pooled table
‘TCLUSTER’ = physical cluster table
‘DTEL’     = data element
‘TTYP’     = table type
DFIES_WA:没用过
LINES_DESCR:没用过
Tables:
DFIES_TAB:字段列表
FIXED_VALUES:域的固定值

说明:该函数 可用来获得某个表或者结构或者视图等所有字段的相关信息,所以如果想用alv来维护某个表的时候,对设定field catalog有帮助。

Funtion:DDIF_NAMETAB_GET
功能:获得字段的相关信息(不包含text)
参数:
Import:
TABNAME:数据库表的名字
LFIELDNAME:指定关联字段
ALL_TYPES:是否指定所有类型
GROUP_NAMES:是否包含include的字段
UCLEN:没用过,应该是和unicode相关的
Export:
X030L_WA:返回表头的信息
DTELINFO_WA:data element的信息
TTYPINFO_WA:表类型的信息
DDOBJTYPE:表类型
‘TRANSP’   = transparent table
‘POOL’     = logical pooled table
‘CLUSTER’  = logical cluster table
‘VIEW’     = database or projection view
‘INTTAB’   = structure, help view, maintenance view or structure view
‘TPOOL’    = physical pooled table
‘TCLUSTER’ = physical cluster table
‘DTEL’     = data element
‘TTYP’     = table type
DFIES_WA:没用过
LINES_DESCR:没用过
Tables:
DFIES_TAB:字段列表
FIXED_VALUES:域的固定值

Funtion:DDIF_TABL_GET
功能:获得表的相关信息
参数:
Import:
NAME:数据库表的名字
STATE:状态
STATE = ‘A’ (read the active version)
STATE = ‘M’ (read the latest version)
LANGU: 语言设定,默认sy-langu
Export:
GOTSTATE:状态信息
DD02V_WA:表头
DD09L_WA:表表的技术信息
Tables:
DD03P_TAB:表的字段列表
DD05M_TAB:表的外键字段
DD08V_TAB:表的外键
DD12V_TAB:表索引
DD17V_TAB:表的索引字段
DD35V_TAB:检索help相关
DD36M_TAB:检索help相关

Funtion:POPUP_TO_DECIDE_LIST
功能:弹出供选择窗口,最多25个选项,选择可以是单选按钮也可以是复选按钮,可以设定最多选择的个数。
参数:
Import:
CURSORLINE  :默认光标所在行
MARK_FLAG:选择的标志,一般设为‘X’
MARK_MAX: 最大选择的选项个数
START_COL:起始行
START_ROW  :起始列,用来定位弹出窗口的位置
TEXTLINE1:文本行
TEXTLINE2:文本行
TEXTLINE3 :文本行
TITEL:弹出窗口的标题
DISPLAY_ONLY:仅显示
Export:
ANSWER:A:取消  空:做了选择
Tables:
T_SPOPLI:选择结果

例子:
REPORT  Z_BOBO                                  .
* 定义函数 需要的变量
DATA: BEGIN OF SPOPLIST OCCURS 15.
INCLUDE STRUCTURE SPOPLI.
DATA: END   OF SPOPLIST.
DATA: ANTWORT TYPE C.
* 添加选择参数
SPOPLIST-VAROPTION = ‘Creditor’.
APPEND SPOPLIST.
SPOPLIST-VAROPTION = ‘Material’.
APPEND SPOPLIST.
SPOPLIST-VAROPTION = ‘Account ‘.
SPOPLIST-SELFLAG   = ‘X’.

CALL FUNCTION ‘POPUP_TO_DECIDE_LIST’
EXPORTING  TITEL            = ‘Possible entra: Order’
TEXTLINE1        = ‘By which criteria’
TEXTLINE2        = ‘should orders’
TEXTLINE3        = ‘be selected?’
MARK_MAX         = 2
MARK_FLAG        = ‘X’
IMPORTING  ANSWER           = ANTWORT
TABLES     T_SPOPLI         = SPOPLIST
EXCEPTIONS TOO_MUCH_ANSWERS = 1
TOO_MUCH_MARKS   = 2.

IF SY-SUBRC = 2.
WRITE: ‘Too many answers chosen.’.
ENDIF.
* 取消
IF ANTWORT = ‘A’.
WRITE: ‘Popup canceled.’.
ELSE.
WRITE: ‘Options chosen:’.
LOOP AT SPOPLIST WHERE SELFLAG = ‘X’.
WRITE: / SPOPLIST-VAROPTION.
ENDLOOP.
ENDIF.

SYSTEM-CALL:DY_GET_FOCUS

说明:获得屏幕焦点

参数:

ID ‘SSCREENNAM’ FIELD CURRSUBSCREEN
ID ‘SSCREENNBR’ FIELD CURRSUBSCREENNO
ID ‘MSCREENNAM’ FIELD CURRSCREEN
ID ‘MSCREENNBR’ FIELD CURRSCREENNO
ID ‘FIELDNAME’ FIELD CURSOR_FIELD
ID ‘FIELDOFFS’ FIELD DUMMYOFFS
ID ‘LINE’ FIELD CURSOR_LINE.

SYSTEM-CALL:DY_GET_SET_FIELD_VALUE

说明:获得或者设置屏幕字段的值

参数:

ID ‘GET_SET’    FIELD ‘S’    “S:Set mode  G:Get mode
ID ‘SSCREENNAM’ FIELD SHSUBSCREEN
ID ‘SSCREENNBR’ FIELD SHSUBSCREENNO
ID ‘MSCREENNAM’ FIELD SHSCREEN
ID ‘MSCREENNBR’ FIELD SHSCREENNO
ID ‘FIELDNAME’ FIELD DYNP_EXPORT
ID ‘LINE’ FIELD DYNP_EXSTEPL
ID ‘VALUE’ FIELD DYNP_EXPVAL.

例子:我做了一个检索help的exit,例如屏幕上有两个字段,我按了一个字段的检索help,那么根据这个字段就会取得相应的另外一个字段的值,然后把这个之设置到第二个字段。

FUNCTION ZTEST_F4.
*”———————————————————————-
*”*”Local interface:
*”  TABLES
*”      SHLP_TAB TYPE  SHLP_DESCT
*”      RECORD_TAB STRUCTURE  SEAHLPRES
*”  CHANGING
*”     REFERENCE(SHLP) TYPE  SHLP_DESCR
*”     REFERENCE(CALLCONTROL) LIKE  DDSHF4CTRL STRUCTURE  DDSHF4CTRL
*”———————————————————————-
* Local data definition
DATA: L_ZZOINO(3) TYPE C.
DATA: L_ZZPOSID(10) TYPE C.
DATA: DYNP_EXPORT(132), DYNP_EXPVAL(132).
DATA: DYNP_EXSTEPL TYPE I, OK, DUMMYCHAR.
DATA: DUMMYOFFS TYPE I.
DATA: SHSUBSCREEN LIKE HELP_INFO-DYNPPROG,
SHSUBSCREENNO LIKE HELP_INFO-DYNPRO,
SHSCREEN LIKE HELP_INFO-DYNPPROG,
SHSCREENNO LIKE HELP_INFO-DYNPRO.
DATA: CURRSUBSCREEN LIKE HELP_INFO-DYNPPROG,
CURRSUBSCREENNO LIKE HELP_INFO-DYNPRO,
CURRSCREEN LIKE HELP_INFO-DYNPPROG,
CURRSCREENNO LIKE HELP_INFO-DYNPRO.
DATA: CURSOR_FIELD LIKE DYNPREAD-FIELDNAME, CURSOR_LINE TYPE I.
DATA: SETCURSOR_AVAILABLE TYPE I.
* Get record value from record table
READ TABLE RECORD_TAB INDEX 1.
L_ZZPOSID = RECORD_TAB+0(10).
IF SHLP_TAB-INTDESCR-HOTKEY IS INITIAL.
L_ZZOINO = RECORD_TAB+10(3).
ENDIF.
* Check command, if return, set screen
IF CALLCONTROL-STEP = ‘RETTOP’.
*   Initialize screen, get screen focus
CALL ‘DY_GET_FOCUS’
ID ‘SSCREENNAM’ FIELD CURRSUBSCREEN
ID ‘SSCREENNBR’ FIELD CURRSUBSCREENNO
ID ‘MSCREENNAM’ FIELD CURRSCREEN
ID ‘MSCREENNBR’ FIELD CURRSCREENNO
ID ‘FIELDNAME’ FIELD CURSOR_FIELD
ID ‘FIELDOFFS’ FIELD DUMMYOFFS
ID ‘LINE’ FIELD CURSOR_LINE.
*   Set screen parameter
GET PARAMETER ID ‘RID’ FIELD SHSUBSCREEN .
SHSCREEN = SHSUBSCREEN.
GET PARAMETER ID ‘DYN’ FIELD SHSUBSCREENNO.
SHSCREENNO = SHSUBSCREENNO.
DYNP_EXPORT   =’V_WA_DYNPRO_9000-ZZOINO’.
DYNP_EXPVAL   = L_ZZOINO.
*   System call for set screen
CALL ‘DY_GET_SET_FIELD_VALUE’
ID ‘GET_SET’    FIELD ‘S’    “Set mode
ID ‘SSCREENNAM’ FIELD SHSUBSCREEN
ID ‘SSCREENNBR’ FIELD SHSUBSCREENNO
ID ‘MSCREENNAM’ FIELD SHSCREEN
ID ‘MSCREENNBR’ FIELD SHSCREENNO
ID ‘FIELDNAME’ FIELD DYNP_EXPORT
ID ‘LINE’ FIELD DYNP_EXSTEPL
ID ‘VALUE’ FIELD DYNP_EXPVAL.
*   System call for set screen
DYNP_EXPORT   =’V_WA_DYNPRO_9000-ZZPOSID’.
DYNP_EXPVAL   = L_ZZPOSID.
CALL ‘DY_GET_SET_FIELD_VALUE’
ID ‘GET_SET’    FIELD ‘S’    “Set mode
ID ‘SSCREENNAM’ FIELD SHSUBSCREEN
ID ‘SSCREENNBR’ FIELD SHSUBSCREENNO
ID ‘MSCREENNAM’ FIELD SHSCREEN
ID ‘MSCREENNBR’ FIELD SHSCREENNO
ID ‘FIELDNAME’ FIELD DYNP_EXPORT
ID ‘LINE’ FIELD DYNP_EXSTEPL
ID ‘VALUE’ FIELD DYNP_EXPVAL.
ENDIF.
ENDFUNCTION.

Function: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’:cell by cell
‘s’:structured
CALLBACK_PROGRAM:在f4之前调用的程序
CALLBACK_FORM:在f4之前调用的程序里面的form名称,形式如下
FORM <NAME> TABLES RECORD_TAB STRUCTURE SEAHLPRES
CHANGING SHLP TYPE SHLP_DESCR
CALLCONTROL LIKE DDSHF4CTRL.
Export:
USER_RESET:如果没有选择(按红x),返回‘x’
Tables:
VALUE_TAB:传进去的表———–必输
FIELD_TAB:Fields of the hit list(暂时没用)
RETURN_TAB:返回值表,即如果选择了而没有写到屏幕上的值存在这个表中。
DYNPFLD_MAPPING:把屏幕上需要help的字段可以放在这个表中。
推测:如果屏幕上有多个字段关联,那么只作一个help的话,这个应该可以满足。

例子:
FORM A3000_SET_F4_FIELD_WERKS USING P_FIELD.
TYPES:
BEGIN OF T_S_WERKS,
WERKS TYPE T001W-WERKS,   “プラント
NAME1 TYPE T001W-NAME1,   “名称
NAME2 TYPE T001W-NAME2,   “名称2
STRAS TYPE T001W-STRAS,   “地名/番地-号
ORT01 TYPE T001W-ORT01,   “市区町村名
END OF T_S_WERKS.
TYPES  T_I_WERKS TYPE STANDARD TABLE OF T_S_WERKS.
*这个就是value_tab
DATA   L_IT_WERKS TYPE T_I_WERKS.
*取数据
SELECT WERKS    “プラント
NAME1    “名称
NAME2    “名称 2
STRAS    “地名/番地-号
ORT01    “市区町村名
FROM T001W
INTO CORRESPONDING FIELDS OF TABLE L_IT_WERKS.
*调用函数
CALL FUNCTION ‘F4IF_INT_TABLE_VALUE_REQUEST’
EXPORTING
RETFIELD                   = ‘WERKS’    “plant
DYNPPROG                 = SY-REPID   “程序名
DYNPNR                      = SY-DYNNR   “屏幕号
DYNPROFIELD             = P_FIELD    “字段名称
VALUE_ORG                = ‘S’        “显示属性:cell by cell
TABLES
VALUE_TAB                = L_IT_WERKS
EXCEPTIONS
PARAMETER_ERROR  = 1
NO_VALUES_FOUND    = 2
OTHERS                     = 3

IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM.                    ” A3000_SET_F4_FIELD_WERKS

Function: READ_TEXT/CREATE_TEXT
功能:读取长文本/创建长文本
参数:
Import:
CLIENT:集团
ID:文本ID(TTXID中定义)
LANGUAGE:语言
NAME:文本名字()
OBJECT:文本对象(TTXOB中定义)
Export:
HEADER:文本的描述信息
Tables:
LINES:文本内容

例子:读取销售订单头文本
CALL FUNCTION ‘READ_TEXT’
EXPORTING
ID                          = ‘Y001’
LANGUAGE              = SY-LANGU
NAME                     = ‘385’
OBJECT                  = ‘VBBK’
TABLES
LINES                     = L_IT_LINES
EXCEPTIONS
ID                                            = 1
LANGUAGE                                = 2
NAME                                       = 3
NOT_FOUND                              = 4
OBJECT                                     = 5
REFERENCE_CHECK                   = 6
WRONG_ACCESS_TO_ARCHIVE = 7
OTHERS                                    = 8.

Function: CONVERSION_EXIT_CUNIT_OUTPUT
功能:根据语言决定单位的显示
参数:
Import:
INPUT:内部单位显示方式
LANGUAGE:语言代码
Export:
LONG_TEXT:单位的长文本
OUTPUT:外部单位显示方式
SHORT_TEXT:单位的短文本

例子:单位显示转换
CALL FUNCTION ‘CONVERSION_EXIT_CUNIT_OUTPUT’
EXPORTING
INPUT                   = ‘ST’
LANGUAGE            = SY-LANGU
IMPORTING
OUTPUT                = L_OUT
EXCEPTIONS
UNIT_NOT_FOUND = 1
OTHERS                = 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是不能有小数位的。
CALL FUNCTION ‘CO_R0_CHECK_DECIMAL_POINT’
EXPORTING
I_QUANTITY       = 3.2
I_UNIT               =‘ST’
EXCEPTIONS
WRONG_DATA     = 1
OTHERS               = 2.

Function: POSTAL_CODE_CHECK
功能:检查邮政编码
参数:
Import:
COUNTRY:国家(T005)———-必输
ONE_TIME_ACCOUNT:不明确
POSTAL_CODE:邮政编码
POSTAL_CODE_PO_BOX:没用过,以下为推测:如果输入则会检查,如果t005表中的XPLPF设置了,那么如果输入PO_BOX,这个选项就必须输入。
PO_BOX:没用过
REGION:区域
Export:
POSTAL_CODE:邮编
EV_POSTAL_CODE:邮编的格式
EV_POSTAL_CODE_PO_BOX:没用过

Funtion:CONVERSION_EXIT_ALPHA_INPUT
功能:全数字则在前面补0
参数:
Import:
INPUT:输入的字符串
Export:
OUTPUT:输出的字符串

Funtion:CONVERSION_EXIT_ALPHA_OUTPUT
功能:和上面相反

Funtion:GET_JOB_RUNTIME_INFO
功能:获得job相关信息
参数:
Export:
EVENTID:后台处理的事件id
EVENTPARM:后台事件的参数(例如,job id,job名字)
TERNAL_PROGRAM_ACTIVE:没用过
JOBCOUNT:job id
JOBNAME:job 名称

Funtion:TERMINAL_ID_GET
功能:获得端末id
参数:
Import:
USERNAME:用户名
Export:
TERMINAL:terminal id

Funtion:DATE_CONVERT_TO_FACTORYDATE
功能:把输入日期转为工厂日历日期
参数:
Import:
CORRECT_OPTION:表示工作日计算方式的标记
DATE:必须转化为工厂日历日期的日期
FACTORY_CALENDAR_ID:工厂日历 ID
Export:
DATE:必须转化为工厂日历日期的日期
FACTORYDATE:指定日历中的工作日数
WORKINGDAY_INDICATOR:表示某日期是否为工作日的标志

例子:
DATA: DATE1        LIKE SCAL-DATE,
DATE2        LIKE SCAL-DATE,
CORRECTION   LIKE SCAL-INDICATOR,
CALENDAR     LIKE SCAL-FCALID,
FACTORYDATE  LIKE SCAL-FACDATE,
WORKDAY      LIKE SCAL-INDICATOR.
CALL FUNCTION ‘DATE_CONVERT_TO_FACTORYDATE’
EXPORTING  DATE                 = DATE1
CORRECT_OPTION       = CORRECTION
FACTORY_CALENDAR_ID  = CALENDAR
IMPORTING  DATE                 = DATE2
FACTORYDATE          = FACTORYDATE
WORKINGDAY_INDICATOR = WORKDAY
EXCEPTIONS CORRECT_OPTION_INVALID     = 1
DATE_AFTER_RANGE           = 2
DATE_BEFORE_RANGE          = 3
DATE_INVALID               = 4
FACTORY_CALENDAR_NOT_FOUND = 5.

Funtion:MESSAGE_TEXT_BUILD
功能:把消息转为文本
参数:
Import:
MSGID:消息id
MSGNR:消息号
MSGV1:参数1
MSGV2:参数2
MSGV3:参数3
MSGV4:参数4
Export:
MESSAGE_TEXT_OUTPUT:输出的字符串
说明:可以用write <message> to <text>代替

Function: POPUP_TO_CONFIRM
Group:SPO1
功能:弹出确认窗口
参数:
Import:
TITLEBAR:弹出窗口的标题,最多40位
TEXT_QUESTION:问题,最长80位,多出来的截断
TEXT_BUTTON_1:第一按钮的text,最长8位
ICON_BUTTON_1:第一按钮显示的icon
TEXT_BUTTON_2:第二按钮的text,最长8位
ICON_BUTTON_2:第二按钮显示的icon
DEFAULT_BUTTON:默认的按钮
DISPLAY_CANCEL_BUTTON:是否显示取消
POPUP_TYPE:弹出的类型: 决定显示的icon
ICON_MESSAGE_QUESTION :问题
ICON_MESSAGE_INFORMATION:信息
ICON_MESSAGE_WARNING:警告
ICON_MESSAGE_ERROR:错误
ICON_MESSAGE_CRITICAL:冲突
START_COLUMN:弹出位置:列
START_ROW:弹出位置:行
IV_QUICKINFO_BUTTON_1:第一按钮的显示信息(鼠标放上去后看到的)
IV_QUICKINFO_BUTTON_2:第二按钮的显示信息(鼠标放上去后看到的)
Export:
ANSWER:返回点击的按钮
’1′ :第一个按钮
’2′ :第二个按钮
‘A’ :取消按钮

Function: CS_BOM_EXPL_MAT_V2
功能:BOM展开
参数:
Import:
CAPID:application id
DATUV:有效开始日
EMENG:数量
MTNRV:物料
MEHRS:多阶层bom展开
WERKS:工厂
STLAN:bom用途
Tables:
STB:展开明细
说明:一般定义上面几个参数就可以了,鉴于该函数 参数太多,就不一一说明了

Function: CLOI_PUT_SIGN_IN_FRONT
功能:将负号提前
参数:
Changing:
VALUE:需要负号提前的变量

Function: EPS_GET_DIRECTORY_LISTING
功能:获得某路径下的文件列表
参数:
Import:
DIR_NAME:需要 查找 的路径
FILE_MASK:没用过
Export:
DIR_NAME:文件路径
FILE_COUNTER:文件个数
ERROR_COUNTER:错误的个数
Tables:
DIR_LIST:文件列表
说明:这个函数 可以获得服务器某个路径下的所有文件,对open dataset for read file中file名字的获得有帮助。

Function: BAPI_COMPANYCODE_GET_PERIOD
功能:获得公司的会计年度以及过账日期
参数:
Import:
COMPANYCODEID:公司代码
POSTING_DATE:posting date
Export:
FISCAL_YEAR:会计年度
FISCAL_PERIOD:财务期间
RETURN:返回值
说明:该函数 可用来检查会计期间。

Function: MARA_SINGLE_READ
功能:读取物料信息
参数:
Import:
KZRFB:Indicator: Refresh buffer entry
MAXTZ:Max. no. of entries in buffer(这两个参数应该和性能优化相关)
MATNR:物料号
SPERRMODUS:Lock mode (none, shared, excl.)
STD_SPERRMODUS:Standard lock mode (if different)(锁相关)
OUTPUT_NO_MESSAGE:是否输出消息
Export:
WMARA:返回的物料信息
说明:该函数 可用于性能优化,例如无法避免在loop中有sql的情况可以用该函数 取代sql。
对mara的其它操作参考function group:MG21

Function: KNA1_SINGLE_READ
功能:读取customer表信息
参数:
Import:
KZRFB:Indicator: Refresh buffer entry
KNA1_KUNNR:customer code
Export:
WKNA1:返回的信息
说明:还有很多表的读取参考function group:MG41

Function: ADDR_GET_COMPLETE_ALL_TYPES
功能:获得地址的相关信息
参数:
Import:
ADDRNUMBER:address number
PERSNUMBER:个人信息
ADDRESS_OBJECT_TYPE:类型 1:组织 2:个人 3:客户
Export:
ADDR1_COMPLETE:地址1
ADDR2_COMPLETE:地址2
ADDR3_COMPLETE:地址3
ADDR1_COMPLETE_BAPI:地址1
ADDR2_COMPLETE_BAPI:地址2
ADDR3_COMPLETE_BAPI:地址3(以上三个bapi用)

Function: READ_VBFA
功能:取得document flow(省得select了)
参数:
Import:
I_VBELV:Preceding sales and distribution document
I_POSNV:Preceding item of an SD document
I_VBTYP_V:Document category of preceding SD document
I_VBTYP_N:Document category of subsequent document
I_FKTYP:Billing category
I_BYPASSING_BUFFER:是否用buffer
I_REFRESH_BUFFER:删除buffer?
Tables:
E_VBFA:凭证流的表
说明:可以通过by passing buffer来优化性能

Function: SD_VBAK_SINGLE_READ
功能:读取销售订单表头信息
参数:
Import:
I_VBELN:销售订单
I_BYPASSING_BUFFER:是否用buffer
I_REFRESH_BUFFER:删除buffer?
Export:
E_VBAK:返回表头信息
说明:读相关sd表的函数 请参考function group:V45I

Function: LIKP_READ
功能:Delivery Header Data
参数:
Import:
I_VBELN:Delivery
LINE_EXIST:if ‘x’ check only if line exsists
Export:
O_ANSWR:send out ‘x’ for line exsists in table
Tables:
E_LIKP:SD Document: Delivery Header Data
说明:有关读取delivery的信息请参考function group:LMGT

Function: CREATE_SAP_SHORTCUT
功能:创建快捷方式
参数:
Import:
SC_COMMAND:指定的tcode
SC_TITLE:快捷方式名字:例如:se38
SC_TYPE:快捷方式类型:有三种:’report’,’ transaction’,’ system command’
NO_DIALOG:是否弹出窗口
说明:具体没什么用,做着玩玩。

Function: SAPGUI_PROGRESS_INDICATOR
功能:显示进度
参数:
Import:
PERCENTAGE:进度的百分数,>0,<100.
TEXT:文本
说明:在运行时间很长的程序中可以选择使用,这样保证了程序不会中止。当然也可以在rz10里面设置程序运行时间,不过比较麻烦。

Funtion:K_GROUP_SELECT
功能:利润中心组的检索help
参数:
Import:
BUTTONS:按钮,决定是否可以选择group类型
CLASS  :cost center class
CRUSER:创建人
FIELD_NAME:字段名称:此项为必输项
SEARCHFLD:还没用过
SEARCHFLD_INPUT:成本控制范围是否可以输入(参照图1)
SEARCHFLD_REQUIRED:成本控制范围是否必输,如果设置为不可输入,
那么这个参数无效(参考图2)
SET:利润中心组的开头字母
START_COLUMN:弹出窗口的位置
START_ROW  :弹出窗口的位置
TABLE:表或者结构的名称
Export:
SET_NAME:取得帮助字段的值
例子
*&———————————————————————
*& Report  Z_BOBO_20060228                                        *
*&———————————————————————*
*& 弹出窗口,利润中心组的帮助,这样就省得f4_value_request了  *                                                                          *
*&———————————————————————*

REPORT  Z_BOBO_20060228                         .
DATA : W_PRCGC1(15)     TYPE C.
DATA : W_SETNAME(15)    TYPE C.
SELECT-OPTIONS : S_PRCGC  FOR  W_PRCGC1.     ” 利润中心组
AT SELECTION-SCREEN.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_PRCGC-LOW.
CALL FUNCTION ‘K_GROUP_SELECT’
EXPORTING
BUTTONS              = ‘X’
CLASS                  = ’0106′
FIELD_NAME          = ‘RPRCTR’
SEARCHFLD_INPUT  = ‘X’
SEARCHFLD_REQUIRED = ‘X’
SET                        = ‘@’
TABLE                     = ‘CCSS’
IMPORTING
SET_NAME                = W_SETNAME
EXCEPTIONS
NO_SET_PICKED      = 1
OTHERS                = 2.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ELSE.
S_PRCGC-LOW  = W_SETNAME.
ENDIF.
START-OF-SELECTION.
WRITE: ‘TEST BOBO’.

function:SD_VBAP_READ_WITH_VBELN
功能:根据销售订单读取表vbap中的信息
参数:
import:I_VBELN                          订单号(必输项)
I_BYPASSING_BUFFER     是否回避buffer
I_REFRESH_BUFFER         是否清空buffer
tables:ET_VBAPVB                        不清楚其意义
ET_VBAP                            vbap表

form:EDIT_LINES
功能:把READ_TEXT返回的LINES中的行按照TDFORMAT=“*”重新组织
原因:如果用CREATE_TEXT登录的长文本不存在该问题,如果是在前台业务登录的text,那么存到数据库的时候会在72位的地方换行,在lines这个表中的TDFORMAT设置为空,导致READ_TEXT返回的表中的行数也许不是你需要的行数。
代码:
FORM EDIT_LINES TABLES P_IT_LINES STRUCTURE TLINE.
DATA:
L_IT_LINES TYPE STANDARD TABLE OF TLINE,
L_WA_LINES TYPE TLINE,
L_WA_LINE1 TYPE TLINE,
L_LINE TYPE I.
DATA:
L_INDEX TYPE I,
L_I     TYPE I.
READ TABLE P_IT_LINES TRANSPORTING NO FIELDS
WITH KEY TDFORMAT = SPACE.
CHECK SY-SUBRC = 0.
L_LINE = LINES( P_IT_LINES ).
CHECK L_LINE > 1.

L_IT_LINES[] = P_IT_LINES[].
CLEAR: P_IT_LINES[].

L_INDEX = 2.
DO.
CLEAR: L_WA_LINES.
READ TABLE L_IT_LINES INTO L_WA_LINES INDEX L_INDEX.
IF SY-SUBRC <> 0.
L_I = L_INDEX – 1.
READ TABLE L_IT_LINES INTO L_WA_LINES INDEX L_I.
IF SY-SUBRC = 0 .
APPEND L_WA_LINES TO P_IT_LINES.
ENDIF.
EXIT.
ENDIF.
IF L_WA_LINES-TDFORMAT = ‘*’.
L_I = L_INDEX – 1.
CLEAR L_WA_LINE1.
READ TABLE L_IT_LINES INTO L_WA_LINE1 INDEX L_I.
APPEND L_WA_LINE1 TO P_IT_LINES.
L_INDEX = L_I + 2.
ELSE.
L_I = L_INDEX – 1.
READ TABLE L_IT_LINES INTO L_WA_LINE1 INDEX L_I.
CONCATENATE L_WA_LINE1-TDLINE L_WA_LINES-TDLINE
INTO L_WA_LINE1-TDLINE.
APPEND L_WA_LINE1 TO P_IT_LINES.
L_INDEX = L_INDEX + 2.
ENDIF.
ENDDO.
ENDFORM.                    ” S4110_EDIT_LINES

function:VIEW_MAINTENANCE_CALL
功能:维护表视图等
The function module calls the extended table maintenance (View maintenance).
参数:
import:ACTION       S = Display U = Change T = Transport
CORR_NUMBER  传送号(上面的action是t)
SHOW_SELECTION_POPUP   是否弹出选择画面
VIEW_NAME    视图名
NO_WARNING_FOR_CLIENTINDEP  跨集团是否现实警告
VARIANT_FOR_SELECTION   变式名
CHECK_DDIC_MAINFLAG     察看是否为可维护对象

你可能感兴趣的:(function,calendar,table,buffer,import,structure)