使用数据集进行Microsoft报告

当我们使用SSRS创建报告时,我们可以使用数据集窗口中的查询框来创建自定义查询。 但在本地报告(.RDLC)中,当我们想要创建报告时,我们应该设计一个设计的数据集来报告。

在这里输入图像描述

问题是当我们有100个报告时,我们也应该有100个数据集。目前我们使用带有这些字段(F1,F2,F3,...,F100)的数据集,并且在将数据表绑定到报告之前,我们更改了数据表列的名称。 但它的可读性很低。

我想问问有没有更好的方法来解决这个问题?

谢谢


最好的解决方案是对数据集进行分组。 您可以将他们的业务避免分组数据集。 例如POLICY.xsd,USER.xsd,INVOICE.xsd并将其他数据集添加到xsd文件中。

例如在visual studio中,您会看到10个数据集文件。 但每个项目都有不同的数据表。

第二次升级是你会写更好的t-sql。 当你一般选择你的列的类似报告,你会使用相同的数据表。

例如一份报告包括5栏A1,A2,A3,A4,A5 B报告包括6栏A1,A2,A3,A4,A5,A6

对于这些报告,您将使用B报告的数据表


我可能需要更多信息才能提供帮助 - 您是否真的说您的数据集标有F1,F2,F3,...以及您现在需要使用标有(例如)Id, CustType,IsActive,...?

如果是这种情况,那么我会建议使用将每个字段名称别名为F1,F2,...的视图。这听起来像是和原始问题一样多的工作,但一切都可以自动化。

创建这100个视图可以通过脚本实现。 这个脚本可以通过运行一些智能T-SQL来获得存储在SQL Server中的模式数据并输出所需的脚本。

看看如何从SQL Server的表中获取列名称? 开始。

您可能需要在T-SQL中使用游标来遍历模式数据并输出脚本以创建视图。

最后,如果您需要以相同的方式修改每个100个SSRS报告,那么不要忘记每个报告都以报告定义语言(XML)存储,因此您可以编写一个小型实用程序来读取每个XML文件并制作必要的变化。 不要忘记先备份这些文件,然后让新的应用程序松动。

我希望这一切都有所帮助,而且答案还未到。


我必须承认,我并不完全了解到目前为止提供的信息存在的问题,但这里有一个解决方案,可能对您有很大的好处。

你有没有尝试从存储过程创建报告? 通过这样做,RDLC文件将不包含查询,而是查看存储过程中查询的定义,并在RDLC文件内创建数据集。 然后在运行时,以代码执行存储过程,并将返回的数据传递到RDLC文件中执行。

这样做的好处是查询被封装为数据库对象,最终不会在项目中产生一百万个数据集,并且您可以从报告中取消查询,所以如果您有6个版本的相同的报告都使用相同的字段,但使用不同的WHERE子句,例如,您可以只使用一个报告(并在运行时调用相关的存储过程)。

链接地址: http://www.djcxy.com/p/93845.html

上一篇: Using Dataset for Microsoft reporting

下一篇: Returning only the column names from a SELECT statement