如何在Reporting Services中为导出文本导出导出选项而不使用分隔符?

时间:2011-06-28 16:23:07

标签: sql-server reporting-services

需要将数据发送到外部接口 - 定期发送给某个国家/地区政府的财务法定报告,该报告期望数据为文本文件,字段之间没有分隔符:固定宽度,左边填充零或空格(取决于数据类型)来填补空间。

因此我们创建了一个包含必填字段的RDL,并且正在考虑为此添加导出选项。

是否可以创建导出选项以此格式导出?

我们希望避免在提供报告的存储过程中将所有适当的字段CAST到NVARCHAR,在那里留下它们并最终连接所有内容 - 除非这是完成它的唯一选择。

另外,我们绝对不希望在.NET中编写ad-hoc导出方法,这个导出选项的报告不会太多,所以不值得。除此之外,说服服务器团队将DLL部署到服务器并不是那么容易 - 如果有已编码的东西,开源或共享软件,我们可以查看它虽然不是首选的解决方案。

以前我们已经能够为Reporting Services 2008配置XML配置文件,以便为导出到文本添加新的导出选项,其中的字段由管道分隔,因此我们首先考虑尝试这一点。遗憾的是,如果您使用文本或CSV导出电机但未指定分隔符,则默认使用逗号。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

在我看来,Reporting Services不适合这项工作。您正在尝试将报告工具弯曲为数据迁移工具。虽然从表面上看我猜它类似于 - outputing格式的数据 - 固定长度的文本文件的结构是不是真的有什么Reporting Services是擅长生产的开箱。我们使用计划的SQL Server代理作业执行类似的固定长度导出。您还可以编写控制台应用程序并手动运行它或使用Windows计划任务来运行它。

如果你决定使用Reporting Services的某些功能的原因(例如,出口必须使用相同的参数来过滤数据所查看的报告),那么我会简单地创建基于第二份报告在第一个没有页眉或页脚的情况下,只是一个详细信息部分,其中包含一个包含一个宽字段的表,其中包含一个表达式,用于创建导出所需的格式化文本。把一个链接名为“创建导出文件”链接到这个新的报告,并横穿然后参数将其导出为CSV像一些非分页格式的主要报告的标题。

否则,您正在考虑创建一个您不想做的自定义渲染器,我同意这是过度的。