【转】BDC-利用Office 2007 邮件合并生成批处理脚本

转自:http://fenginfo.com/43.html

一.说明

Office的邮件合并的目的是将一份模板文档快速生成多份,利用此功能可为SAP的批处理SHDB批量生成执行脚本(参见《BDC批处理使用方法》)。邮件合并本身功能繁多,可快速生成证件、邮件并具有格式编辑能力,但为SAP批处理生成的脚本只涉及文本,则非常简单。

邮件合并需要一个文本编辑和一个数据源,前者通常是Word,而后者可用类型繁多,例如纯文本文件、Excel电子表格、Access数据库、Outlook中的联系人、ODBC等,相比较Excel使用最为简洁方便,本文就以Word 2007、Excel 2007为例进行描述。

二.数据准备

SHDB经过对事物码录屏操作生成脚本,可以导出一个文本文件。本例是对事物码MMPV的录屏,导出文件ZMMPV.txt如图 1 所示,在这里注意I_LFMON对应的月份(4),I_LFGJA对应的年份(1998),后续操作将作为变量进行处理。

图 1 SHDB导出的脚本文件

新建一个Excel 2007电子表格文件,如图 2 所示,在工作表Sheet1中输入数据源,列标题有两栏分别是“年份”、“月份”,本例从1998年5月至1999年12月,共20条数据。维护好后保存,文件名设为“日历.xlsx”。

图 2 存储数据的Excel表

三.邮件合并操作

新建一个Word文档(不用保存),将SHDB导出的脚本文件(ZMMPV.txt)信息粘贴过来,如图 3 所示。邮件合并流程的初始需选择类型,在“邮件”选项卡的“开始”组件中,下拉菜单,可以看到邮件合并的类型,由于生成的脚本是纯文本,所以要点击 “普通Word文档(N)”菜单项。

图 3 Word文档_开始邮件合并

选择数据源,在“邮件”选项卡的“选择收件人”组件中下拉菜单,选择“使用现有列表(E)…”菜单项如图 4 所示,弹出打开文件对框,可见到有多种数据源类型,在此打开刚才生成的Excel文件“日历.xlsx”,文件下有三个工作表,选择默认的Sheet1如图 5 所示。当加入数据源后,“邮件”选项卡右侧的很多组件才能从灰色转换成有效状态。

图 4 Word文档_插入数据文件

图 5 选择Excel文件的工作表

选择数据源后,就开始替换模板中的变量操作,如图 6 所示,在“邮件”选项卡的“插入合并域”组件中,点击下拉菜单,可以看到从Excel文件带来的列标题字段(年份、月份)。在此首先替换月份,选中需要替换的字符串,再点击下拉菜单的“月份”项。在选取月份时,注意要选择“ 4”两个字符(4前面有一空格),否则后续生成脚本当月份为10、11、12时,加上前导的空格则占用3个字符,超过字段I_LFMON的限制。

图 6 Word文档_替换月份

月份替换后如图 7 所示,按此方法替换年份,全部替换后如图 8 所示。此时,可以进行预览,显示数据源第一条数据替换的结果。点击“邮件”选项卡的“预览结果”组件, 文本中的两个字段就变成新的年、月份,如图 9 所示,再点击“预览结果”组件则返回图 8界面。



图 7 Word文档_替换月份完成



图 8 Word文档_替换月份、年份完成



图 9 Word文档_合并预览


以上操作无误后,就可以生成合并的文档,点击“邮件”选项卡中“完成并合并”组件下拉菜单里的“编辑单个文档(E)…”项如图 10 所示。弹出一个对话框,选择合并记录的起止范围,如图 11 所示,如果无特殊指定可选全部,点击“确认”按钮执行。



图 10 Word文档_生成文档



图 11 合并文档记录对话框


执行合并后生成新的可编辑Word文件如图 12 所示(未保存),Excel表中有20条记录,则合并成的文件就有20个原始脚本,只不过每个脚本的年份、月份被Excel表中的记录取代。生成的Word合并文件,可以另存为一个纯文本(txt)文件为SHDB批处理使用,本例文件名是MMPV_BATH.txt。至此邮件合并操作完成。



图 12 生成新的文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值