在SSRS中,用矩阵中的值填充每一行

时间:2013-06-26 16:12:56

标签: reporting-services matrix ssrs-2008 reportbuilder3.0

我在报表生成器中创建了一个报表,我的用户希望将其导出到Excel以执行行操作。他们要求每一行都完全填入数据。就像现在一样,分组列只有第一行的数据,然后其余为空白。

我试过根本不对它进行分组。但这不起作用。

看起来与此相似。

风格 ----------------- 尺寸
Classic Chique -----小号 -----------------------媒体
--------------------------大

现代时尚---- XSmall

我希望它能说出“Classic Chique”在与该风格有关的每一行和与它有关的每一行的“Modern Chique”。

但是我不知道如何在Report Studios上做到这一点。

有什么建议吗?

(我不能发布图片,因为我没有足够好的声誉)

2 个答案:

答案 0 :(得分:1)

我想我知道你在说什么。如果您有内部联接正在消除某些行操作的实例,则可以将它们更改为左联接并始终在TSQL中包含行值。我希望这是你正在做的事情,这是一个简单的例子,说明我如何处理一个在矩阵环境中没有订单的人的问题。

declare @Person Table ( personID int identity, person varchar(8));

insert into @Person values ('Brett'),('Sean'),('Chad'),('Michael');

declare @Orders table ( OrderID int identity, PersonID int, Desciption varchar(32), Amount int);

insert into @Orders values (1, 'Shirt', 20),(2, 'Shirt', 22),(3, 'Shirt', 20);

Select 
    person
,   OrderID
,   Desciption
,   Amount
from @Person p
    join @Orders o on p.personID = o.PersonID

-- versus showing the person with no orders in a matrix environment where 
-- the 'Person' should be shown on the row

Select
    person
,   isnull(OrderID, '') as OrderID
,   isnull(Desciption, 'N/A') as Description
,   isnull(Amount, '0') as Amount
from @Person p
    left join @Orders o on p.personID = o.PersonID

编辑:

如果您正在描述重复的行,那么我只会将该行放在任何内容的父组中,因为它会出现正在发生的事情。如果您想要每行重复一个组头,那么它就不再是一个分组了。只需从“行组”中删除分组,然后将该列名称放在行项目明细中。

  1. 在VS中,当您处于'设计'(中央设计区域上方的小标签)时,请在“行组”下方左下角移动
  2. 点击您的分组ABOVE'=(详情)'。通常,它是您要登记的列的名称。
  3. 右键点击> DELETE
  4. 系统会通过两个选项提示您“删除群组”。
  5. 选择“仅删除群组”
  6. 这应该删除分组逻辑(您似乎不需要)并保留列。根据您的数据集,您现在应该每行都重复数据。

答案 1 :(得分:0)

我遇到了类似的问题,我创建了一个我无法避免的小组,因为我需要在该小组的每个成员之间打破页面,但后来我在其下面创建了第二个小组并将其分组。我想要显示的其他项目,按照我想要显示的顺序。这具有为每个组合创建一条总和的效果。到现在为止还挺好。然后我在列的右侧添加了一个包含组中第一个字段的列,但是我向右移动了一列并且在组外面。我对分组值中包含的每个值重复此操作。结果是每行显示一次,使其成为导出到Excel的良好候选者。

(我们都知道财务类型总是将我们提供的内容导出到Excel!)

我希望我可以包含rdl代码,但我关心的是分享任何工作产品。

乔伊