创建依赖于RunningTotal

时间:2019-01-28 14:41:02

标签: crystal-reports formula

我正在研究在Crystal Reports中创建的发票上使用的措词。我有很多条件要显示不同的文本,上周当我使用数据库中以前处理的订单对其进行测试时,它可以正常工作,但是现在,在新订单上,它似乎不起作用,并且我不知道为什么。

我检查了方括号,并认为它们都在正确的位置,但远非专家。

WHILEPRINTINGRECORDS;
IF {OrderValue} >= 0.01 THEN "Thank you for your payment."
ELSE IF (({OrderValue} = 0.00) AND ({@RunningTotalQuantity} = 1) AND NOT 
({Decription} LIKE ["Condition1*", "Condition2*"])) THEN "Text1 Singular."
ELSE IF (({OrderValue} = 0.00) AND ({@RunningTotalQuantity} > 1) AND NOT    
({Decription} LIKE ["Condition1*", "Condition2*"])) THEN "Text Plural."
ELSE IF (({OrderValue} = 0.00) AND ({@RunningTotalQuantity} = 1) AND 
({Decription} LIKE ["Condition1*"]) THEN "Text2 Singular."
ELSE IF (({OrderValue} = 0.00) AND ({@RunningTotalQuantity} > 1) AND 
({Decription} LIKE ["Condition1*"]) THEN "Text2 Plural."
ELSE IF (({OrderValue} = 0.00) AND ({@RunningTotalQuantity} = 1) AND 
({Decription} LIKE ["Condition2*"]) AND ({Country} IN ["A", "B", "C")) 
THEN "Text3 Singular"
ELSE IF (({OrderValue} = 0.00) AND ({@RunningTotalQuantity} > 1) AND 
({Decription} LIKE ["Condition2*"]) AND ({Country} IN ["A", "B", "C")) 
THEN "Text3 Plural"
ELSE IF (({OrderValue} = 0.00) AND ({@RunningTotalQuantity} = 1) AND 
({Decription} LIKE ["Condition2*"]) AND NOT ({Country} IN ["A", "B", "C")) 
THEN "Text4 Singular"
ELSE IF (({OrderValue} = 0.00) AND ({@RunningTotalQuantity} > 1) AND 
({Decription} LIKE ["Condition2*"]) AND NOT ({Country} IN ["A", "B", "C")) 
THEN "Text4 Plural"

该公式适用于订单具有值的条件,并且可以标识Condition1和Condition2 OK,但始终只显示单数形式的文本,而不显示复数形式。

这使我认为可能与RunningTotal字段有关,但是当我在报表中包括该字段时,它计算正确,因此对所有订单行的数量求和;即使代码肯定是引用RunningTotal字段,它也并没有选择该数字,而是在第一条详细信息行中查看了数量。

我想知道这是否与未完全保存到数据库中的订单有关(即,它位于订单批次中,没有竞争),因为SectionExpert中的Supression公式现在也无法处理一些命令,如果有多个页面,我只希望将报告的一部分打印在报告的第一页上:

WHILEPRINTINGRECORDS;
NOT (OnLastRecord OR {OrderDetail.HeaderLink}<>next({OrderDetail.HeaderLink}))
AND NOT ({Description} LIKE ["Condition2*"])

如果您有任何想法,我将非常感谢。

0 个答案:

没有答案