我正在处理一个可能是也可能不是数值的字段。如果它不是数字,我只是按原样打印,如果它是数字,我会做一些计算,所以我试过:
Local StringVar TxtUnct := {RESULT.ATTRIBUTE_1};
Local NumberVar Result := 0;
if not(isNumeric(TxtUnct)) Then(
TxtUnct
);
Local NumberVar unct :=ToNumber(TxtUnct);
但我最终得到一个“字符串是非数字的”。为最后一行。很明显,它看起来是数字的isNumeric,但不是ToNumber。 Crystal Reports中是否有“更严格”的检查?
答案 0 :(得分:0)
您的陈述是错误的......您首先分配但是根据您的要求分配字符串是否为数字。所以这样改变。
Local StringVar TxtUnct;
Local NumberVar Result := 0;
if not(isNumeric(TxtUnct))
Then
(
TxtUnct :={RESULT.ATTRIBUTE_1};
);
Local NumberVar unct :=ToNumber(TxtUnct)
答案 1 :(得分:0)
我认为你只是将它与所有这些局部变量过于复杂化。您可以使用简单的if-then-else
语句完成此操作。
local numbervar workingNumber;
if not(isNumeric({RESULT.ATTRIBUTE_1}) then {RESULT.ATTRIBUTE_1}
else
(
workingNumber:=toNumber({RESULT.ATTRIBUTE_1};
//do your numeric calculations on workingNumber here
toText(workingNumber)
)