【问题标题】:Is there some way of recycling a Crystal Reports dataset?有没有办法回收 Crystal Reports 数据集?
【发布时间】:2010-09-05 17:43:40
【问题描述】:

我正在尝试编写一个水晶报表,它的汇总方式与主报表不同。到目前为止,我能够做到这一点的唯一方法是使用总计的子报表,但这意味着必须再次点击数据源来检索相同的数据,这似乎是无稽之谈。这是一个简化的示例:

       date   name   earnings   source          location
-----------------------------------------------------------
12-AUG-2008   Tom      $50.00   washing cars    uptown
12-AUG-2008   Dick    $100.00   washing cars    downtown     { main report }
12-AUG-2008   Harry    $75.00   mowing lawns    around town

                    total earnings for washing cars: $150.00 { subreport }
                    total earnings for mowing lawns:  $75.00

       date   name   earnings   source          location
-----------------------------------------------------------
13-AUG-2008   John     $95.00   dog walking     downtown
13-AUG-2008   Jane    $105.00   washing cars    around town  { main report }
13-AUG-2008   Dave     $65.00   mowing lawns    around town

                    total earnings for dog walking:   $95.00
                    total earnings for washing cars: $105.00 { subreport }
                    total earnings for mowing lawns:  $65.00

在此示例中,主报表按“日期”分组,但总计另外按“来源”分组。我查找了使用运行总计的示例,但它们并没有真正满足我的需要。难道没有某种方法可以存储结果集并让主报表和子报表引用相同的数据吗?

【问题讨论】:

    标签: asp.net crystal-reports dataset


    【解决方案1】:

    嗯...就像从报告中调用存储的过程并将其全部包含在一个位置一样好,但是我们发现(像您一样)您最终达到了无法获得水晶的地步即使数据就在那里,也可以做你想做的事。

    我们最终引入了位于报表下方的业务层,而不是从报表中“提取”数据,而是将数据集“推送”到它并将数据绑定到报表。优点是您可以在数据集或对象中的代码中操作数据,然后再将其绑定到报表中。

    This article 很好地介绍了如何设置将数据推送到报告中。我了解您的时间/业务限制可能不允许您这样做,但如果可能的话,我强烈推荐它,因为这意味着我们可以从我们的报告中删除所有“编码”并进入托管代码,这总是好东西。

    【讨论】:

      【解决方案2】:

      我能想到的唯一方法是创建一些公式来计算每个组的运行总计。我假设您在使用现有运行总计时遇到的问题是它们旨在跟踪它们总计的每个组。由于您似乎希望在所有“原始”数据之后跟随小计,因此这是行不通的。

      如果您为每个组创建自己的公式,只需将与组匹配的行的总数相加,您应该能够将它们放在报告的末尾。这种方法的缺点是生成的小计与组的关系不是动态的。换句话说,如果您有一个新的“来源”,在您添加它之前它不会显示在小计中,或者如果您没有“遛狗”数据,您仍然会有一个小计。

      【讨论】:

        猜你喜欢
        • 2011-07-20
        • 1970-01-01
        • 1970-01-01
        • 2011-04-20
        • 2010-10-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多