天天看点

如何在InfoPath2010中转换主数据源

使用过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>

&lt;xs:element name="content"&gt;

  &lt;xs:complexType mixed="true"&gt;

    &lt;xs:sequence&gt;

      &lt;xs:any namespace="http://www.w3.org/1999/xhtml" processContents="lax" minOccurs="0" maxOccurs="unbounded"/&gt;

    &lt;/xs:sequence&gt;

  &lt;/xs:complexType&gt;

&lt;/ xs:element&gt;

在XSD中将节点定义为支持InfoPath的循环Section:

&lt;xs:element name="segment" maxOccurs="unbounded" minOccurs="0"&gt; 

maxOccues=unbounded表示循环没有上限(即可以在InfoPath中无限添加该节点) ;minOccurs=0允许没有该节点,如果值为1则表示该节点最少出现次数为1。

本文转自Jaxu博客园博客,原文链接:http://www.cnblogs.com/jaxu/archive/2011/10/25/2223479.html,如需转载请自行联系原作者