评估文本到十进制问题(EVALUATE Navision)

时间:2017-01-27 14:06:35

标签: microsoft-dynamics evaluate navision

我在尝试将文本评估为十进制时遇到问题。 首先,我正在做一个值之间的提取; NAV中字段的符号(字段为Text类型)

My field value is: 9 469;2 178;0;-1 000;0;0;0;37 994,96;1 000;0;0;0;493,4;0;0;0;

提取时,它变为:

Example: 
9 469
2 178
-1 000
etc..

提取后,我需要将文本转换为小数:

CodeConvert := '9 469'

EVALUATE(Primo,DELCHR(CodeConvert,'=',' '));

但在进行评估时,我收到的错误信息是:

  

Microsoft Dynamics NAV

     

无法将值“9 469”计算为十进制类型。

     

---------------------------确定

3 个答案:

答案 0 :(得分:1)

我找到了这个问题。实际上有一个特殊字符,NAV以小数形式插入空格。如果您使用delchr并且在视觉上它是一个空格''并且它没有删除。

然后你最好的朋友是记事本。提取记事本上的值并复制&将间距''粘贴到您的delchr函数。结论,它不是一个空间被添加而是一个特殊的角色,因为它看起来像一个空间,第一印象是它是一个空间:)

对我这样的工作!

答案 1 :(得分:0)

我试试这个并且在NAV 2009,2013,2015和2016中工作正常,这是我的代码:

CodeConvert := '9 469;2 178;0;-1 000;0;0;0;37 994,96;1 000;0;0;0;493,4;0;0;0;';
CodeConvert := COPYSTR(CodeConvert, 1, 5);
EVALUATE(Primo, DELCHR(CodeConvert, '=', ' '));
MESSAGE(FORMAT(Primo));

尝试使用此代码并使用调试程序逐步查看:

CodeConvert := '9 469;2 178;0;-1 000;0;0;0;37 994,96;1 000;0;0;0;493,4;0;0;0;';
CodeConvert := COPYSTR(CodeConvert, 1, 5);
CodeConvert := DELCHR(CodeConvert, '=', ' '); //here your breakpoint
EVALUATE(Primo, CodeConvert);
MESSAGE(FORMAT(Primo));

答案 2 :(得分:0)

如您所见,EVALUATE函数打破了“9 469”值。

但是DELCHR应该在调用EVALUATE之前移除空格。

它只表示您的值和delchar中的空格符号不同。

选择并将“9 469”中的符号复制到DELCHAR中的第三个参数。