在Crystal Reports中将字符串转换为整数

3

我需要将一个实际上是整数的字符串作为索引,用于访问Crystal Reports数组。

Global StringVar Array countryArray := ["UNITED STATES", "FRANCE", "ENGLAND", "CANADA"]

countryArray [ {myNumericField} ]  <-- how do I get this to be an integer, not float

{myNumericField}实际上是一个字符串,它从数据库中以这种形式出现。我试图将其转换为数字。然而toNumber()和val()无法工作,因为Crystal创建的数字是浮点数。例如,如果字符串是"2",则toNumber()和val()都会使它变成2.00,不能用作数组的索引。

我尝试过使用toText但是,Crystal表示数组的索引必须是一个数字。如何使{myNumericField}被用作countryArray的索引呢?

解决方法经过深入调查,Crystal抛出索引必须是数组下标的错误,因为其中一个记录是"0"。Crystal数组不从零开始,而是从一开始。接受答案中的两种方法都有效。

1个回答

13

就像这样做:

tonumber({myNumericField})

这是一个例子,它将返回2.00

或者

INT(tonumber({myNumericField}));

这个例子将返回2

这将允许您将字符串转换为数字格式。


我尝试过这个,但是toNumber创建的数字不能用作数组的索引。如果字段为2,则toNumber会创建2.00,而Crystal不喜欢这样。 - S.Mason
将以下程序相关内容从英语翻译成中文。只返回已翻译的文本:在将 {myNumericField} 转换为数字后,在您的 CR 报告页上拖动它进行测试,然后单击您创建的公式 > 格式化对象 > 数字 > 选择 (1123) 然后 > ok。它将显示 2 的返回值,而不是 2.00。 - Vijunav Vastivch
正如@reds在他的答案中提到的那样,将tonumber()函数的结果放入Int()函数中。 - jambonick

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接