Sql server 基于SQL表生成一系列文档

Sql server 基于SQL表生成一系列文档,sql-server,forms,document,Sql Server,Forms,Document,我试图为一个应用程序制定一个方案,该应用程序允许用户根据存储在SQL表中的数据打印一批文档。SQL表指示哪些文档到期,还包含所有人口统计信息。这超出了我通常的工作范围,我正在尝试看看是否有一个平台/应用程序已经存在,可以完成这样的任务 比如说 所有文件列表:文件1-文件10 第1人应提交文件#:1,5,7,8 第2人应提交文件#:2.6 第三人应提交文件#:7,8,10 等 理想情况下,我希望用户能够按下一个按钮,获得一个打印的文档堆栈,这些文档已经为每个用户定制,包括基本的人口统计信息,如

我试图为一个应用程序制定一个方案,该应用程序允许用户根据存储在SQL表中的数据打印一批文档。SQL表指示哪些文档到期,还包含所有人口统计信息。这超出了我通常的工作范围,我正在尝试看看是否有一个平台/应用程序已经存在,可以完成这样的任务

比如说

  • 所有文件列表:文件1-文件10
  • 第1人应提交文件#:1,5,7,8
  • 第2人应提交文件#:2.6
  • 第三人应提交文件#:7,8,10
理想情况下,我希望用户能够按下一个按钮,获得一个打印的文档堆栈,这些文档已经为每个用户定制,包括基本的人口统计信息,如姓名、出生日期等

正如我在顶部所说,我已经在数据库中拥有了所有需要的信息,我只是想找出将这些信息移动到文档中的最佳方法


我做了一些研究,发现有些人在Word中使用邮件合并或使用Access作为前端,但我不知道这是否是最好的方法。我还发现,如果我正确理解您的问题,您的问题有两方面:首先,您需要找到一种基于数据生成文档的方法(邮件合并),其次,您可能需要打印两种方法

对于文档生成,有两种基本方法:基于模板和从头开始编程。我认为您将选择基于模板的方法,这基本上意味着您设计(在MS Word中)一个模板文档(Word、RTF等),该文档作为模板,包含占位符和其他标记,用于指定文档的»动态«部分。然后,在文档生成时,您需要一个.NET库/处理器,用于传递此模板文档和数据,处理器将使用数据填充模板并返回结果文档

实现此功能的一种方法是使用MS Word的本机邮件合并,但您应该知道,这将涉及使用Office COM和Word应用程序自动化,这几乎总是应该避免的

另一种选择是在OpenXMLSDK之上构建这样一个系统。这是一个velid选项,但这将是一项非常艰巨的任务,而且很可能比购买一个商业.NET库的成本要高得多,该库可以实现邮件的即时合并——已经完成了,已经完成了。但当然,好的一面是,您将能够根据自己的需要详细介绍解决方案。如果您走这条路,我建议您使用内容控件来标记文档/模板。使用CCs的解决方案比使用书签的解决方案更容易实现

我不太熟悉开源解决方案,也不知道有多少可以进行邮件合并。我所知道的一个是FlexDoc(在CodePlex上),但它的问题是使用了一个构造(XmlControl)来标记,而这个构造在Word 2010+中被去除了

还有商业解决方案。同样,我不知道它们的细节,但我知道它们中的大多数是通用文档处理库。我们公司已经使用了一段时间,我可以说它涵盖了我们所有的“基于模板的文档生成”需求。它在文档生成时不需要MS Word,并且为MS Word提供了非常有用的插件,您只需要几行代码就可以将其集成到项目中。模板功能非常强大,您可以在很短的时间内设置模板。虽然模板是Word文档,但也可以生成PDF或XPS文档。XPS非常有用,因为您可以使用与XPS文档一起使用的.NET/WPF prining framework打印文档。这是一个非常高端的解决方案,但当然,缺点是它不是免费的解决方案