Visual studio 如何在SSRS VS2008中为多个数据集应用父组

Visual studio 如何在SSRS VS2008中为多个数据集应用父组,visual-studio,reporting-services,ssrs-2008,ssrs-tablix,ssrs-grouping,Visual Studio,Reporting Services,Ssrs 2008,Ssrs Tablix,Ssrs Grouping,我已经为这个问题争论了好几天,但都没有成功。我有一个非常棘手的报告格式,我需要实现,但主要的是,所有的数据集将需要由一个家长分组。我会尽力解释 假设我们有数据集1,数据集2。两者都将AccountNumber作为公共字段(父字段) 我需要在报告的格式/布局中使用这两个数据集,但要按AccountNumber进行分组,类似这样 [Report Header Data] [AccountNumber Group] Dataset1 Dataset2 [end AccountNumber Gro

我已经为这个问题争论了好几天,但都没有成功。我有一个非常棘手的报告格式,我需要实现,但主要的是,所有的数据集将需要由一个家长分组。我会尽力解释

假设我们有数据集1,数据集2。两者都将AccountNumber作为公共字段(父字段)

我需要在报告的格式/布局中使用这两个数据集,但要按AccountNumber进行分组,类似这样

[Report Header Data]

[AccountNumber Group]

Dataset1
Dataset2

[end AccountNumber Group]
实现这一目标的最佳方式是什么?报告格式一直是分组的主要障碍,因此我将数据拆分为多个数据集,按accountnumber将所有数据集分组,然后在报告中为每个数据集创建自定义格式。报告的流程可能是这样的

[Report Header Data]

[AccountNumber Group]
[tablix1]
Dataset1
[tablix1]

[tablix2]
Dataset2
[tablix2]

[end AccountNumber Group]

期待就此展开讨论

如果我们知道报告数据,例如工资条、带贷款余额的工资条(即数据集1用于工资条,数据集2用于贷款),那就太好了

无论如何,格式将取决于报告所需的输出。i、 e如果您计划在报告中生成类似sum的计算结果,以及结果输出是否为每个数据集或两个数据集

假设您需要求和计算,如果计算结果为每个数据集,则选项2较好;如果计算结果为总计(数据集1+数据集2),则选项1较好


如果不需要计算或全部结果,两者都可以。

我不知道这里是否有完美的解决方案

根据您的描述,(听起来您已经朝这个方向倾斜了),您需要为每个不同的
AccountNumber
创建一个数据集,并基于此创建一个新的列表或表

一旦设置好,您需要在每一行中嵌入不同的数据集对象(即tablix1、tablix2)

这里的主要问题是,在表格中嵌入表格时不能使用多个数据集,因此我认为您可能需要一个子报表解决方案-这样子报表可以采用
AccountNumber
参数,并且每个子报表使用不同的数据集

比如:

[Report Header Data]

[AccountNumber Group]
[subreport1]
[tablix1]
Dataset1
[tablix1]
[subreport1]

[subreport2]
[tablix2]
Dataset2
[tablix2]
[subreport2]

[end AccountNumber Group]
这将根据需要对每个
AccountNumber
重复

在不确切了解数据外观的情况下很难说,但在2008R2及更高版本中,您可以使用和加入数据集,但对于多个值来说,这将很麻烦,即使您运行的是正确的版本


同样,根据您的数据,另一个选项是相邻组,如果您能够设法在一个数据集中获取数据。。。这将允许在
AccountName
组下的另一个组旁边有不同的分组,但这是一个长期目标。

有多种方法可以实现这一效果,最适合您的情况取决于您报告的详细信息。因此,我将给出我在过去使用过的一些技术:

  • 将两个数据集合并为一个

    将数据集合并到查询中是最简单的答案之一,并且适用于所有版本的SSR。它可以使SQL查询变大,但使报表布局变得简单

  • 使用
    查找(…)
    功能

    SSRS 2008R2增加了
    查找(…)
    功能,可用于访问第二个数据集中的项目。它使用起来有点笨拙,需要为每个要访问的字段使用一个单独的公式,但是它对于从不同的数据集中检索几个字段来说非常强大

  • 子报告

    与原始问题中描述的方法类似,这允许您使用一个tablix创建一个父项目,然后在其中放置一个子报告。子报表将被多次调用,分组项作为参数。每次运行报告都应仅返回该组实例的报告。这可能非常强大,但维护很困难:您有两个地方可以更改某些内容,并且可能需要手动调整以确保列正确对齐。子报表通常是运行最快的报表,因为它被调用了很多次


  • [NB:StackOverflow.com不是讨论的最佳场所。该网站的设计旨在避免讨论,并以问答为目标,而不是讨论。]

    在过去几天里,我一直在攻击单一数据集方法,让报告为我做关于将内容放在何处的工作。我遇到的唯一问题是正确分组数据并维护报告的布局,这导致我开始考虑其他选项。我能够让分组使用1个数据集,但布局不可能,使报告看起来像垃圾。子报告是最后的选择,我刚刚发现VS 2008 SSRS不能很好地与sql server 2012配合使用掌心!我使用VB.net代码填充报告,生成表示我的数据的数据传输对象(DT)列表。我在VB中得到的结果集与在sql server中得到的结果集完全相同,因此我的数据集很好。操作该数据集以获得自定义布局是挑战所在。