动态分组Crystal Reports 9

时间:2010-09-02 18:56:10

标签: crystal-reports

我有一个水晶报表,其报表参数可以是1到100之间的值。 如果该值小于50,我需要按CustomerID分组。如果该值大于50,我需要按OrderID进行分组。

我一直在网上搜索如何做到这一点,我遇到了几个链接,说这可以通过一个公式来完成。所以在公式中我有:

if {ReportParameter} < 50 then
    {TableName.CustomerID}
else
    {TableName.OrderID}

我手动创建了一个正确筛选数据的组,但是当我将公式拖到分组的类别中时,它对我不起作用。

我还缺少一个额外的步骤吗?

2 个答案:

答案 0 :(得分:1)

好的,我最后这样做了:

我定义了公式,但我没有将组链接到公式。所以我回到了Group Header&gt;更改组&gt;更改群组选项&gt;选项标签

并指出我的公式的名称,它起作用了。

我认为通过将公式添加到组标题中,CR会自动将我的公式与组标题相关联。 DOH !!!

答案 1 :(得分:0)

我有几种方法可以解决这个问题......

  1. 如果我正确理解您的后续评论,您所做的只是更改组的显示名称,您实际上并未更改分组。我自己试过这个只是为了确保这就是我的样子。

  2. 第二,(如果我错了,有人纠正我),你不能分组公式。我也在CR2010中尝试了这个并且无法做到。编辑从头开始。瑞安是对的。我错了)

  3. 我建议使用报告 - &gt; 群组专家查看分组的位置。默认情况下,它也应该在您的工具栏上。
  4. 我可以考虑设置报告的两种方法,使这个问题无效:

    1. 制作2个单独的报告,每个视图1个。适当设置选择标准
    2. OR

      1. 制作1份主报告。设置您的论坛,信息页和报告标题&amp;在这里的页脚。在数据进入Crystal之前,创建一个字段作为您的“索引”(可能使用您列出的公式)并对其进行分组。
      2. 创建2个详细信息小节。如果您想更改群组的标签,只需拖放即可。将公式字段拖放到组标题上。
      3. 如果{ReportParameter}&lt; 50.在那里创建一个子报告,并按{OrderID}。
      4. 对子报告进行分组
      5. 如果{ReportParameter}&gt;,请取消第二小节。 50.在那里创建一个子报告,并按{CustomerID}。
      6. 对该子报告进行分组