我正在尝试基于一个查询为我的报表实现以下布局。
+----+-------+----+-------+
| 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 功能的东西,但它似乎无法正常工作,或者我误解了正在发生的事情。
相关:如何在报表设计器中并排显示一行两行数据?
谢谢
要以多列格式从左到右打印数据,您需要使用多个表伪造数据。要实现此技巧,请创建与您想要并排的列相同数量的表,这些表都指向您的数据集。在第一个表的"详细信息"行上,对于"可见性 - 隐藏"属性,请使用以下公式:
=IIF((RowNumber(Nothing) Mod 4) = 1, False, True)
其中4
是您拥有的表(列)数。
对每个表执行相同的操作,递增公式等于的内容(对于第二列(RowNumber(Nothing) Mod 4) = 2
,依此类推)。在最后一个表(列)中,公式等于 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);