代码之家  ›  专栏  ›  技术社区  ›  Henry C

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

  •  1
  • Henry C  · 技术社区  · 14 年前

    我正在构建一个包含大量可以保存money值的字段的表单-出于一些奇怪的原因,我不能完全理解,InfoPath 2010没有提供现成的“decimal”或“money”字段类型。(提供的十进制类型在它旁边的括号中有(double),这表示它将使用浮点运算进行存储)。

    如果我从头创建一个xsd并使用它在InfoPath中创建一个表单,它会接受<xsd:decimal>而不会发出任何问题,但我无法再从InfoPath中添加字段,这很令人沮丧。

    因此,我的问题是,在不编写自己的xsd的情况下,是否有任何方法可以在InfoPath 2010中使用decimal/money类型?或者,是否有某种方法允许我在从xsd创建一个InfoPath表单后添加新字段?

    从XSD中“导入自定义字段类型”以便在一个InfoPath表单中反复使用的某种方法也可能解决此问题-然后我可以导入一个“customType”,它是baseType xsd:decimal,并在我的表单中重复使用它…

    2 回复  |  直到 11 年前
        1
  •  0
  •   ktharsis    14 年前

    不幸的是,它在xpath(不是特定于InfoPath/XML或MS)中是一个问题(因为缺少更好的术语)。因此,即使您找到了创建自己类型的方法,我认为只要您尝试访问并创建与现在相同的浮点问题,内部处理引擎仍然会将其转换回double。

    看看这篇文章,它使用舍入来解决(某种程度上)这个问题。这不是最优雅的解决方案,但我认为这正是您一直以来所坚持的。 http://blogs.msdn.com/b/infopath/archive/2008/04/17/invalid-data-error-when-calculating-the-result-of-2-or-more-fields.aspx

        2
  •  0
  •   Krystal    11 年前

    将您的货币字段创建为文本框。选择文本框,在“属性”中选择“字段属性”。将数据类型更改为decimal(double)。然后将数据格式(在功能区中向上)更改为数字,小数位2。像个魔咒一样工作:—)