这个问题易表早就解决了,而且比Word的邮件合并功能好用得多!
Foxtable是这样解决的:
关于文章套打
RtfPrinter类用于文章套打。
文章的类型必须是RTF格式,常用的文字处理软件,例如Word,都可以将文章保存为RTF格式。
打印一篇文章的代码非常简单:
Dim rp As New RtfPrinter("c:\Data\report.rtf")
rp.Preview()
上面的代码是预览,如果要直接打印,代码为:
Dim rp As New RtfPrinter("c:\Data\report.rtf")
rp.Print()
显然,我们的目的是套打,套打的原理非常简单,我们在编辑文章的时候,可以在文章中插入一些特殊的标记,然后利用RtfPrinter的Replace方法,将这些标记替换为数据。
例如你在文章中插入了一个特殊的标记"{Today}",希望套打的时候,能够将这个标记替换为当天的日期:
Dim rp As New RtfPrinter("c:\Data\report.rtf")
rp.Replace("{Today}", Date.Today)
rp.Preview()
虽然你可以使用任何字符作为标记,但是我们推荐您用大括号加上说明字符作为标记,以便于维护。
另一种套打的方法更为简单,你只须指定RtfPrinter要套打的DataRow,即可自动替换文章中类似“[列名]”的内容替换为实际的值:
Dim rp As New RtfPrinter("c:\Data\report.rtf")
rp.DataRow = Tables("订单").Current.DataRow '套打订单表的选定行.
rp.Replace("{Today}", Date.Today)
rp.Preview()
可以看出,文章套打非常的简单,我们就不提供具体的示例了。
因为Excel报表的兼容性更好、取数更方便、功能更强大,更便于生成各种复杂的报表,所以在某种程度上来说,文章套打是一个鸡肋,只是为了满足一些特殊的需要。