ITPub博客

首页 > Linux操作系统 > Linux操作系统 > DOWNLOAD怎么下载复杂的ALV表头

DOWNLOAD怎么下载复杂的ALV表头

原创 Linux操作系统 作者:iamah 时间:2012-04-25 11:55:15 0 删除 编辑

以上是一个ALV_LIST,如果要下载以上形式到EXCEL.

如果用GUI_DOWNLOAD,按常规方法一表头it_colname,一内表,无法输出这样的格式的     ALV.

 

 CALL FUNCTION 'GUI_DOWNLOAD'

    EXPORTING

      filename                = l_filename1

      filetype                = 'DAT'

      codepage                = '8400'

    TABLES

      data_tab                = 

      fieldnames              = it_colname[]

 

解决方法:把表字段头和数据一起压入一个表gt_out中,其格式如下

 

DATA: BEGIN OF gt_out  OCCURS 0,

        str TYPE string,

      END OF gt_out.

 

然后把表头APPEND进去,但因为是一行中有很多列,所以要加一个分隔符cl_abap_char_utilities=>horizontal_tab

实际上就是一个'#'号,用于在调用函数GUI_DOWNLOAD时分列,碰到一个就做为下一列

 

最后就是把中的数据APPEND到GT_OUT中,这里要通过ASSIGN COMPONENT来获得中每行的每一个字段的值,且每一个字段之间

加一个cl_abap_char_utilities=>horizontal_tab 来分隔。

 

FORM process_outdata .

  refresh gt_OUT.

  CLEAR GT_OUT.

  DATA:wa_out LIKE gt_out.

  DATA:l_str TYPE string.

  DATA:l_times TYPE i.

  LOOP AT fieldcat.

    CONCATENATE wa_out-str fieldcat-seltext_l cl_abap_char_utilities=>horizontal_tab INTO wa_out-str.

 

    IF sy-tabix LE 5.

      CONCATENATE gt_out-str cl_abap_char_utilities=>horizontal_tab  INTO gt_out-str.

      CONTINUE.

    ENDIF.

 

    IF sy-tabix EQ 6.

      CONCATENATE gt_out-str  'Usage'  cl_abap_char_utilities=>horizontal_tab INTO gt_out-str.

      CONTINUE.

    ENDIF.

 

    CASE fieldcat-fieldname(1).

      WHEN  'D'.

 

        CONCATENATE gt_out-str  'Demand'  cl_abap_char_utilities=>horizontal_tab INTO gt_out-str.

 

      WHEN  'P'."pl

 

        CONCATENATE gt_out-str  'Stock'  cl_abap_char_utilities=>horizontal_tab INTO gt_out-str.

 

      WHEN  'I'."inspe

 

        CONCATENATE gt_out-str  'Stock'  cl_abap_char_utilities=>horizontal_tab INTO gt_out-str.

 

      WHEN  'S'.

        IF fieldcat-fieldname(2) = 'SP'."speme

 

          CONCATENATE gt_out-str  'Stock'  cl_abap_char_utilities=>horizontal_tab INTO gt_out-str.

        ELSE.  "S

 

          CONCATENATE gt_out-str  'Shortage'  cl_abap_char_utilities=>horizontal_tab INTO gt_out-str.

        ENDIF.

 

      WHEN  'E'.

 

        CONCATENATE gt_out-str  'Eta'  cl_abap_char_utilities=>horizontal_tab INTO gt_out-str.

 

    ENDCASE.

  ENDLOOP.

 

  APPEND gt_out.

  APPEND wa_out TO gt_out.

  CLEAR wa_out.

  l_times = LINES( it_structure ).

 

  LOOP AT  INTO .

    DO l_times TIMES.

      ASSIGN COMPONENT sy-index OF STRUCTURE  TO .

      l_str = .

      CONCATENATE wa_out-str l_str cl_abap_char_utilities=>horizontal_tab INTO wa_out-str.

    ENDDO.

    APPEND wa_out TO gt_out.

    CLEAR wa_out.

  ENDLOOP.

ENDFORM.                    " process_outdata

 

最后调用GUI_DOWNLOAD.

 

 CALL FUNCTION 'GUI_DOWNLOAD'

    EXPORTING

      filename                = l_filename1

      filetype                = 'DAT'

      codepage                = '8400'

    TABLES

      data_tab                = GT_OUT[]

 

输出EXCEL结果

 


未命名图片.JPG

1.JPG

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/17070242/viewspace-722182/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2012-04-25

  • 博文量
    1
  • 访问量
    2042