zoukankan      html  css  js  c++  java
  • [转]整理的函数

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

    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     察看是否为可维护对象
    其他的参数暂时没有用到,有用到的朋友可以补充

    
    
     
    
    
    
     
    
    今天介绍JOB相关的几个函数:
    
    1.  JOB_OPEN
    
         IMPORT:
    
           DELANFREP:这里设定在JOB执行完毕之后是否删除JOB
    
           JOBGROUP:JOB分配个某个组,一般用不到
    
           JOBNAME:JOB的名字,这个名字方便你在SM37中察看
    
           JOBCLASS:没用过,不知道有什么作用
    
         EXPORT:
    
           JOBCOUNT:返回的JOB的ID
    
         CHANGING:
    
           RET:判断函数的执行情况
    
    2.  JOB_SUBMIT
    
         IMPORT:
    
           AUTHCKNAM:检查权限,传入用户名
    
           JOBCOUNT:一般是传入刚才取到的JOB ID
    
           JOBNAME:JOB的名字
    
           REPORT:执行JOB的程序名字
    
           VARIANT:JOB执行时候的变式
    
    3.  JOB_CLOSE
    
         IMPORT:
    
           JOBCOUNT:一般是传入刚才取到的JOB ID
    
           JOBNAME:JOB的名字
    
     
    
    这三个函数是JOB程序的主要处理流程,其中我只列出了主要用的参数,
    
    至于其他的如果哪位朋友用到可以补充一下。
    
     
    
    需要注意一点就是JOB_CLOSE的时候要分两种情况,一种是周期性JOB的关闭,
    
    另一种是即时JOB的关闭。控制的参数需要多指定一些:
    
    周期性JOB:
    
      PREDJOB_CHECKSTAT:检查JOB执行的状态
    
      PRED_JOBNAME:周期性JOB的名字
    
    即时性JOB:
    
      STRTIMMED:这个参数设置为’X’
    
    
    
    

    方法: FILE_OPEN_DIALOG

    *数据的定义

    DATA: TAB         TYPE FILETABLE,         "存放文件名的内表

          WA          TYPE LINE OF FILETABLE, "用来读取文件名的结构

          FILE_FILTER TYPE STRING,            "file filter

          RC          TYPE I.                 "函数返回值

    *定义file filter,注意定义的格式,显示的时候最后一个为默认的显示

    *与你定义的DEFAULT_EXTENSION无关

    FILE_FILTER = 'All Files (*.*)|*.*|Excel Files (*.xls)|*.xls|Word files(*.doc)|*.doc'.

    *这就是打开文件的函数,或者说方法也行

    CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG

      EXPORTING

    *   对话框的标题  

        WINDOW_TITLE            = 'WINDOW_TITLE'

    *   默认的文件后缀名    

        DEFAULT_EXTENSION       = '*.DOC'

    *   默认打开的文件名    

        DEFAULT_FILENAME        = 'C:\TEST'

    *   文件打开的filter    

        FILE_FILTER             = FILE_FILTER

    *   初始化的目录    

        INITIAL_DIRECTORY       = 'C:\'

    *   是否可以同时打开多个文件

        MULTISELECTION          = 'X'

      CHANGING

    *   你所打开的文件名字列表  

        FILE_TABLE              = TAB

    *   返回值,如果成功打开了,为1    

        RC                      = RC

      EXCEPTIONS

        FILE_OPEN_DIALOG_FAILED = 1

        CNTL_ERROR              = 2

        ERROR_NO_GUI            = 3

        NOT_SUPPORTED_BY_GUI    = 4

        others                  = 5

            .

    IF SY-SUBRC = 0.

      READ TABLE TAB INDEX 1 INTO WA.

      WRITE: WA. ENDIF.

     

  • 相关阅读:
    javaScript删除对象、数组中的null、undefined、空对象、空数组方法
    js数组方法 改变原数组和不改变原数组的方法整理
    js时间戳与日期格式的相互转换
    [原创]jquery更换头像
    css样式大全(copy自一个大佬的博文)
    【原创】实现点击按钮更换表格皮肤效果
    Cookie和Seesion
    常用正则表达式
    【原创】javaWeb完成增删查改功能
    javaWeb完成注册功能
  • 原文地址:https://www.cnblogs.com/wequst/p/1513852.html
Copyright © 2011-2022 走看看