Crystal reports Crystal reports是数字vs toNumber
我处理的字段可能是数值,也可能不是数值。如果它不是数值的,我将按原样打印它,如果它是数值的,我将对它进行一些计算,所以我尝试:Crystal reports Crystal reports是数字vs toNumber,crystal-reports,crystal-reports-xi,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); 但我最终得到了一个非数字字符串。最
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中有更严格的检查吗?您的陈述是错误的。。。您首先分配,但如果字符串是数字,则根据您的要求分配。所以像这样改变
Local StringVar TxtUnct;
Local NumberVar Result := 0;
if not(isNumeric(TxtUnct))
Then
(
TxtUnct :={RESULT.ATTRIBUTE_1};
);
Local NumberVar unct :=ToNumber(TxtUnct)
我认为你把所有这些局部变量都复杂化了。您可以通过一个简单的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)
)
公式只能有一种数据类型。。。在一种情况下它不能是字符串,在另一种情况下它不能是数字。这只是它的一部分,我最终在所有情况下都返回一个字符串。