我正在尝试基于一个查询为我的报告实现以下布局。
+----+-------+----+-------+
| 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?
谢谢,
答案 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);