ABAP - 在报表中使用模板文件

在制作报表的时候,经常需要基于 Excel 的模板文件来编制。可以把 Excel 模板文件上传到应用程序服务器上。本篇博文演示如何将文件上传,在 ABAP 代码中从 application server 下载到本地,并且通过 OLE 操作本地文件。

上传模板文件

通过事务码 SMW0 上传本地的文件。在初始界面中,选择 「Binary Data for …」,然后点击 「Find」按钮:


进入下一屏幕,在 Package 字段输入开发包,选择开发包方便以后对文件的查找。

按 F8 执行,点击「创建」按钮,在弹出的对话框中输入 object name 和 description。Object name 在后面的程序中是一个重要的字段。

在弹出对话框中有一个「导入」按钮,点击并选择本地文件进行导入。已经导入的文件不允许修改,只能先删除,再导入。


在 【Setting】菜单的【Maintain MIME Types】可以维护文件类型,比如:

下载模板文件

在 SMW0 界面中可以手工导出文件(Export),但更有用的方式则是在代码中使用 DOWNLOAD_WEB_OBJECT 函数导出到本地。如果需要显示,SHOW_WEB_OBJECT 函数调用本地的程序打开服务器上的模板文件。


根据 SMW0 事务码设定的 object name,从 wwwdata 表和 tadir 表查找,返回一个 wwwdatatab 类型的结构,download_web_object 基于该结构下载模板文件到本地。

OLE 操作下载到本地的 Excel 文件

完整示例演示了将模板文件下载到本地后,通过 OLE 的方式进行操作。基本都是模式化的代码,只需要根据需要填充 frm_fill_cell 子例程。

frm_write_cell 子例程和 frm_fill_cell 实现将数据写入到 Excel 工作表:

以上两个子例程不需要变化,动态的部分放在 frm_fill_cell 中。参数为:行 / 列 / 值:

下面的代码保存工作簿:

源码

Download File from App Server - Gitee

猜你喜欢

转载自blog.csdn.net/stone0823/article/details/114929609
今日推荐