目录
介绍
文档生成方法1——VBA
文档生成方法2——报告包
文档生成方法3——文档生成软件
操作中的文档生成软件
第1步:将表数据导出为XML或JSON
第2步:将XML / JSON填充到文档模板中
结论
将SQL Server数据自动填充到Word和PDF文档模板中,用于合同、发票、信函等创建,为企业节省了数千小时。本文探讨了各种方法,并就如何根据您的要求选择最佳方法提供了一些建议。
介绍SQL Server正在帮助企业在OLTP(在线事务处理),数据仓库,商业智能和分析中使用高性能的内存安全技术构建关键任务应用程序。一些大型ERP和CRM由SQL Server提供支持。
文件是各种规模组织的普遍真理。提案、合同、发票、合规文件都是业务运营的一部分。企业为每种文档类型使用经过批准的文档模板。然而,SQL Server数据库保存了用于文档生成的这些文档模板中的所有数据。
将数据重新键入模板会浪费时间和资源。因此,企业希望自动化文档创建。理想的解决方案是将SQL Server数据填充到Word / PDF文档模板中,以便批量/按需创建文档。聪明地选择正确的方法可以为您节省数千美元。
文档生成方法1——VBA一种流行的方法是使用VBA或VSTO用数据库数据填充动态字段。开发人员为每个动态字段编写代码,并使用从SQL查询中检索的数据填充它们。文档模板经常更改,以符合外部和内部标准。每次都有模板更改,必须进行相应的代码更改,使其成为维护的噩梦。
VBA还用于创建恶意软件和病毒。因此,许多组织对VBA代码的使用都有严格的政策。此外,VBA编码模板与Office套件的不同版本不兼容,因此将其实用性限制在组织之外。每次升级Office版本时,模板都可能需要修改。
文档生成方法2——报告包另一种流行的方法是使用SSRS等报告包,从SQL Server数据创建文档。您必须将文档作为默认报告导入到每个已安装的实例中,从而使其不那么优雅。此外,报告包缺乏丰富的文档设计功能,最适合仅创建交互式报告。因此,如果您有复杂的发票或合同模板,这种方法可能没什么用处。
我不打算讨论T-SQL存储过程,因为它们不是商业用户的DIY解决方案,需要开发资源。即使使用报告包,两种方法也不能完全赋予业务用户权力。因此,需要一个业务用户友好的SQL为PDF和Word文档创建解决方案,文档生成软件是完美的解决方案。
文档生成方法3——文档生成软件使用文档生成软件,业务用户可以在编辑器中使用现有的Microsoft Word和PDF模板进行合同、报告、信函等,并使用SQL Server数据库数据填充它们。他们可以在他们喜欢的Word / PDF编辑器中编辑它们以进行模板更改。
除了Web应用程序,大多数文档生成软件还提供REST API。通过与API集成:
- 文档生成可以自动化(按需文档生成),无需用户交互
- 直接从数据库创建数千个文档(批量文档生成)
文档生成软件的另一个显着特征是您可以使用PDF和Word模板并生成PDF或Word文档。让我们来看看如何采用这种方法。
操作中的文档生成软件从SQL Server生成文档包含两个步骤:
- 以XML / JSON格式导出SQL Server数据
- 将XML / JSON填充到文档模板中
在查询中带有在“FOR XML”子句的SELECT语句以XML的形式检索表数据。通过FOR XML子句,您可以通过参数显式指定XML输出的结构——RAW,AUTO或者EXPLICIT,或者让SELECT语句的结构确定输出。下面是从Person表中检索所有记录的AUTO参数的简单示例。
SELECT Title,
FirstName,
MiddleName,
LastName,
Suffix
FROM Person.Person
FOR XML AUTO
同样,通过向SELECT语句添加“FOR JSON”子句,将数据从SQL Server导出为JSON 。通过FOR JSON子句,您可以通过参数明确指定JSON输出的结构——RAW,AUTO或者EXPLICIT,或者让SELECT语句的结构确定输出。
在SQL Server 2016 + s中,您可以将JSON文档存储在SQL Server中,并像在NoSQL数据库中一样查询JSON数据。但是,EDocGen接受任何JSON格式,不需要进行数据转换。
下面是AUTO参数的简单示例,该参数从Emp表中检索所有记录。
SELECT name, surname
FROM emp
FOR JSON AUTO
JSON结果。
[{
"name": "John"
}, {
"name": "Jane",
"surname": "Doe"
}]
现在准备好我们的XML / JSON文件,下一步是将XML / JSON填充到文档模板中。
第2步:将XML / JSON填充到文档模板中文档生成软件,如EDocGen,支持从XML / JSON数据到Word和PDF文档模板的动态文本,表格,段落,超链接和图像等的填充。
- 在为动态字段添加相关标签后上载现有模板
- 您不必进行任何数据转换,也可以按原样填充数据。在单击“生成”按钮之前,上载XML / JSON文件并将动态字段映射到数据字段。
- 电子邮件,电子签名或同步云存储生成的文档
如上所述,您可以使用API自动创建文档,而无需人工干预。通过与API集成,您可以扩展文档分发渠道。
结论总之,SQL Server中文档自动化的最佳方法取决于您的需求。如果您的模板没有经过更改并且只能在内部使用,那么VBA可能是一个不错的选择。如果您的模板很简单,SSRS也是一个不错的选择。如果您正在寻求灵活性并希望为业务用户提供支持,那么文档生成软件是最合适的。
原文地址:https://www.codeproject.com/Articles/1272776/Generate-Documents-from-SQL-Server