在InfoPath 2010中使用十进制/货币字段类型

时间:2010-11-24 21:40:21

标签: xsd infopath

我正在构建一个包含大量字段的表单,这些字段将保存货币值 - 由于某些奇怪的原因我无法理解,InfoPath 2010不提供“十进制”或“货币”字段类型使用,开箱即用。 (提供的十进制类型在其旁边的括号中有(double),它表示将使用浮点运算存储它。)

如果我从头创建一个xsd并使用它在InfoPath中创建一个表单,它接受< xsd:decimal>没有问题,但我不再能够在infopath中添加字段,这很令人沮丧。

所以我的问题是,有没有办法在InfoPath 2010中使用十进制/货币类型而无需编写我自己的xsd -or-是否有某种方法允许自己在从xsd创建InfoPath表单后添加新字段?

从xsd“导入自定义字段类型”以在infopath形式中一遍又一遍地重复使用的某种方法可能也会解决问题 - 然后我可以导入一个基类型为xsd:decimal的“customType”在我的表格中重复使用......

2 个答案:

答案 0 :(得分:0)

不幸的是,XPath中存在问题(缺少更好的术语)(不是InfoPath / XML或MS特定的)。因此,即使您想出了一种创建自己类型的方法,我认为内部处理引擎仍会在您尝试访问时创建相同的浮点问题时将其转换为双倍。

查看本文使用舍入来解决(排序)问题。不是最优雅的解决方案,但我认为就InfoPath而言,这是你所坚持的。 http://blogs.msdn.com/b/infopath/archive/2008/04/17/invalid-data-error-when-calculating-the-result-of-2-or-more-fields.aspx

答案 1 :(得分:0)

将您的货币字段创建为文本框。选择文本框并在“属性”中选择“字段属性”。将数据类型更改为十进制(双精度)。然后将数据格式(在功能区中向上)更改为数字,小数位数2.像魅力一样工作: - )