InfoPath进阶之一:前言及简单读取SQL或列表的数据
前言:
笔者认为InfoPath,它是一个划时代的产品,它把表单设计,从原始的代码设计中独立出来,让表单也成为一种,数据形式而不是程序的附属物。
InfoPath进阶系列是我在设计InfoPath表单中,总结出来的几个重要的方面,其中包括简单读取SQL或列表数据、使用SQL语句来读取SQL数据、使用WebService来读取列表数据、写重复表的数据到SQL、读SQL到重复表。
这个进阶系列可以让读者使用几篇精华文章就可以自由驾驭InfoPath、SharePoint列表与SQL Server的互操作。
必备的技能:
读本系列的文章,必须要对InfoPath有一个基本的入门了解,要会使用InfoPath制作简单的表单模板。
必须安装的软件:
VSTA,这个组件在默认安装Office 时,是不被安装的。但这个可以在OFFICE 2007的安装包中找到,打开OFFICE 2007的安装程序,在INFOPATH那一节里,可以找到相关安装程序,这里不再继续赘述。
SQL Server , 为了方便调试程序,你可以安装一个Express版本的,如果你已经安装了SharePoint 2007,它就会自动安装一个EXPRESS版本的SQL。 你可以在微软的官方网站中,下载一个 Sql Server Management Studio,用来连接和管理数据库。
一、简单读取SQL或列表数据
示例:如何使用InfoPath取一个SharePoint列表中所有数据,和SQL表中所有数据。
本节的目的,不是让读者简简单单的去从一个Sharepoint列表或是一个SQL表取一栏数据出来,当成一个下拉框的选项。而是教给读者更多的概念,让读者可以自由根据定义,方便读者理解更多的概念。
重要概念:数据源与数据连接
在InfoPath的表单模板中,我们可以定义2个很重要的概念:数据源与数据连接。
数据源:在默认没有外部连接的情况下,InfoPath模板会自定义一个主数据源,这个数据源叫MainDataSource,它是以my这个前缀开头的。如果保存表单数据,就意味着,只保存这个主数据源的数据。 其它任何定义的数据源,都叫辅助数据源,这就意味着,其它数据源只有在表单“运行”期间才有数据,一旦这个表单关闭保存,它就消失在内存中。
数据连接: 你可以定义很多数据连接,比如从XML文件,从SQL,从列表等等,一旦这个数据连接被执行,它就会产生一个数据源与这个数据连接相对应。
PS重要说明:本示例在本机上运行没有问题,但是如果把模板发布到网站上,使用基于浏览器的Forms Service时,要注意权限的问题,请确保您的IIS应用程序帐户可以读取、更新和写入您本地的SQL数据库。
1 定义一个表单,如下图:
其中申请部门,是需要从一个名叫:部门人员的SharePoint列表中取数据的。
2 创建一个示例的部门列表
如下图,创建一个自定义列表,只有2栏,姓名与部门,填上如下示例数据,其中姓名一栏是从“标题”改过来的。
3 创建到列表的数据连接:
1) 点击“数据源”面板上的“管理数据连接”,然后点击添加,如下图选择:
2) 然后如下图,选择SharePoint列表:
3)然后输入一个SharePoint网站的网址,就进入了列表选择界面,如下图选择部门人员:
4)选择域:
如下图只选择部门,
5) 点击下一步,最后如下图时,按如下图选择,因为我们希望打开表单时就把部门填充上。
4. 设置下拉框的属性:
如下图设置下拉框的属性:
必须要勾上,仅显示具有唯一显示名称的条目。 因为部门的值是重复的,不勾上就会产生重复的值。
5 . 运行时的界面:
6 创建一个SQL的表,我们来试试从SQL中读取数据,如下图创建一个表,数据可以从SharePoint列表中拷过来。
1)首先创建一个数据库,这个数据库我们可以叫它DEMO
2)然后创建一个表,命名为部门人员,这个表有2个字段,姓名和部门,如下图:
3)填入示例数据,数据可以从SharePoint列表中copy过来。
7 在InfoPath中创建一个SQL数据连接
1) 设置一个“仅接受数据的”连接
2) “从何处接受数据”,如下图选择:
3) 配置数据连接文件:
点击“选择数据库”,来配置一个连接文件
4)在配置源中,选择“新的SQLServer”连接
填入本机的服务器名称,这里是OSS,要换成你自己的服务器名称
选择数据库,就选择刚才我们才创建的,demo
5) 完成后,就可以在如下对话框中,看见,这一次我们2个字段都选上:
6)直接点击下一步,直至完成,最后如下,因为之前有了一个数据连接,所以这个数据连接被自动命名为部门人员 2
7)重新设置下拉框,为SQL数据源:
8) 预览一下,效果一样: