模板导入和导出模板程序smw0导入标准模板.docx

上传人:b****7 文档编号:11217245 上传时间:2023-02-25 格式:DOCX 页数:13 大小:429.47KB
下载 相关 举报
模板导入和导出模板程序smw0导入标准模板.docx_第1页
第1页 / 共13页
模板导入和导出模板程序smw0导入标准模板.docx_第2页
第2页 / 共13页
模板导入和导出模板程序smw0导入标准模板.docx_第3页
第3页 / 共13页
模板导入和导出模板程序smw0导入标准模板.docx_第4页
第4页 / 共13页
模板导入和导出模板程序smw0导入标准模板.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

模板导入和导出模板程序smw0导入标准模板.docx

《模板导入和导出模板程序smw0导入标准模板.docx》由会员分享,可在线阅读,更多相关《模板导入和导出模板程序smw0导入标准模板.docx(13页珍藏版)》请在冰豆网上搜索。

模板导入和导出模板程序smw0导入标准模板.docx

模板导入和导出模板程序smw0导入标准模板

1、输入事务码SMW0,回车,进入如下界面:

2、选择WEBRFC应用程序的二进制数据,回车,如图:

在包中输入Z001或什么都不输入(包Z001是自定义的包,用于把SAP里更改的东西从测试开发系统中传入测试系统和生产机中,空白则保存在本地,不能传输,但可以在开发机上用),单击执行,即左上角小闹钟,进入上载EXCEL模板界面,如下图:

2、点击左上角创建按钮,

,维护对象名称及描述,

4、点击右下角按钮,选择要上载的EXCEL模板,

5、点保存按钮,EXCEL模板即创建成功,可以在程序中调用此模板了。

具体调用模板的方法,请参照程序ZFIR007和程序ZFIR008。

以上。

*&---------------------------------------------------------------------*

*& Report  ZFIRJ042

*&

*&---------------------------------------------------------------------*

*&

*&

*&---------------------------------------------------------------------*

REPORT ZFIRJ042 no STANDARD PAGE HEADING MESSAGE-ID 00.

TABLES :

 sscrfields.

DATA:

 gt_fieldcatalog    TYPE slis_t_fieldcat_alv WITH HEADER LINE,

      gs_layout          TYPE slis_layout_alv,

      gt_events          TYPE slis_t_event,        " ALV Event table

      g_repid           LIKE sy-repid .

DATA:

 BEGIN OF it_imp OCCURS 0.

        INCLUDE TYPE ZBW_MYBL.

DATA:

  END OF it_imp.

DATA:

IT_IMP1 LIKE TABLE OF IT_IMP WITH HEADER LINE.

DATA:

BEGIN OF iexcel OCCURS 0.

        INCLUDE STRUCTURE alsmex_tabline.

DATA:

END OF iexcel.

DATA:

 tab_size TYPE i.

SELECTION-SCREEN :

 FUNCTION KEY 1. "激活下载模板按键

SELECTION-SCREEN BEGIN OF BLOCK 1 WITH FRAME TITLE text-010.

PARAMETERS :

  p_infile  LIKE rlgrap-filename  .

*  P_bukrs like T001-BUKRS OBLIGATORY,

*  p_zbps LIKE ZBW_MYBL-zbps_org  ,"预算单位

*  pmonth(6) DEFAULT sy-datum+0(6)   ."年度

*  p_test AS CHECKBOX DEFAULT 'X'.

SELECTION-SCREEN END OF BLOCK 1.

DATA lt_gt_data      TYPE    alsmex_tabline OCCURS 0 WITH HEADER LINE.

DEFINE m_alv_fieldcat.

  gs_field-fieldname      = &1."字段名

  gs_field-outputlen      = &2."列宽

  gs_field-coltext   = &3."列名

  append gs_field to gt_field.

  clear gs_field.

END-OF-DEFINITION.

DATA   p_test

(1) TYPE c  VALUE 'X'.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_infile.

  PERFORM select_file USING p_infile.

INITIALIZATION.

  PERFORM frm_initialization.

AT SELECTION-SCREEN.

  PERFORM frm_download_template."下载模板

  PERFORM frm_check."输入检查及权限检查

START-OF-SELECTION.

  PERFORM frm_get_data.

  PERFORM upload_xls_data.

  PERFORM frm_display.

*&---------------------------------------------------------------------*

*&      Form  SELECT_FILE

*&---------------------------------------------------------------------*

*       select excel files

*----------------------------------------------------------------------*

*      -->P_FILENAME text

*----------------------------------------------------------------------*

FORM frm_initialization .

  sscrfields-functxt_01 = '下载模板'.

ENDFORM.                    "frm_initialization

*&---------------------------------------------------------------------*

*&      Form  SELECT_FILE

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

*      -->P_FILENAME text

*----------------------------------------------------------------------*

FORM select_file USING p_filename LIKE rlgrap-filename.

  CALL FUNCTION 'KD_GET_FILENAME_ON_F4'

    EXPORTING

      mask          = ',Excel Files,*.xls.'

    CHANGING

      file_name     = p_filename

    EXCEPTIONS

      mask_too_long = 1

      OTHERS        = 2.

ENDFORM.                    "SELECT_FILE

*&---------------------------------------------------------------------*

*&      Form  UPLOAD_XLS_DATA

*&---------------------------------------------------------------------*

*       upload excel files

*----------------------------------------------------------------------*

FORM upload_xls_data.

  IF it_imp[] IS NOT INITIAL.

    MODIFY zbw_mybl FROM TABLE it_imp.

    IF sy-subrc = 0.

      MESSAGE i001(00) WITH '数据已导入成功'.

    ELSE.

      MESSAGE e001(00) WITH '数据导入失败,请检查数据!

'.

    ENDIF.

  ENDIF.

ENDFORM.                    "UPLOAD_XLS_DATA

*&      Form  frm_download_template

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

FORM frm_download_template .

  DATA :

 lc_file TYPE rlgrap-filename,

         lc_wwwdatatab TYPE wwwdatatab ,

         lc_subrc TYPE sy-subrc,

         lc_temp  TYPE c.

  CASE sscrfields-ucomm.

    WHEN 'FC01'."下载模板

      "获取要下载的文件路径

      CALL FUNCTION 'WS_FILENAME_GET'

        EXPORTING

          def_filename     = '财务决算每月信息导入模板.xls'      "设置前文件名

          def_path         = 'C:

\'                               "设置前路径

          mode             = 'S'                                 "S = 保存,O = 打开

        IMPORTING

          filename         = lc_file

        EXCEPTIONS

          inv_winsys       = 1

          no_batch         = 2

          selection_cancel = 3

          selection_error  = 4

          OTHERS           = 5.

*      IF sy-subrc = 0.

      MOVE 'ZFIRJ042' TO lc_wwwdatatab-objid.

      SELECT SINGLE * INTO CORRESPONDING FIELDS OF lc_wwwdatatab

           FROM wwwdata WHERE srtf2 = 0 AND relid = 'MI'

             AND objid = lc_wwwdatatab-objid .

      "下载模板到指定路径

      CALL FUNCTION 'DOWNLOAD_WEB_OBJECT'

        EXPORTING

          key         = lc_wwwdatatab

          destination = lc_file

        IMPORTING

          rc          = lc_subrc

        CHANGING

          temp        = lc_temp.

      IF lc_subrc <> 0 .

        MESSAGE '没有相应的数据模板下载' TYPE 'E'.

        LEAVE LIST-PROCESSING.

      ENDIF.

*      ENDIF.

  ENDCASE.

ENDFORM.                    " FRM_DOWNLOAD_TEMPLATE

*----------------------------------------------------------------------*

*  MODULE STATUS_0100 OUTPUT

*----------------------------------------------------------------------*

*

*----------------------------------------------------------------------*

*&---------------------------------------------------------------------*

*&      Form  FRM_CHECK

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM frm_check .

* IF p_zbps CA sy-abcde.

*    MESSAGE e001(00) WITH '请输入正确的期间!

'.

*  ENDIF.

*检查权限 有没有预算单位的权限

*  AUTHORITY-CHECK OBJECT 'ZBPS_ORG' ID 'ZBPS_ORG' FIELD p_zbps.

*  IF sy-subrc <> 0.

*    MESSAGE '没有预算单位的权限!

' TYPE 'E'.

*  ENDIF.

ENDFORM.                    " FRM_CHECK

*&---------------------------------------------------------------------*

*&      Form  FRM_GET_DATA

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM frm_get_data .

  CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'

    EXPORTING

      filename    = p_infile

      i_begin_col = '1'

      i_begin_row = '2'

      i_end_col   = '29'

      i_end_row   = '5000'

    TABLES

      intern      = lt_gt_data

    EXCEPTIONS

      upload_ole  = 1.

  REFRESH it_imp.

  CLEAR it_imp.

  LOOP AT lt_gt_data.

*    CONDENSE  lt_gt_data-value NO-GAPS.         "  清除空格

    TRANSLATE lt_gt_data-value TO UPPER CASE.   "  转换所有字符为大

    CASE lt_gt_data-col.

      WHEN 1.

        it_imp-COMP_CODE = lt_gt_data-value.

      WHEN 2.

        it_imp-ZBPS_ORG = lt_gt_data-value.

      WHEN 3.

        it_imp-FISCPER = lt_gt_data-value.

      WHEN 4.

        it_imp-TXTLG = lt_gt_data-value.

      WHEN 5.

        it_imp-FIELD1 = lt_gt_data-value.

      WHEN 6.

        it_imp-ZJMSKZPTB = lt_gt_data-value.

      WHEN 7.

        it_imp-ZJMSRZPTB = lt_gt_data-value.

      WHEN 8.

        it_imp-ZJMCPCBL = lt_gt_data-value.

      WHEN 9.

        it_imp-ZMYSKZPTB = lt_gt_data-value.

      WHEN 10.

        it_imp-ZMYSRZPTB = lt_gt_data-value.

      WHEN 11.

        it_imp-ZMYCPCBL = lt_gt_data-value.

    ENDCASE.

    AT END OF row.

      APPEND it_imp.

      CLEAR:

 it_imp.

    endat.

  ENDLOOP.

  LOOP AT it_imp.

    AUTHORITY-CHECK OBJECT 'F_BKPF_BUK'

       ID 'BUKRS' FIELD it_imp-COMP_CODE

       ID 'ACTVT' FIELD '03'.

    IF sy-subrc <> 0.

      MESSAGE '您没有输入公司代码的权限,请检查。

' TYPE 'E'.

    ENDIF.

    SELECT * INTO CORRESPONDING FIELDS OF TABLE it_imp1

      FROM ZBW_MYBL

      WHERE zbps_org = it_imp-ZBPS_ORG

        AND fiscper = it_imp-FISCPER.

    IF sy-subrc = 0.

      DATA msg TYPE string.

      CLEAR msg.

      CONCATENATE  '预算单位' it_imp-ZBPS_ORG '期间' it_imp-FISCPER '的数据已经存在!

' INTO msg.

      MESSAGE i001(00) WITH msg.

    ENDIF.

  ENDLOOP.

ENDFORM.                    " FRM_GET_DATA

*&---------------------------------------------------------------------*

*&      Form  FRM_DISPLAY

*&---------------------------------------------------------------------*

*       text 显示已导入的数据

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM frm_display .

*  REFRESH it_imp.

*  CLEAR it_imp.

*  SELECT * INTO CORRESPONDING FIELDS OF TABLE it_imp

*    FROM ZBW_MYBL

*    WHERE zbps_org = p_zbps

*      AND fiscper = pmonth.

  DEFINE add_field.

      dis_filed-fieldname = &1.

      dis_filed-reptext_ddic = &2.

      if dis_filed-fieldname = 'CHECK'.

        dis_filed-checkbox = 'X'.

        dis_filed-edit = 'X'.

      endif.

      append dis_filed.

      clear:

 dis_filed.

    END-OF-DEFINITION.

  IF it_imp[] IS NOT INITIAL.

    TYPE-POOLS:

slis.

    DATA dis_filed TYPE slis_t_fieldcat_alv WITH HEADER LINE.

    DATA:

 gs_layout   TYPE slis_layout_alv.

    gs_layout-zebra = 'X'.              "设置每行的背景颜色交错显示

    gs_layout-colwidth_optimize = 'X'.  "ALV输出时候自动优化宽度

    REFRESH dis_filed.

    add_field 'CO

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

当前位置:首页 > 总结汇报 > 其它

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

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