在Tablix单元格中显示集合(SSRS)

时间:2010-12-30 07:05:19

标签: reporting-services ssrs-2008

我有一个有子集合的对象:

class Person
{
    public string Name { get; set; }
    public ICollection<PhoneNumber> PhoneNumbers { get; set; }
}

class PhoneNumber
{
    public string Name { get; set; }
    public string Number { get; set; }
}

这些电话号码的数量可能会有很大差异。我需要最后得到的表格:

---------------------------------
| John Doe | Home:   +1-800-666 |
|          | Work:   +1-800-777 |
---------------------------------
| Homer Si | Home:   +1-800-111 |
|          | Work:   +1-800-222 |
|          | Mobile: +1-800-333 |
---------------------------------

(我希望很明显哪些字段在上图中) 我可以按照自己的意愿重写数据类。我需要保留格式(我的意思是电话号码必须在一行上对齐,如上所示)。

问题是 - 最好的方法是什么?我的主要限制是我不能为报告编写任何代码隐藏。我只能使用报告XML(如果需要,可以使用子报告,但要记住 - 没有代码隐藏)。

是否可能?

PS我正在使用2008年本地报道

1 个答案:

答案 0 :(得分:0)

好吧,我们并没有找到问题的解决方案,但我可以这样说:我们基本上最终提供了类似SQL的结构作为数据查询的结果。因为这是报告服务所希望的方式。

相信我 - 只是放弃尝试在报告中实现一些自定义功能。只是停止挣扎并使用默认方法。

正如我所提到的,我们使用类似SQL的JOIN来获得所需的格式。从提供者返回的数据现在采用以下形式:

______________________________________
|PersonName | PhoneType | PhoneNumber|
|___________|___________|____________|
|John Doe   | Home      | +123456    |
|John Doe   | Work      | +098765    |
|___________|___________|____________|
|Homer S.   | Mobile    | +654432    |
|Homer S.   | Home      | +654431    |
|Homer S.   | Work      | +654433    |
|___________|___________|____________|

我们只是将Personl上的Tablix分组,以便在报告中看起来像这样:

______________________________________
|PersonName | PhoneType | PhoneNumber|
|___________|___________|____________|
|John Doe   | Home      | +123456    |
|           | Work      | +098765    |
|___________|___________|____________|
|Homer S.   | Mobile    | +654432    |
|           | Home      | +654431    |
|           | Work      | +654433    |
|___________|___________|____________|

就是这样。