我创建了一个XSD,然后基于这个XSD创建了一个InfoPath表单(2010)。都很好,但是我在枚举方面有一点小问题。为了创建枚举,我创建了一个简单类型,例如:
<xs:simpleType name="weekday">
<xs:restriction base="xs:string">
<xs:enumeration value="MA"/>
<xs:enumeration value="DI"/>
<xs:enumeration value="WO"/>
<xs:enumeration value="DO"/>
<xs:enumeration value="VR"/>
<xs:enumeration value="ZA"/>
<xs:enumeration value="ZO"/>
</xs:restriction>
</xs:simpleType>
当我在InfoPath中创建一个下拉菜单时,它会自动创建一个包含这些值和一个显示名为"Select…"的空值的下拉菜单。但是,我希望"Select…"是荷兰语的翻译,即"Selecteer…"。当我改变选择值时,我得到错误"指定的值是无效的"(即使我什么都没改变)
我也遇到过同样的问题,如果不编辑原始xsd,就找不到简单的解决方法。
什么不适合我:
- 通过属性窗口修改"Select…"选项
- 试图欺骗InfoPath通过交换绑定源到一个不同的(可空的)字段,然后改变"选择…"文本,然后交换绑定回来(InfoPath恢复文本回到原来的值!)
我能找到的最不坏的解决方案是:
- 添加一个空白枚举到你的Weekday xsd类型:
<xs:enumeration value=""/>
- 在Data选项卡中,刷新字段以利用新的xsd
- 然后在下拉菜单中添加一个新的验证规则,以确保选择Weekday值;即条件:"is blank",屏幕提示:"Cannot be blank"。
在您的下拉菜单中,您现在可以修改"Select…"显示文本到您想要的内容,同时保留工作日作为必填字段。
如果您确实需要,那么您可以将xsd还原为其原始格式,刷新字段,并删除规则....下拉框仍将保留您自定义的默认文本。