Crystal报告是Numeric vs toNumber

时间:2015-03-31 11:39:13

标签: crystal-reports crystal-reports-xi

我正在处理一个可能是也可能不是数值的字段。如果它不是数字,我只是按原样打印,如果它是数字,我会做一些计算,所以我试过:

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中是否有“更严格”的检查?

2 个答案:

答案 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)
  )