ABAP—在ALV中实现导出为Excel文件

摘要:
1、 效果点击ALV实现Excel导出二。代码实现1.添加GUI按钮2.se38 REPORTZMR_ CK_ TEST2.表:mara,mard,ztmm012。TYPE-OOLS:slis。*************************************************************类型***************

一、效果

在ALV中点击实现Excel导出

ABAP—在ALV中实现导出为Excel文件第1张

ABAP—在ALV中实现导出为Excel文件第2张

二、代码实现

1.添加GUI按钮

ABAP—在ALV中实现导出为Excel文件第3张

 2.se38中代码实现

REPORT ZMMR_CK_TEST2.
TABLES:mara,mard,ztmm012.
TYPE-POOLS:slis.

************************************************************************
*                        TYPES
************************************************************************
TYPES:BEGIN OF ty_download,
    A  TYPE char5 ,
    B  TYPE char5,
  END OF ty_download.
************************************************************************
*                        DATAS
************************************************************************
DATA:WA_DOWNLOAD TYPE TY_DOWNLOAD,
     GT_DOWNLOAD TYPE TABLE OF TY_DOWNLOAD.
DATA:
  wa_field     TYPE         slis_fieldcat_alv,
  gt_field     TYPE         slis_t_fieldcat_alv,
  cl_ref_grid  TYPE REF TO  cl_gui_alv_grid,
  wa_layout    TYPE         slis_layout_alv.
DATA: BEGIN OF gt_hd OCCURS 0 ,
        field TYPE char100,
      END OF gt_hd.

START-OF-SELECTION.
PERFORM FRM_GET_DATA.
PERFORM FRM_SHOW_DATA.

FORM  FRM_GET_DATA."准备数据
  WA_DOWNLOAD-A = 'ABCDE'.
  WA_DOWNLOAD-B = '12345'.
  APPEND WA_DOWNLOAD TO GT_DOWNLOAD.
  WA_DOWNLOAD-A = 'HIJKM'.
  WA_DOWNLOAD-B = '10203'.
  APPEND WA_DOWNLOAD TO GT_DOWNLOAD.
ENDFORM.

FORM  FRM_SHOW_DATA. "ALV数据展示
  REFRESH gt_field.
  PERFORM frm_fill_fieldcat USING:'A' 'A' ' ' ' ' ' ' ' ',
                                  'B' 'B' ' ' ' ' ' ' ' '.
  wa_layout-zebra = 'X'.
  wa_layout-colwidth_optimize = 'X'.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_callback_program       = sy-cprog
      i_callback_pf_status_set = 'FRM_STATUS_SET'
      i_callback_user_command  = 'FRM_USER_COMMAND'
      is_layout                = wa_layout
      it_fieldcat              = gt_field
      i_default                = 'X'
      i_save                   = 'X'
    TABLES
      t_outtab                 = GT_DOWNLOAD
    EXCEPTIONS
      program_error            = 1
      OTHERS                   = 2.

ENDFORM.                     "FRM_SHOW_DATA

FORM frm_status_set USING lt_status_name TYPE slis_t_extab.
  SET PF-STATUS '1001'.
ENDFORM.

FORM frm_user_command USING ucomm TYPE sy-ucomm
                      rs_selfield TYPE slis_selfield.
  DATA:
    lv_msg TYPE char40.
  CASE ucomm.
    WHEN 'ZEXPORT'.   "导出按钮
      PERFORM frm_saveas_excel.
    endcase.
endform.

FORM  frm_saveas_excel.
  DATA:
    lv_filename    TYPE string,
    lv_path        TYPE string,
    lv_fullpath    TYPE string,
    lv_destination LIKE rlgrap-filename,
    ls_objdata     LIKE wwwdatatab,
    lv_objid       TYPE wwwdatatab-objid,
    lv_rc          TYPE sy-subrc,
    lv_tabix       TYPE i.
  CONCATENATE lv_filename
               '_'
              sy-datum
               '_'
              sy-uzeit
     INTO lv_filename.

********************************选取存储地点***************************
  CALL METHOD cl_gui_frontend_services=>file_save_dialog
    EXPORTING
      default_extension    = 'XLSX'
      default_file_name    = lv_filename
      initial_directory    = lv_path
    CHANGING
      filename             = lv_filename
      path                 = lv_path
      fullpath             = lv_fullpath
    EXCEPTIONS
      cntl_error           = 1
      error_no_gui         = 2
      not_supported_by_gui = 3
      OTHERS               = 4.

"excel表头设置
  APPEND 'title-A' TO gt_hd.
  APPEND 'title-B' TO gt_hd.

  CALL FUNCTION 'GUI_DOWNLOAD'
    EXPORTING
      filename              = lv_fullpath
      filetype              = 'ASC'
      write_field_separator = 'X'
    TABLES
      data_tab              = gt_download
      fieldnames            = gt_hd.

ENDFORM.                     "frm_saveas_excel

FORM frm_fill_fieldcat USING u_a u_b u_c u_d u_e u_f.
  wa_field-seltext_m = u_a.
  wa_field-fieldname = u_b.
  wa_field-edit = u_c.
  wa_field-checkbox = u_d.
  wa_field-decimals_out = u_e.
  wa_field-no_zero = u_f.
  APPEND wa_field TO gt_field.
  CLEAR wa_field.
ENDFORM.                    " FRM_FILL_FIELDCAT

免责声明:文章转载自《ABAP—在ALV中实现导出为Excel文件》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Python+Apache环境搭建jsp...九九乘法表,三角形,菱形下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

一千行ABAP代码实现Windows传统游戏扫雷

1 *&---------------------------------------------------------------------* 2 *& Report ZCHENH087 3 *& 4 *&-------------------------------------------...

ABAP 用指针的方式

首先要定义指针 FIELD-SYMBOLS: <fs_out> LIKE gt_tab_out. 然后在循环赋值时使用ASSIGNING关键字对指针初始化。 LOOP AT lt_tab_out ASSIGNING <fs_out> WHERE aufnr NE space.        READ TABLE lt_afko WI...

【ABAP系列】SAP ABAP 的替代和校验

公众号:matinal 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:【ABAP系列】SAP ABAP 的替代和校验   前言部分 大家可以关注我的公众号,公众号里的排版更好,阅读更舒适。 正文部分 以下内容请参考,懒得翻译了 I. Creating, activating...

.frm和.ibd恢复数据

昨日晚上开发告诉我不小心truncate两个表的数据,要求还原。结果在阿里云上找到了备份内容,结果是物理备份文件.frm、.ibd。心中一万个草泥马啊。。没办法,开始还原吧。 1、查看测试机Mysql配置文件位置 [root@localhost mysql]# which mysqld /usr/sbin/mysq...

ABAP术语-Connection Type

Connection Type 原文:http://www.cnblogs.com/qiangsheng/archive/2008/01/17/1042479.html A connection type is a relationship type whose occurrences are visible connections (lines) be...

ABAP SY-SUBRC 使用过程中返回值的几种含义

当进行Debug的时候,经常会遇到"SY-SUBRC"的返回值。具体如何使用。在各种语句下返回值。 ================= FUNCTION MODULE (或RFC中) SY-SUBRC 的含义 ================使用SELECT语句选择查询:SY-SUBRC = 0: 至少有一行数据,当ENDSELECT语句执行完,SY-DB...