【问题标题】:This field cannot be summarized crystal report error该字段不能汇总水晶报错
【发布时间】:2012-06-11 20:12:37
【问题描述】:

我遇到了关于水晶报告的问题。我创建了一个名为 PAT_DEP 的公式字段,公式如下。

Local NUMBERVAR PAT_DEP_AMT := 0;

IF NextIsNull({MYOBJ.PAT_DEPOSIT}) = TRUE THEN
    (        
        IF {MYOBJ.PAT_DEPOSIT} = PREVIOUS({MYOBJ.PAT_DEPOSIT}) THEN
            (                
                PAT_DEP_AMT := 0;
            )

        ELSE
           (
                PAT_DEP_AMT  := {MYOBJ.PAT_DEPOSIT};
            );
    )
ELSE
    (
        IF PREVIOUS({MYOBJ.PAT_DEPOSIT}) = NEXT({MYOBJ.PAT_DEPOSIT}) THEN
            (
                PAT_DEP_AMT := ToNumber(0);
            )
        ELSE
            (
                PAT_DEP_AMT  := {MYOBJ.PAT_DEPOSIT};
            );
    )

然后我创建了另一个名为 TOT_PAT_DEP 的公式字段,公式如下,就像上面的公式字段一样。

TOTAL_PAT_DEP := SUM(@PAT_DEP)

但收到水晶报表错误此字段无法汇总水晶报表错误。请帮我看看我是怎么得到这个错误的。

【问题讨论】:

  • 你能解释一下你想用 pat_dep 实现什么吗?看起来您可能想要一个评估组变化的运行总计?
  • PAT_DEP 将包含每位患者的个人存款金额。这就是为什么我想从 PAT_DEP 获取小计和总计。
  • 为什么在 else 部分的 ) 后面加分号?为什么你只在其中一些而不是全部使用它?

标签: crystal-reports


【解决方案1】:

根据您的解释和公式,您似乎有一对多的关系,这给您带来了一些困难。举个例子:

订单表 订单编号,总计,已付款

订单商品表 订单号、行号、描述

当您加入这两个表时,您不能再对总计/已付款列求和,因为它们将乘以订单行数。

解决这个问题的方法是使用密钥创建一个组。在我的示例中,您将按订单号进行分组。然后,您可以创建一个运行总计来汇总总计/已付列,但只会评估您的 Order # 组的变化。

这有意义吗?

【讨论】:

    最近更新 更多