如何计算仅在打印时存在的字段?

时间:2019-04-02 21:41:42

标签: crystal-reports

我有可以存在于三种可能的销售组中的客户,即使他们可以被分组为多个销售组。哪种类型的销售组具有棘手的逻辑。共有三个销售组:A,B,C。只要客户属于A个销售组之一,他们就被视为A;如果客户不在A个销售组中,则他们可以同时属于B组B和C,但只有在具有C的情况下才能在C中考虑。

所以,如果我有几个客户


      销售组101(A)       销售组102(A)       销售组506(C)

乔被认为是A

汤姆      销售组307(B)      销售组101(A)

汤姆被认为是A

里克
      销售组333(B)       销售组506(C)

里克被认为是B

玛丽
     销售组506(C)

玛丽被认为是C

我该如何运行一个公式,找出它们所属的组,然后使用“运行总计”字段创建交叉表或我自己的表? (我还要提到,给销售组一个层次结构,但就本报告而言,即使层次结构中的A低于B或C,A仍被视为A)

其他需要注意的事情:

-只有一个C型销售组,每个客户只能分配一次

-只有4个A型销售组

-存在多个4类销售组,但不会将任何客户分配给超过2个或3个B类销售组。

我根据客户分组,然后在组页脚中汇总了以下公式(为每个客户重置)。我的逻辑是,由于C只能使用一次就将获得0,因为B组将只获得2或3倍,它将获得1,并且A组将得到10。因此0将产生C, 1和9将产生B,而10及以上的任何值将产生A。

详细信息

if {cust_billing.sales_group} in ["101", "102", "103", "104"] then 10
else if {cust_billing.sales_group} = "506" then 0
else 1

在页脚中

if {#RTotal0} = 0 then "C"
else if {#RTotal0} > 0 and {#RTotal0} < 10 then "B" 
else if {#RTotal0} > 9 then  "A"

我无法将第二个字段拉入交叉表或使用另一个正在运行的总计字段来对其进行计数。根据我的收集,该字段是在打印时创建的,因此无法计算。

0 个答案:

没有答案