我可以将两个本地数据源推送到报告中。没问题。但是如何设置报告呢?一个数据源包含员工列表以及有关这些员工的信息。另一个包含每个员工的一堆工作时间。
我想在员工名单中使用一张表格,然后在每位员工的工作时间内(另外还有工作时间表)。
这甚至可能吗?我必须使用子报告吗?我是否必须将它们合并为一个数据源? = /
答案 0 :(得分:5)
据我所知,如果不使用子报告,就不可能将一个数据集嵌套在另一个数据集中。
这意味着您需要做以下两件事之一:
将两个数据源重构为一个数据源。例如,在员工和每个员工的工作时间之间执行联接。然后,您可以使用Table对象的分组属性按照您希望的方式格式化列表。
如果加入这两个数据源不切实际,您可以使用子报表来完成您想要的任务。创建包含工作时间数据源的子报表,并为当前员工提供参数。按此参数过滤工作时间。
在父报表中,您可以将子报表放在列表中,并将当前行的员工ID作为参数传递。
请注意,使用子报表涉及一些格式怪癖。在大多数情况下,我已经能够解决这些问题,但首选的方法绝对是上面的第一。
答案 1 :(得分:5)
添加新答案以确保为其发送通知。
使用子报表是最简单的方法。您只需将子报表拖放到表格单元格上,它就会填充该单元格的内容区域。右键单击子报表将允许您编辑子报表的参数。与SSRS中的大多数值一样,参数可以设置为使用表中字段的表达式。
在子报表中,只需过滤结果,仅显示与作为参数传入的员工关联的记录。
您可以采用的另一种方法是使用连接合并两个数据源。这将为您提供如下数据:
employee1 time1.1
employee1 time1.2
employee1 time1.3
employee1 time1.4
employee2 time2.1
employee2 time2.2
employee2 time2.3
然后,您可以在重复列(本示例中为employee)上创建一个组,并在这些列上启用HideDuplicates属性。结果将如下所示:
employee1 time1.1
time1.2
time1.3
time1.4
employee2 time2.1
time2.2
time2.3
答案 2 :(得分:1)
要设置多个数据源......您需要将两个单独的列表对象放入报表中。转到设计器,在工具箱中,您可以将新的“列表”放入其中。然后,您可以再做一次报告。将第二个列表链接到您通过辅助数据源实现的辅助数据集。
这有点紧张,但基本思路是报表中的每个列表对象只能链接到一个数据源。
答案 3 :(得分:0)
在报告文档类中有一个名为“Database”的属性,它有一个表集合。您可以在每个表上使用“SetDataSource”,以便将单独的对象列表放入报表中。