一、环境:
虚拟机 Win2003+MoSS2007中文版+Office 2007中文版本。
如果要在VS2005中开发Infopaht2007,需要安装VSTO+2005+SE.exe。该文件大小为7.7M。下载地址是:
http://dl2.csdn.net/fd.php?i=18101972362479&s=63351938b1fb3bdfe33b8fedddd8c3cf。
下载完毕后安装VSTO+2005+SE.exe。
二、设计InfoPath表单
1、建立项目:打开VS2005,新建一个项目InfoPathFormTest1。在新建项目对话框中选择“Office--Infopath表单模板”.如图:
在接下来的设置表单模板中,选择“空白”。注意要把下面的“仅启动浏览器兼容性功能”前面的勾去掉。否则你设计的表单将不能添加后台的代码。
界面如下:
添加项目的后资料管理器包括很多的文件,如下:
2、添加控件:
在空白的表单上添加两个文本框控件和一个按钮。文本框用于输入姓名和QQ号。按钮用于保存到数据库中。
添加后的设计界面如下:
双击“保存”按钮即可添加后台代码了。
三、添加代码:
将两个文本框的名字分别改为textbox1和textbox2。
1、在项目中添加一个用于提交数据的类:InsertToTable.cs。源代码如下:
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
namespace InfoPathFormTest1
{
public class InsertToTable
{
public static void Insert_Stu(string strName,string strQQ)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("Insert into t_student(stu_name,stu_QQ) values ('");
strSql.Append(strName+"',");
strSql.Append("'"+strQQ+"'");
strSql.Append(")");
System.Data.SqlClient.SqlConnection conn = new SqlConnection("Data Source=MOSS\\OFFICESERVERS;Initial Catalog=MytestDB;Integrated Security=True");
try
{
conn.Open();
System.Data.SqlClient.SqlCommand comm = new SqlCommand(strSql.ToString(), conn);
comm.ExecuteNonQuery();
//return strStatus;
}
catch
{
//strStatus = err.Message.ToString();
// return strStatus;
}
finally
{
conn.Dispose();
conn.Close();
}
}
}
}
2、给保存按钮添加代码如下:
public void CTRL3_5_Clicked(object sender, ClickedEventArgs e)
{
//说明:控件的定义在XML文件InfoPathFormTest1\InfoPath Form Template\template.xml中定义。
// 当前程序的XML文件如下:
// <?xml version="1.0" encoding="UTF-8"?>
//<?mso-infoPathSolution name="urn:schemas-microsoft-com:office:infopath:InfoPathFormTest1:-myXSD-2008-05-22T23-34-55" solutionVersion="1.0.0.4" productVersion="12.0.0" PIVersion="1.0.0.0" ?>
//<?mso-application progid="InfoPath.Document" versionProgid="InfoPath.Document.2"?>
//<my:myFields xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:my="http://schemas.microsoft.com/office/infopath/2003/myXSD/2008-05-22T23:34:55" xmlns:xd="http://schemas.microsoft.com/office/infopath/2003">
// <my:textbox1></my:textbox1>
// <my:textbox2></my:textbox2>
//</my:myFields>
// 在此处编写代码。
XPathNavigator xn = this.MainDataSource.CreateNavigator();
XPathNavigator xText1 = xn.SelectSingleNode("/my:myFields/my:textbox1", this.NamespaceManager);
XPathNavigator xText2 = xn.SelectSingleNode("/my:myFields/my:textbox2", this.NamespaceManager);
InfoPathFormTest1.InsertToTable.Insert_Stu(xText1.ToString(), xText2.ToString());
}
编译生成:InfoPathFormTest1.dll文件。
我的数据库名为:MytestDB
创建表t_student用于保存提交的数据,创建表的SQL语句如下:
CREATE TABLE [dbo].[t_student](
[stu_name] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[stu_QQ] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
四、发布infopath表单到MOSS网站:
1、修改信任级别和兼容性。
在刚才添加建立表单模板时,“仅启动浏览器兼容性功能”前面的勾去掉了,这样才能添加代码。
但在发布时,需要修改此设置,才能发布。
在VS2005中点击:工具-表单选项,在表单选项的兼容性中,选择“设计一下可以......”。如下图:
另外还要“安全与信任”中,修改为完全信任。如下图:
到此,发布前的修改完毕。
2、发布模板:
发而的过程省略。按VS2005中的发布向导一步一步操作即可。(说明:默认情况下,VS2005建立的表单模板没有使用安全证书,我在此DEMO中也没有使用。)
需要说明的是:在发布时,需要将表单模板保存在一个管理员可以访问的位置,该位置必须记住,因为发布完毕后,在上传表单模板时,角需要此文件的位置。
五、在MOSS网站中激活和使用刚才发布的模板。
1、上载表单模板:
在MOSS网站的管理中心--就用程序管理中, 选择“InfoPath Forms Services”的“管理表单模版”,选择“上载表单模版”:
选择刚才发布时保存的位置的模板文件。先验证一下,确信是完全信任的表单后,上载即可。
上载完毕后,就可以在“管理表单模版”页面,您可以看到刚刚上载的表单模版。
2、激活模板。
注意要选择你要激活的是哪个网站。在“网站操作-查看所有网站内容”、“网站集管理”下面的“网站集功能”:中可以看到 该表单的激活状态,如果角没有激活,可以在此激活。
3、修改表单库设置:
打开主页, 新建一个表单库,或者你采用已经建立的表单库也行。进入该表单库。选择“表单库设置”,选择“常规设置”中的“高级设置”:将“内容类型”部分的“是否允许管理内容类型”,选择“是”;同时,将“启用了浏览器的文
档”部分的“打开启用了浏览器的文档”,选择“显示为网页”(否则,表单模版会以客户端的方式打开):其他值保持默认值,点击“确定”。
4、将表单发布到当前的表单库。
在该表单库的设置中,选择“常规设置”中的“高级设置”:内容类型部分,您会看到“从现有网站内容类型添加”的链接,点击, 在“可用网站内容类型”处,选择我们需要部署的表单模版“InfoPathFormTest1”,将它添加到“要添加的内容类型”:
将InfoPathFormTest1添加上。
回到表单库页面,点击新时,效果如下:
到此,发布工作全部结束。
结束:
运行效果:
添加数据,从SQL数据库中查看数据:
到此结束。
关于MOSS连接SQL2005数据库的问题及相关设置,请参考:
http://blog.csdn.net/xjzdr/archive/2008/05/06/2401594.aspx
本DEMO的源代码下载地址:
http://download.csdn.net/source/463730
浙公网安备 33010602011771号