0

第一次尝试用 Crystal Reports 编程。我正在尝试写一个足够简单的。有不同的字段组合在一起,我计划在每个组上运行公式。下图中是一个组的示例。

举报图片

20.00图像右上角突出显示的是shipctns. 我的公式是

Local NumberVar RTotal := 0;
Local NumberVar diff := 0;
While RTotal <  {@shipctns} DO
(
 If ({@pickctns} <  {@shipctns}) AND (RTotal + {@pickctns} < {@shipctns}) THEN
    "Pick";
    RTotal := RTotal + {@pickctns};
 Else If  {@pickctns} <  {@shipctns}  THEN
    "Pick " & ({@shipctns} - RTotal);

 Else
    "Don't Pick"
); 

该公式仍在进行中。就是Pick Ctns在每组里过一遍,说挑这个金额补上shipctns金额。Pick Ctns如果太大,只选择最后的一部分,然后停止。

我的问题是我无法真正测试公式,因为我在Else If说“The ) is Missing”时遇到了错误。我真的不知道水晶报表所以我在这里做错了什么?

4

1 回答 1

1

您需要用括号将多个语句括在thenorelse块中。

从水晶报表文档:

If 语句的正确 Crystal 语法是if <condition> then <then> else <else>, where <condition>, <then>, and<else>都是单个表达式。如果<then> or后面有多个表达式<else>,请将它们括在括号中,将它们转换为单个表达式。

你的公式应该是这样的

...
If ({@pickctns} <  {@shipctns}) AND (RTotal + {@pickctns} < {@shipctns}) THEN
(
    "Pick";
    RTotal := RTotal + {@pickctns};
)
Else If  {@pickctns} <  {@shipctns}  THEN
    "Pick " & ({@shipctns} - RTotal);
Else
...
于 2017-08-30T07:45:17.633 回答