如何在InfoPath2010中转换主数据源

简介:

使用过InfoPath2007的人应该都知道,我们在设计或编辑一个InfoPath表单时,除了可以在设计界面的同时构建主数据源外,还可以事先将编辑好的主数据源XSD文件导入到InfoPath中,然后根据数据源的结构来设计表单界面。下面是这两种方法的一些简单介绍:

1. 在设计表单界面的同时构建主数据源

2011-10-25 10-20-11

打开InfoPath,在New菜单中选择Blank Form(界面和菜单的位置与InfoPath2007稍有不同)。InfoPath会打开一个空白的设计界面,你可以在里面任意设计界面布局和添加控件(InfoPath2010提供了一些现有的界面模板可以直接套用),在添加控件的同时InfoPath会同时为你生成对应的主数据源(在界面右边的Fields面板中)。这时的主数据源结构是可以手动编辑的,你可以修改主数据源中节点的名称和属性等,以及节点的位置。

2011-10-25 10-26-25

2. 创建XSD文件并导入到InfoPath中

InfoPath的一个最主要的用途就是在线收集以固定格式定义的XML数据文件。我们将定义好的InfoPath模板发布到网络上的一个公共位置,用户下载并使用这个模板填写数据并最终生成对应格式的XML文件。既然InfoPath模板规定了最终要生成的XML文件的结构,那么我们在设计InfoPath模板之前便可以确定好XML的结构。XML的结构定义是由XSD文件来规定的,编写XSD文件的一个最简单的方法就是事先在Visual Studio中手动将XML结构编写好,然后在XML菜单中选择Create Schema,Visual Studio会自动为你生成对应的XSD文件。当然,你可能还需要知道一些有关XSD的知识以防在必要的时候手动修改XSD文件,例如让XSD的结构在InfoPath中支持Rich TextBox控件,以及支持InfoPath的循环节点等。有关如何定义XSD文件,可以参考W3schoolSchema教程

2011-10-25 10-38-04

然后我们将定义好的XSD文件导入到InfoPath中。在InfoPath2007中,我们通过Tools菜单的Convert Main Data Source…菜单导入XSD文件,如下图:

2011-10-25 9-43-30

但是在InfoPath2010中,没有Tools菜单,那又该如何执行该操作呢?InfoPath2010中,在Data菜单下可以找到Refresh Fields,该菜单的功能既是InfoPath2007中的Convert Main Data Source菜单的功能。

2011-10-25 10-48-26

注意,使用XSD文件作为数据源导入到InfoPath之后,不能再在InfoPath中修改该主数据源的结构,如要修改主数据源的结构,必须修改原始的XSD文件然后再重新导入。

 

在XSD中将节点定义为支持InfoPath的Rich TextBox控件:

复制代码
< 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,如需转载请自行联系原作者


相关文章
|
1月前
|
SQL 流计算 OceanBase
OceanBase CDC从热OB库采集过来的Tinyint(1)类型会默认转换成Boolean,请教一下,如果想转换成int类型,有什方法么?
【2月更文挑战第25天】OceanBase CDC从热OB库采集过来的Tinyint(1)类型会默认转换成Boolean,请教一下,如果想转换成int类型,有什方法么?
27 3
|
SQL 数据库
传递给数据库 'model' 中的日志扫描操作的日志扫描号无效
原文:传递给数据库 'model' 中的日志扫描操作的日志扫描号无效 状况描述:在服务器的管理中重新启动MSSQLSERVER启动后马上又停止   通过"事件查看器" 发现 错误: 9003,严重度: 20,状态: 1 LSN(5:324:1)无效。
3065 0
|
6月前
|
大数据 数据库 流计算
Flink CDC(Change Data Capture)是一种从数据库中捕获数据变化并将其转换为可用于处理的数据的方法
Flink CDC(Change Data Capture)是一种从数据库中捕获数据变化并将其转换为可用于处理的数据的方法
52 1
|
2月前
|
Oracle 关系型数据库 数据库
Flink Sink to Oracle 存在字段CLOB类型,如何处理错误”ORA-01461: 仅能绑定要插入LONG的LONG值“
做Flink CDC同步数据过程中,目标是Oracle数据库,其中某个字段较大被设置为CLOB类型,其中会遇到异常,”ORA-01461: 仅能绑定要插入LONG的LONG值“
|
8月前
PADS新建封装中焊盘部分修正(二)
按照同样的方法添加助焊层底层(Paste Mask Bottom),如下图所示:
69 0
|
数据安全/隐私保护
批量注册图片,可以根据需要修改data,base64编码
批量注册图片,可以根据需要修改data,base64编码
94 0
批量注册图片,可以根据需要修改data,base64编码
|
弹性计算 监控 NoSQL
标记 (TAG) 您的 HBASE 数据库实例
为了方便管理阿里云 HBase 资源,您可以选择通过标签的形式为每个资源分配您自己的元数据。本主题介绍标签并说明如何创建标签。
956 0
标记 (TAG) 您的 HBASE 数据库实例
|
弹性计算 自然语言处理 NoSQL
标记(TAG)您的MongoDB数据库实例
为了方便管理阿里云MongoDB数据库实例,您可以选择通过标签的形式为每个资源分配您自己的元数据。本主题介绍标签并说明如何创建标签。
1815 0
 标记(TAG)您的MongoDB数据库实例