Crystal reports 水晶中的苏米夫

Crystal reports 水晶中的苏米夫,crystal-reports,Crystal Reports,我正在开发一个数据库,它的最简单形式基本上如下所示: {阶段}{代码}{数量} 例如: {Phase}=R和{Code}=Nat=0的{Qty} {Phase}=F和{Code}=Nat=5的{Qty} {Phase}=R和{Code}=Int=10的{Qty} {Phase}=F和{Code}=Int=15的{Qty} 我试图得到一个结果来显示阶段R的数量和代码Nat,其中R为0,否则给我阶段F的数量。因此,对于上面的示例,我将得到阶段R的数量为0的Nat的答案=5,而代码为Int的答案为10

我正在开发一个数据库,它的最简单形式基本上如下所示:

{阶段}{代码}{数量}

例如:

{Phase}=R和{Code}=Nat=0的{Qty}

{Phase}=F和{Code}=Nat=5的{Qty}

{Phase}=R和{Code}=Int=10的{Qty}

{Phase}=F和{Code}=Int=15的{Qty}

我试图得到一个结果来显示阶段R的数量和代码Nat,其中R为0,否则给我阶段F的数量。因此,对于上面的示例,我将得到阶段R的数量为0的Nat的答案=5,而代码为Int的答案为10,因为阶段R的数量为0

我使用了三个公式字段来执行此操作:

1:如果{PHASE}=F和{CODE}=NAT,则{QTY}否则0

2:如果{PHASE}=R和{Code}=NAT,则{QTY}否则为0

3:如果{2}=0,则{1}否则{2}

公式字段1和2给出了正确的金额。但是,公式字段{3}返回两个阶段。例如,代码Int Phase R显示为qty=25,而不是qty=10

我该怎么做

您需要按{table.code}分组,因为这不是一个单行计算,而是需要对每个代码进行2+阶段的计算,这意味着2+行数据

创建一个包含两个变量的公式,用于存储每个阶段的值F和R。该公式需要在报告的详细信息部分中使用

whileprintingrecords;
numbervar Fqty;
numbervar Rqty;

if {table.phase}="F" then Fqty:={table.qty}
else Rqty:={table.qty};
现在,在组页脚中,您可以通过变量引用两个数量值

whileprintingrecords;
numbervar Fqty;
numbervar Rqty;

if Fqty=0 then Rqty else Fqty
你完成了。不要忘记重置组标题中的两个变量,这样就不会在不同代码之间传递数量