报告的一些背景知识:这是一份为在我们公司工作的员工提供的生产力报告。我们根据与客户进行访问的持续时间来确定他们的生产力。我们的一些员工提供小组会议。他们向组内的每个客户收费,即使他们只提供例如一小时的服务,但如果组中有 10 人,他们可以按 10 小时计费。我们通过服务代码确定他们提供的服务。
所以,我在这个公式中有两个字段,一个服务代码字段和一个持续时间字段。
持续时间字段最初是数据库中的 STRING 字段,即使它只提供数字数据,所以我将其更改为 numberVar。服务代码字段也是一个字符串字段,它有时确实包含字符和数字。
我需要 Crystal Reports 做的是计算持续时间的总和。但是,如果服务代码是“1000”,则它必须先将持续时间除以 3,然后再对其求和。这就是我被抓住的地方。
这是我的持续时间代码:
local numbervar num1;
If GroupName ({billing_tx_charge_detail.v_SERVICE_CODE})="1530" then
num1 := ToNumber({billing_tx_charge_detail.v_duration})/3
else num1 := ToNumber({billing_tx_charge_detail.v_duration})
然后我为总和做一个单独的公式,名为 sumDuration:
Sum(@duration)
我收到无法汇总此字段的错误。在谷歌搜索了两天后,我发现 Crystal 无法汇总涉及常量的字段或公式。如果我简单地说:
local numbervar num1;
num1 := ToNumber({billing_tx_charge_detail.v_duration})
然后我可以总结@duration。我错过了什么?它必须是简单的东西,但我只是没有看到它。有没有办法创建一个自定义函数来完成我想要在这里实现的目标?还是比这更简单?
有人建议创建一个 SQL 命令,以便在数据到达报告之前进行计算。我是一个 SQL 新手,所以我什至不知道从哪里开始。