我在Crystal Report公式中始终收到错误消息“此处需要字符串”。突出显示的部分是“其他”部分,表明这是错误所在。我已经尝试了括号的许多不同变体,没有括号,分号,等等……有时我会得到一个不同的错误,但似乎没有任何作用。
Local stringVar outputString := "";
if isNull({Evaluation.Strategic}) then
(
outputString := "None"
)
else
(
stringVar array x := split({Evaluation.Strategic},"|");
Local numberVar i;
For i:=1 to Count(x) do
(
outputString := outputString + x[i] + Chr(10)
)
);
outputString;
谁能给我指出正确的语法来完成我想做的事情?我在网上找到的所有样本(if-else块中很少有多行)建议这样做。
谢谢
基于以下两个站点,我真的认为您可以在if-else中包含多个语句,但是我没有尝试过。
http://www.kenhamady.com/formulas/form08.shtml
我最终通过将逻辑重构为如下所示来使其工作。这有点笨拙,但它使CR编译器满意。
//Syntactically correct - this worked:
//-------------------------------------
Local stringVar outputString := "";
stringVar array x := "";
Local numberVar i;
If isNull({Evaluation.Strategic}) Then
(
x := ""
)
Else
(
x := split({Evaluation.Strategic},"|");
);
If x <> "" Then
(
For i:=1 to Count(x) do
(
outputString := outputString + x[i] + Chr(10)
)
)
else
(
For i:=1 to Count(x) do
(
outputString := "None";
);
);
outputString;
编辑:另一个网站建议您在If中可以包含多个语句:https : //msdn.microsoft.com/zh-cn/library/ms225356(v=vs.80).aspx