我需要报告“员工姓名”和“年龄”,但我不需要将姓名继续到下一页;我需要继续到下一栏。
它应该是这样的:
_________________________________________________
| Employee Name | Age | Employee Name | Age |
|_______________|_____|_______________|_________|
任何人都可以发送管理此问题的报告吗?我正在使用 Microsoft 报告服务。
我需要报告“员工姓名”和“年龄”,但我不需要将姓名继续到下一页;我需要继续到下一栏。
它应该是这样的:
_________________________________________________
| Employee Name | Age | Employee Name | Age |
|_______________|_____|_______________|_________|
任何人都可以发送管理此问题的报告吗?我正在使用 Microsoft 报告服务。
你想要一个多栏的报告。
在布局选项卡上,右键单击没有任何报表对象的位置,然后选择属性。单击“布局”选项卡并将列数设置为页面上所需的列数 - 在您的示例中为 2。这将为您提供一个用于在左侧布置报表对象的列和一个灰色列右侧将是您在左侧的列将重复的位置。
但是,这里有几个技巧:
更新 - 使用表格伪造多列报告
如果做不到这一点,要让它以独立于渲染器的方式显示,就像你尝试过的那样,使用带有两个表的 hack,但诀窍是以交替的方式隐藏行。
要实现这个技巧,请并排创建两个表,它们都指向您的数据集。在第一个表的 Detail 行上,对于 Visibility-Hidden 属性,使用以下公式:
=iif((RowNumber(Nothing) Mod 2) = 0, True, False)
在第二个表的 Detail 行中,对于 Visibility-Hidden 属性,使用相反的公式:
=iif((RowNumber(Nothing) Mod 2) = 1, True, False)
这意味着第一个表将打印每个奇数行,第二个表将打印每个偶数行,从而有效地为您提供多列输出。
对于需要两列以上的表格可见性的通用解决方案,请使用以下公式:
=iif((RowNumber(Nothing) Mod TOTALCOLUMNS) = THISCOLUMN, True, False)
其中: TOTALCOLUMNS 是总列数 THISCOLUMN 是此表表示的列号,从零开始(即第一列是 0,第二列是 1,等等)
例如,五列输出中第三列的表将 Visibility-Hidden 属性设置为:
=iif((RowNumber(Nothing) Mod 5) = 2, True, False)
请注意,这与真正的多列输出略有不同,因为它从左到右而不是在页面向下读取,然后像真正的多列那样换行到右侧列。但是,它具有在每个渲染器中正确渲染的优点。
您可以通过从 InteractiveSize-Height 属性计算出您可以在页面上容纳多少行并在左表中显示这些列,然后在右表中显示其余列等来调整此方法以执行真正的多列。报告,但这可能很脆弱,具体取决于渲染器和更改页面布局设置(如边距)。上述方法简单有效。
我正在尝试做 EmployeeName 和 EmployeeTitle。我试图在上面实施克里斯的解决方案。我会在每个表中得到预期值,但它们会被重复。
我做了更多的研究,最终得到了以下行可见性。
对于偶数行我使用:
=iif(RunningValue(Fields!jobtitle.Value, CountDistinct, "EmployeesDataSet") Mod 2 = 0, True, False)
对于偶数行我使用:
=iif(RunningValue(Fields!jobtitle.Value, CountDistinct, "EmployeesDataSet") Mod 2 = 1, True, False)
行组在职称上。