如何在同一报表查看器中加载两个RDLC报表?

问题描述

我有两个报告,第一个报告显示常规信息,第二个报告显示详细信息,我需要在报告查看器的不同页面中显示每个报告
你能帮我做到吗 谢谢

喜欢图片

1

解决方法

希望,以下内容可以帮助您找到所需的内容。首先,您将需要三个报告和两个数据表(或构建报告时需要的其他列表)。

首先,在我描述的3个报表中,我不会担心任何报表最终格式都将完全对齐,加粗,间隔...使其正常工作,然后可以使其完全正常工作。

接下来,仅出于创建两个记录的目的,创建伪造的数据表“ MyTable”。即使“ MyGroup”的单个列并将其作为int(仅用于示例目的)。

现在,创建两个记录并将每行中的值分别设置为1和2,以便表具有

MyGroup
1
2

现在,对于其他两个报告。据我了解,您希望第一份报告显示每个部门总计的汇总以及总计。第二个报告显示每个部门所有活动的详细信息。因此,这基本上是使用从任何查询返回的相同数据集。对于此示例,我将数据表称为“ SalesData”。

创建报告

创建您的第一个报告,在该报告上放置一个表格控件,您要为当前报告使用的全宽格式为横向或纵向,只要它们的大小相同,则您希望此报告相同。例如:所有将是肖像。添加您的报表数据源以显示“ MyTable”,并将其分配给表控件。还将“ SalesData”表也添加到报表中,以便将来的子报表可以使用。

在表控件的显示“行组”的下方,为“ MyGroup”列添加“ Group By”。这样我们就可以在每个组之间强制分页。添加后,右键单击父组“ MyGroup”,然后选择“组属性”。这将在左侧显示一个选项,允许您设置分页符,单击“组的每个实例之间”复选框。现在,只需将表控件中的一列作为“ MyGroup”列即可。保存报告,例如:“ MySalesRpt.rdlc”。然后编译并运行报告。您应该获得包含2页的简单报告,每页分别仅显示数字1和2。注意:您还希望将辅助报告的数据表引用也添加到该主报告中,以便它们可作为第一个的子报告。

创建一个新报告,例如:“ MySalesDetail.rdlc”,然后向其中添加“ SalesData”。将表控件添加到报表中,并将其源设置为“ SalesData”表。包括要显示的销售活动的详细信息列。添加一个基于部门的数据组,获取您的总和(salesDollarColumn)。在组页脚的外面/下面添加新行,这样您就可以将报告总计作为所有ex:SalesDollarColumn的总和。您可以自行测试并运行此报告,直到看起来正确为止。

现在,您的第三份报告。复制/粘贴MySalesDetail.rdlc报告,并将其更改为MySalesSummary.rdlc。因此,您不会在此摘要报告中显示每一个部门构建总计sum()的每一行,而是右键单击代表该组详细信息的行并删除。它将询问您是否要删除行和关联的组?回答是,因为它只会删除明细行,但是保留组页脚,该页脚将保留每个部门的sum()总数。保存,测试/运行此报告。

一旦所有三个报告都单独工作,现在我们可以回到“ MySalesRpt”。在此本来简单的1细节报告中添加其他详细信息行。右键单击现有明细行,然后选择“插入行”->“内部组-下方”。现在将显示为两行。

现在,在报表的第一行中只有一个简单的文本框,请转到报表的“工具箱”中,选择“子报表”,然后在每一行中放置一个实例。 在第一行,子报表,右键单击并设置属性。将名称和“将此报告用作子报告”设置为摘要报告“ MySalesSummary”。在第二行子报表上,执行相同的操作,但使用“ MySalesDetail”。

最后一步。单击代表“ MySalesSummary”的子报表。转到该属性,然后向下滚动到“隐藏”属性。您希望将此值设置为表达式:例如:“ = Fields!MyGroup.Value = 2”。这样,仅当报表位于MyGroup = 1的第一条记录上时,才会生成该报表。

类似地,在表示细节的第二个子报表上,将隐藏值设置为相反的值。“ = Fields!MyGroup.Value = 1”。当MyGroup = 1时隐藏。这样,您可以将每个报告放在自己的页面上,但是每个组仅显示一个。

我知道它听起来很深,但是请慢慢做,它应该对您有用。我已经做过并确认此过程有效。抱歉,有这么多步骤,但是必须将其分解为多个部分,才能按照您的要求将它们捆绑在一起。

,

一个 rdlc 在主本地报告中,另一个在子报告中。然后在主本地报表中设置 InteractiveSize 以将其中断以在报表查看器的不同页面中显示每个报表。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...