我在尝试将文本评估为十进制时遇到问题。 首先,我正在做一个值之间的提取; 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”计算为十进制类型。
---------------------------确定
答案 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
中的第三个参数。