内表转WORD一法, 可以调用WORD做报表了

今天在技术群里再讨论ABAP调用WORD打印的问题, 忽然想起.NET中常用组合HTML字符串的方法来导出WORD文件, 这个方法在ABAP中应该也可以吧, 于是简单做了个测试, 代码如下:

 DATA: BEGIN OF wa_html,
        zhtml(255),
      END OF wa_html,
      gt_html LIKE TABLE OF wa_html.

DATA: v_str TYPE string.

DEFINE appd_html.
  wa_html-zhtml = &1.
  append wa_html to gt_html.
  clear wa_html.
END-OF-DEFINITION.

appd_html: '<table style="width:100%;border:1px black solid;font-size:10px; border-collapse:collapse;font-family:Arial Unicode MS;">',
           '<tr>',
           '<td align="center" style="border:1px black solid;">1111111111</td>',
           '<td align="center" style="border:1px black solid;">2222222222</td>',
           '</tr>',
           '<tr>',
           '<td align="center" style="border:1px black solid;">1111111111</td>',
           '<td align="center" style="border:1px black solid;">2222222222</td>',
           '</tr>',
           '<tr>',
           '<td align="center" style="border:1px black solid;">1111111111</td>',
           '<td align="center" style="border:1px black solid;">2222222222</td>',
           '</tr>',
           '</table>'.

CALL METHOD cl_gui_frontend_services=>gui_download
  EXPORTING
    filename = 'c:\a.doc'
  CHANGING
    data_tab = gt_html.

IF sy-subrc EQ 0.
  write 'OK'.
ELSE.
  write 'ER'.
ENDIF.

运行上面的代码后, 会在C盘生成一个A.DOC的文件, 双击, 可以看到Word能正够正常显示内容及格式. 再自动化一点,就是实例化OLE对象并打开这个文件啦, 这里就不写了, 有兴趣的自己试吧.

---------------------------------2010-07-05 更新----------------------------------------

注: 加上如下代码, 程序运行将直接调用Wod打开文件

 CALL FUNCTION 'CALL_INTERNET_ADRESS'
 EXPORTING
   PI_ADRESS           = 'c:\a.doc'
*   PI_TECHKEY          = ''
 EXCEPTIONS
   NO_INPUT_DATA       = 1
   OTHERS              = 2

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wren2004/archive/2010/07/02/5708947.aspx

posted @ 2010-08-27 18:29  知秋一叶  阅读(616)  评论(0编辑  收藏  举报
Tags



<%--先添加两个div用作标签的容器和临时容器--%>