为什么我的 SQL Server Reporting Service (SSRS) 报告“似乎”对数据进行了重新排序?

问题描述 投票:0回答:3

所讨论的 SSRS 报告是一个客户端报告文件 (.rdlc),通过以下方式创建: 1) 查询数据库并将返回的填充 System.Data.DataTable 对象应用到报告; 2) 调用报表对象的 Export 方法以创建最终的 PDF 文件。

问题:查询以一种方式对数据进行排序,而报表以另一种方式对其进行排序!

我知道SSRS报告不支持排序,因为这取决于 查询,因此我很困惑!

我使用调试中断来查看正确排序的 DataTable 变成了错误排序的 PDF。 (啊啊啊啊啊)

报告仅列出产品、库存数量和类别,例如红酒、白酒等

...有趣的是,PDF 是根据数据的第一个字母数字列(即称为“类别”的第三个物理列)按字母顺序排序的。

我正在使用 C#.NET 4 和 Visual Studio 2010。

sorting rdlc reporting-services
3个回答
4
投票

您的问题是您认为“SSRS 报告不支持排序”——根本不正确。您可以对报告中的数据进行排序。这是通过表的属性来完成的,而不是像人们想象的那样通过数据集属性来完成。

单击表格上的任意位置,右键单击左上角的框并选择属性。这将显示整个表的属性,第四个选项卡是“排序”。您应该会发现此部分已在您的报告中填写。

如果不填写此部分,则将按照数据集查询结果的顺序输出。但是,可以使用表属性覆盖它,以便一个查询可以支持具有不同排序和分组的不同报告。


0
投票

顺便说一句..以防万一其他人到达这里并且这不是解决方案..我在VS中使用报表设计器(不是SSRS..但它看起来非常相似)还有在您的组内进行排序的选项。 IE。在“行组”窗口(或列组)中...右键单击该组,然后选择“组属性” 那里还有一个“排序”部分,这可能会改变您的预期结果..

另外,我想知道数据集查询是否已排序..但是指定了一个组,顺序可能会因为分组而改变?我还没有测试过 - 但只是想知道......因为该组实际上可能会聚合数据集中的排序值......


0
投票

SSRS 的要求可能很高,当我们在报告中包含 SQL 查询时,即使我们按降序或升序(默认情况下)对数据进行排序,您也不会在报告中看到排序后的数据。根据我对分页报告的经验,这是正确的,其中数据在查询中排序,当我在 SSMS 中运行查询时,SQL Server 以排序的方式提供数据,但相同的查询不会对 SSRS 中的数据进行排序报告因此我很困惑。您需要右键单击 tablix,单击属性,选择第四个选项“排序”,然后选择要排序的列“排序依据”和“顺序”。如果您想添加多个排序选项,可以点击添加,添加多个排序选项。单击预览检查更改是否生效,然后部署或重新部署报告。

© www.soinside.com 2019 - 2024. All rights reserved.