内表转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