【问题标题】:RDLC Dynamically Add multiple child report (rdlc) to Parent report (rdlc) from codebehind and show it on reportviewerRDLC 从代码隐藏动态地将多个子报表 (rdlc) 添加到父报表 (rdlc) 并在报表查看器上显示
【发布时间】:2015-04-30 17:25:16
【问题描述】:

我是 RDLC 和报表查看器的新手,所以我不确定这是否可行。

我有一个父报表,根据用户选择,我想将所有子报表添加到父报表并在报表查看器中显示给用户。

示例:我们有以下报告。

1) 主报告 A.rdlc

2) 报告 B.rdlc

3) 报告 C.rdlc

4) 报告 D.rdlc

5) 报告 E.rdlc

示例场景:如果用户选择主报表并选择 2 个报表,报表 E 和报表 C。 因此,报表的输出应包括选定的报表,并且还应保持报表在报表查看器中的显示顺序。

主报告 A

报告 E

报告 C

我尝试使用子报告,只有当我在设计时知道子报告的顺序和编号时它才对我有用,但是如何在运行时动态地执行用户选择,我不知道如何处理订单以及在运行时将添加多少报告。

【问题讨论】:

    标签: c# reportviewer rdlc


    【解决方案1】:

    要控制显示哪些报告以及显示顺序,您可以引入额外的数据集来“驱动”报告顺序并设置报告的可见性属性,例如,它会是这样的:

    <?xml version="1.0" encoding="utf-8"?>
    <reportWrapper>  
        <reportSetting order="0" type="A" visibility="false"/>
        <reportSetting order="0" type="B" visibility="false"/>
        <reportSetting order="2" type="C" visibility="true"/>
        <reportSetting order="0" type="D" visibility="false"/>
        <reportSetting order="1" type="E" visibility="true"/>
    </reportWrapper>
    

    然后,将新数据集作为数据源添加到您的主报表,将 Tablix 添加到报表正文,将新数据集作为数据源分配给此 Tablix(按“顺序”列设置顺序)。然后,您可以将子报表放入详细信息行中的 Tablix 中,并根据新数据集的类型和可见性列分别设置每个子报表的可见性。例如,对于报告 A,它会在以下情况下隐藏:

    = Fields!type <> "A" OR Fields!visibility <> "true"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多