【发布时间】:2010-06-09 21:22:48
【问题描述】:
我对 Visual Studio(特别是 Visual Basic .NET)还很陌生,但已经编程了很长时间。
在我的公司,我们有一个 Access 应用程序,它允许用户根据 Great Plains 中的发票创建文档,这是一个会计程序。单据如发票、装箱单、出口单证等。
这个应用程序非常老旧,很难维护,所以我们正在重写,我选择这个项目作为我的第一个 Visual Basic .NET 项目。
应用程序要做的基本上是允许用户执行以下操作:
- 拉起发票信息,然后添加一些辅助信息,如cmets等
- 选择要打印的文档
- 打开文档,然后允许用户编辑文档
最后一部分是棘手的部分。用户现在在 Access 之外创建这些文档并打印为 PDF,然后使用特定于文档和客户的 cmets 编辑 PDF。如果他们不必这样做,那么我可以使用罐头报告或其他东西。
我想做的是创建带有文本框的 Word 模板,并在这些文本框中添加可寻址的书签。当用户去打印文档时,打开 Word,从数据库(SQL Server)中填充书签,然后让他们绘制文本框并在打印文档之前用他们想要的任何内容填充它们,然后他们可以保存它们。
这是我为此编写的代码(当然最终结果会复杂得多):
Public Const wdPageBreak = 7
Dim oWord As Word.Application
Dim oDoc As Word.Document
'Open recordset for rsInvoice
oWord = CreateObject("Word.Application")
oDoc = oWord.Documents.Add()
oDoc.Application.Selection.Range.InsertFile("C:\document-c.dotx")
oDoc.Application.Selection.Range.InsertBreak(wdPageBreak)
oDoc.Application.Selection.Range.InsertFile("C:\document-b.dotx")
oDoc.Application.Selection.Range.InsertBreak(wdPageBreak)
oDoc.Application.Selection.Range.InsertFile("C:\document-a.dotx")
oDoc.Bookmarks("document_a_invoice_number").Range.Text = rsInvoice("invoice_number")
oDoc.Bookmarks("document_a_customer_number").Range.Text = rsInvoice("customer_number")
...
etc.
etc.
...
oWord.Visible = True
所以我想我的问题是这是处理这个项目的最合适的方式,还是有一种方式以编程方式或通过我不知道的第三方工具会更容易和更有效?
提前致谢。
【问题讨论】: