【问题标题】:ReportViewer: Combine Multiple Reports into one reportReportViewer:将多个报告合并为一个报告
【发布时间】:2010-10-18 19:32:55
【问题描述】:

我有一份报告需要运行多次,每次都输入不同的数据。每个报告都有一个唯一标识它的页眉、实际的数据主体,然后是一个包含 [x of y pages] 格式的页数的页脚。显然我可以单独运行每个报告,但我需要页码跨越所有报告。因此,如果我运行它两次,第一次它有 3 页,第二次它有两页,页脚会在每个报告的底部显示 [x of 5 pages]。

我尝试创建一个主报告并只嵌入报告,但它没有显示页眉,我也考虑过单独运行它们,并传入一个参数来调整页码,但我显然会需要渲染每个报表,找出总页数,然后重新渲染每个报表以在页脚处显示正确的总页数。

有什么建议吗?有什么我明显遗漏的吗?

【问题讨论】:

    标签: .net-3.5 reportviewer rdlc localreport


    【解决方案1】:

    如果有人最终遇到类似情况,这是我的解决方案:

    首先解释一下我的数据集:

    public Foo
    {
      string a;
      List<Bar> subInfo;
    }
    
    public Bar
    {
      string b;
      string c;
    }
    
    List<Foo> allFoos;
    

    基本上,我没有将 allFoos 对象传递给主报表,然后尝试将相应的 Bar 对象传递给子报表,而是创建了一个新对象:

    Public FooBar
    {
      string a;
      string b;
      string c;
    }
    
    List<FooBar> allFooBars;
    

    所以基本上我扁平化了数据。从那里我创建了一个报告。我添加了一个将“FooBar”作为 DataSet 的表,并传入了“allFooBars”的集合。我还在报告上创建了一个页脚,这样我就可以在所有页面上进行一致的分页。然后我使用分组将“Foo”对象保持在一起。在组上,我将“开始时分页符”和“包括组标题”和“重复组标题”选项设置为 true。然后我只是设置了组标题来伪装成我的页面标题以及组标题(基本上只有 5 行组标题,其中一个是空白的以提供一些空间)。

    基本上就是这样。

    【讨论】:

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