ABAP报表数据处理:输出报表下载到excel文件

xml方式上传模板,以二进制的方式下载数据到文件
1.模板处理
1)将excel模板另存为xml文件,tcode:strans (简单方式转换)上传到系统内,一般excel保存一行标题、一行数据。
2)以txt方式打开文档,从第二行开始复制到源代码
3)xml内可以定义变量,数据行设置loop,将数据行的数据改为输出的内表变量。
增加:声明的标题变量,赋值如下

image.png

程序内调用传参


image.png

增加:loop数据行

字段field写法:   

              
                
              
            

非空判断
4)注意要将txt内的行数限制删掉,

image.png

修改后源代码:



  
  
  
    
    
      
        1996-12-17T01:32:42Z
        2019-12-06T07:09:24Z
        16.00
      
      
        
        
      
      
        12600
        23256
        32767
        32767
        False
        False
      
      
        
        
        
        
        
        
        
        
        
        
        
        
        
      
      
        
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
            
              
                
              
            
          
          
            
              机构
            
            
              部门名称
            
            
              员工编号
            
            
              姓名
            
            
              职衔等级
            
            
              标准岗位
            
            
              核算起期
            
            
              薪酬标准
            
            
              固浮比
            
            
              基本工资合计
            
            
              变动时间1
            
            
              对应职级1
            
            
              薪酬标准1
            
            
              固浮比1
            
            
              基本工资合计
            
            
              变动时间2
            
            
              对应职级2
            
            
              薪酬标准2
            
            
              固浮比2
            
            
              基本工资合计
            
            
              变动时间3
            
            
              对应职级3
            
            
              薪酬标准3
            
            
              固浮比3
            
            
              基本工资合计
            
            
              变动时间4
            
            
              对应职级4
            
            
              薪酬标准4
            
            
              固浮比4
            
            
              基本工资合计
            
            
              变动时间5
            
            
              对应职级5
            
            
              薪酬标准5
            
            
              固浮比5
            
            
              基本工资合计
            
            
              变动时间6
            
            
              对应职级6
            
            
              薪酬标准6
            
            
              固浮比6
            
            
              基本工资合计
            
            
              终止日期
            
            
              年奖基数
            
          
          
            
              
                
                  
                
              
              
                
                  
                
              
              
                
                  
                
              
              
                
                  
                
              
              
                
                  
                
              
              
                
                  
                
              
              
                
                  
                    
                  
                
              
              
                
                  
                    
                  
                
              
              
                
                  
                    
                  
                
              
              
                
                  
                    
                  
                
              
              
                
                  
                    
                  
                
              
              
                
                  
                
              
              
                
                  
                    
                  
                
              
              
                
                  
                    
                  
                
              
              
                
                  
                    
                  
                
              
              
                
                  
                    
                  
                
              
              
                
                  
                
              
              
                
                  
                    
                  
                
              
              
                
                  
                    
                  
                
              
              
                
                  
                    
                  
                
              
              
                
                  
                    
                  
                
              
              
                
                  
                
              
              
                
                  
                    
                  
                
              
              
                
                  
                    
                  
                
              
              
                
                  
                    
                  
                
              
              
                
                  
                    
                  
                
              
              
                
                  
                
              
              
                
                  
                    
                  
                
              
              
                
                  
                    
                  
                
              
              
                
                  
                    
                  
                
              
              
                
                  
                    
                  
                
              
              
                
                  
                
              
              
                
                  
                    
                  
                
              
              
                
                  
                    
                  
                
              
              
                
                  
                    
                  
                
              
              
                
                  
                    
                  
                
              
              
                
                  
                
              
              
                
                  
                    
                  
                
              
              
                
                  
                    
                  
                
              
              
                
                  
                    
                  
                
              
              
                
                  
                    
                  
                
              
              
                
                  
                    
                  
                
              
            
          
        
9 600 600 3 2 False False
False False
False False
  1. 程序编写
FORM frm_export_file .
  DATA: lv_xml  TYPE string.
  DATA: lo_xml_doc TYPE REF TO cl_xml_document.
  DATA: lw_xstring TYPE xstring.
  DATA: lv_filename TYPE string.
  DATA: lt_binary  TYPE TABLE OF tbl1024,
        lv_length  TYPE i,
        lv_length2 TYPE sapb-length.
  DATA: lv_file  LIKE rlgrap-filename,
        lv_title TYPE string.
"获取文件保存路径及文件名称
  CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
    CHANGING
      file_name     = lv_file
    EXCEPTIONS
      mask_too_long = 1
      OTHERS        = 2.
  IF sy-subrc <> 0.
  ELSE.
  "标题赋值  
   lv_title = '总公司' && pybegda+0(4) && '年度年终奖基数报表'.

*   调用transform 生成xml
    CALL TRANSFORMATION zhr_upgrade_111_temp
            SOURCE root = gt_output[]   "输出的内容
                   title = lv_title
            RESULT XML lv_xml.
    REPLACE FIRST OCCURRENCE OF 'encoding="utf-16″' IN lv_xml WITH 'encoding="gbk"'.

*   将string转换成xstring
    CALL FUNCTION 'SCMS_STRING_TO_XSTRING'
      EXPORTING
        text   = lv_xml
      IMPORTING
        buffer = lw_xstring
      EXCEPTIONS
        failed = 1.
    IF sy-subrc EQ 0.
*      生成文件名
      lv_filename = lv_file.

*   将xstring转成二进制
      CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
        EXPORTING
          buffer        = lw_xstring
*         APPEND_TO_TABLE       = ' '
        IMPORTING
          output_length = lv_length
        TABLES
          binary_tab    = lt_binary.

      CALL FUNCTION 'GUI_DOWNLOAD'
        EXPORTING
          filename      = lv_filename
          filetype      = 'BIN'
          no_auth_check = 'X'
          codepage      = '8400'
        TABLES
          data_tab      = lt_binary.
      IF sy-subrc <> 0.
* Implement suitable error handling here
      ENDIF.
    ENDIF.
  ENDIF.
ENDFORM.

你可能感兴趣的:(ABAP报表数据处理:输出报表下载到excel文件)