赛跑网

 找回密码
 注册

QQ登录

只需一步,快速开始

快捷登录

查看: 4855|回复: 33

赛跑网-上传EXCEL文件到内表&下载EXCEL到本地的实例

  [复制链接]
发表于 2012-5-11 12:20:22 | 显示全部楼层 |阅读模式
***工具栏按钮使用到的系统结构
TABLES  sscrfields.

* 模板标题用内表
TYPES :
* 模板标题用类型
  BEGIN OF gtyp_title,
    title1(20) TYPE c,                   "标题
    title2(20) TYPE c,                   "标题
    title3(20) TYPE c,                   "标题
    title4(20) TYPE c,                   "标题
    title5(20) TYPE c,                   "标题
    title6(20) TYPE c,                   "标题
  END OF gtyp_title.
DATA ls_title    TYPE gtyp_title.
DATA gt_title    TYPE STANDARD TABLE OF gtyp_title.

DATA  warn(20).

***按行列存放excel中的数据
DATA gt_excel TYPE STANDARD TABLE OF alsmex_tabline WITH HEADER LINE .

***按excel中格式存放数据
DATA : BEGIN OF gt_out OCCURS 0,
      field1(20),
      field2(20),
      field3(20),
      field4(20),
      field5(20),
      field6(20),
  END OF gt_out.

PARAMETERS p_files TYPE rlgrap-filename OBLIGATORY .

***定义工具栏按钮
SELECTION-SCREEN FUNCTION KEY 1.


INITIALIZATION.
**工具栏按钮赋值
  sscrfields-functxt_01 = '单击下载模板'.

***动态得到路径的事件块
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_files  .
***动态得到文件路径
  CALL FUNCTION 'F4_FILENAME'
    IMPORTING
      file_name = p_files.

游客,如果您要查看本帖隐藏内容请回复


***内表转化
  LOOP AT  gt_excel WHERE row GT 1.

    CASE gt_excel-col.
      WHEN 1.
        gt_out-field1 =  gt_excel-value .
      WHEN 2.
        gt_out-field2 =  gt_excel-value .
      WHEN 3.
        gt_out-field3 =  gt_excel-value .
      WHEN 4.
        gt_out-field4 =  gt_excel-value .
      WHEN 5.
        gt_out-field5 =  gt_excel-value .
      WHEN 6.
        gt_out-field6 =  gt_excel-value .
    ENDCASE.

游客,如果您要查看本帖隐藏内容请回复

ENDLOOP.

  IF gt_out[] IS NOT INITIAL .
    MESSAGE  '上传成功' TYPE 'S'.
    warn = '@08@'.
    WRITE warn.
  ELSE.
    MESSAGE  '上传失败' TYPE 'S'.
    warn = '@0A@'.
    WRITE warn.
  ENDIF.


*&---------------------------------------------------------------------*
*&      Form  FRM_DOWNLOAD
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM frm_download .
  CASE sscrfields-ucomm.
    WHEN 'FC01'.
      DATA : ls_title        TYPE gtyp_title,
             l_file          TYPE string,
             l_filename(128) TYPE c.
      IF gt_title IS INITIAL.
        ls_title-title1 = '标题1'.
        ls_title-title2 = '标题2'.
        ls_title-title3 = '标题3'.
        ls_title-title4 = '标题4'.
        ls_title-title5 = '标题5'.
        ls_title-title6 = '标题6'.
        APPEND ls_title TO gt_title. "模板存放在此内表中
      ENDIF.
***得到下载文件的保存路径
      CALL FUNCTION 'WS_FILENAME_GET'
        EXPORTING
          def_path         = ''
          mask             = ' (*.xls),*.xls,'
          mode             = 'S'
          title            = text-004
        IMPORTING
          filename         = l_filename
        EXCEPTIONS
          inv_winsys       = 1
          no_batch         = 2
          selection_cancel = 3
          selection_error  = 4
          OTHERS           = 5.

      IF sy-subrc <> 0.
        CLEAR: l_filename.
      ENDIF.
      l_file = l_filename.
***下载ECEL文件到本地
      CALL FUNCTION 'GUI_DOWNLOAD'
        EXPORTING
          filename = l_file
          filetype = 'DAT'
          codepage = '8400'
        TABLES
          data_tab = gt_title.

      IF sy-subrc = 0.
        MESSAGE '模板下载成功!' TYPE 'S'.
      ELSE.
        MESSAGE '模板下载错误!' TYPE 'E'.
      ENDIF.
  ENDCASE.
ENDFORM.                    " FRM_DOWNLOAD

最近访客

  • tbb1177
    2024-01-17
  • 青青子衿
    2024-01-09
  • wx_11001
    2023-02-21
  • 毛毛
    2022-08-03
  • admin
    2022-08-03
  • EricCai
    2022-08-02
  • austin
    2022-03-24




上一篇:赛跑网-选择屏幕加按钮实例
下一篇:赛跑网-两个上载函数的对比
本楼点评(0) 收起
发表于 2012-5-11 20:55:27 | 显示全部楼层
老师写得很好。。。。。
本楼点评(0) 收起
发表于 2012-5-13 09:11:44 | 显示全部楼层
上传EXCEL文件到内表的实例
本楼点评(0) 收起
发表于 2012-6-18 08:52:12 | 显示全部楼层
最近有个需求用到这方面的知识,谢谢老师的分享
本楼点评(0) 收起
发表于 2012-6-25 20:56:46 | 显示全部楼层
进来学习。。。。
本楼点评(0) 收起
发表于 2012-7-3 10:26:24 | 显示全部楼层
studying studying
本楼点评(0) 收起
发表于 2012-7-10 20:36:15 | 显示全部楼层
本楼点评(0) 收起
发表于 2012-8-23 17:02:19 | 显示全部楼层
thanksforsharing
本楼点评(0) 收起
发表于 2012-9-12 00:56:30 | 显示全部楼层
顶一个!!!
本楼点评(0) 收起
发表于 2012-10-9 16:51:22 | 显示全部楼层
老师写的真全啊!
本楼点评(0) 收起
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|联系我们|赛跑网 ( QQ:108519493QQfsq

GMT+8, 2024-4-26 16:54 , Processed in 0.237225 second(s), 63 queries .

Powered by 91SAP X3.4

© 2001-2023 91sap Team.

快速回复 返回顶部 返回列表