SSRS报告格式化表以并排显示数据

时间:2012-12-05 10:59:38

标签: sql-server-2008 reporting-services reporting

我正在尝试基于一个查询为我的报告实现以下布局。

+----+-------+----+-------+
| ID | Name  | ID | Name  |
+----+-------+----+-------+
|  1 | Danny |  2 | Dave  |
|  3 | Sue   |  4 | Jack  |
|  5 | Rita  |  6 | Sarah |
+----+-------+----+-------+

所以我基本上想要一张桌子,从左到右打印我的数据以节省页面空间,而不是打印一行并浪费纸张右侧的所有空间,甚至可能需要3次宽度。

这是我的数据:http://sqlfiddle.com/#!3/5c911/1

我可能在想一张有4列的桌子。第1列和第2列包含奇数行号,第3列和第4列包含偶数行号。

我怎么能实现这一点,我确实尝试过使用MOD功能,但它似乎没有正常工作,或者我误解了发生了什么。

相关: How can I display two rows worth of data on one line side-by-side in Report Designer?

谢谢,

2 个答案:

答案 0 :(得分:7)

要以多列格式从左到右打印数据,您需要使用多个表来伪造它。要实现此hack,请创建与您想并排的列相同数量的表,这些列都指向您的数据集。在第一个表的Detail行上,对于Visibility-Hidden属性,使用以下公式:

=IIF((RowNumber(Nothing) Mod 4) = 1, False, True)

其中4是您拥有的表(列)数。

对每个表执行相同操作,递增公式等于(对于第二列(RowNumber(Nothing) Mod 4) = 2等等)。在最后一个表(列)中,公式等于0

这会交替隐藏详细信息行,仅显示该列编号的相应行。

答案 1 :(得分:0)

您可以通过查询实现该外观。

SELECT std1.id AS Student_Id, 
        std1.NAME AS Student_Name, 
        std2.id AS Student_Id, 
        std2.NAME AS Student_Name
FROM students std1, students std2
WHERE (std2.id - std1.id = 1 
       AND std1.id %2 = 1);