一、环境:

虚拟机 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

 

posted on 2008-06-03 16:39  晃晃悠悠  阅读(408)  评论(0)    收藏  举报