使用过InfoPath2007的人应该都知道,我们在设计或编辑一个InfoPath表单时,除了可以在设计界面的同时构建主数据源外,还可以事先将编辑好的主数据源XSD文件导入到InfoPath中,然后根据数据源的结构来设计表单界面。下面是这两种方法的一些简单介绍:
1. 在设计表单界面的同时构建主数据源
<a href="http://images.cnblogs.com/cnblogs_com/jaxu/201110/201110251053029166.png"></a>
打开InfoPath,在New菜单中选择Blank Form(界面和菜单的位置与InfoPath2007稍有不同)。InfoPath会打开一个空白的设计界面,你可以在里面任意设计界面布局和添加控件(InfoPath2010提供了一些现有的界面模板可以直接套用),在添加控件的同时InfoPath会同时为你生成对应的主数据源(在界面右边的Fields面板中)。这时的主数据源结构是可以手动编辑的,你可以修改主数据源中节点的名称和属性等,以及节点的位置。
<a href="http://images.cnblogs.com/cnblogs_com/jaxu/201110/201110251053247084.png"></a>
2. 创建XSD文件并导入到InfoPath中
<a href="http://images.cnblogs.com/cnblogs_com/jaxu/201110/201110251053321497.png"></a>
然后我们将定义好的XSD文件导入到InfoPath中。在InfoPath2007中,我们通过Tools菜单的Convert Main Data Source…菜单导入XSD文件,如下图:
<a href="http://images.cnblogs.com/cnblogs_com/jaxu/201110/201110251053508711.png"></a>
但是在InfoPath2010中,没有Tools菜单,那又该如何执行该操作呢?InfoPath2010中,在Data菜单下可以找到Refresh Fields,该菜单的功能既是InfoPath2007中的Convert Main Data Source菜单的功能。
<a href="http://images.cnblogs.com/cnblogs_com/jaxu/201110/201110251054267558.png"></a>
注意,使用XSD文件作为数据源导入到InfoPath之后,不能再在InfoPath中修改该主数据源的结构,如要修改主数据源的结构,必须修改原始的XSD文件然后再重新导入。
在XSD中将节点定义为支持InfoPath的Rich TextBox控件:
<a></a>
<xs:element name="content">
<xs:complexType mixed="true">
<xs:sequence>
<xs:any namespace="http://www.w3.org/1999/xhtml" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</ xs:element>
在XSD中将节点定义为支持InfoPath的循环Section:
<xs:element name="segment" maxOccurs="unbounded" minOccurs="0">
maxOccues=unbounded表示循环没有上限(即可以在InfoPath中无限添加该节点) ;minOccurs=0允许没有该节点,如果值为1则表示该节点最少出现次数为1。
本文转自Jaxu博客园博客,原文链接:http://www.cnblogs.com/jaxu/archive/2011/10/25/2223479.html,如需转载请自行联系原作者