2015-03-31 89 views
0

我正在处理可能或可能不是数值的字段。如果不是,数字,我就打印原样,如果是数字,我会做一些关于它的计算,所以我尝试:水晶报告是数字与数字

Local StringVar TxtUnct := {RESULT.ATTRIBUTE_1}; 
Local NumberVar Result := 0; 
if not(isNumeric(TxtUnct)) Then(
    TxtUnct 
); 
Local NumberVar unct :=ToNumber(TxtUnct); 

但我结束了一个“字符串非数字“。为最后一行。显然,它看起来是数字的,但不是ToNumber。 Crystal Reports中是否有任何“更严格”的检查?

+0

一个公式只能有一个数据类型......它不能是一个字符串和另一个数字。 – Ryan 2015-03-31 12:57:49

+0

这只是它的一部分,我最终在所有情况下返回一个字符串。 – MortenSickel 2015-03-31 13:15:20

回答

0

您的表示方法错误...您首先要进行分配,但根据您的要求分配字符串是否是数字。所以像这样改变。

Local StringVar TxtUnct; 
Local NumberVar Result := 0; 
if not(isNumeric(TxtUnct)) 
Then 
(
    TxtUnct :={RESULT.ATTRIBUTE_1}; 
); 
Local NumberVar unct :=ToNumber(TxtUnct) 
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) 
)