用VS2005开发Sharepoint 2007表单(Infopaht2007表单),部署有后台代码的InfoPaht。

一、环境:

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

安装VSTA VSTASDKFebruary2007(设计infopath).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中也没有使用。)

需要说明的是:在发布时,需要将表单模板保存在一个管理员可以访问的位置,该位置必须记住,因为发布完毕后,在上传表单模板时,仍需要此文件的位置。

注意:

1、虽然你原来已经保存了该xsn文件,在发布过程中仍提示保存对话框,这个位置才是你上传时要选择的位置。

2、其实发布时的位置并非一定要选择你文档库的位置(URL),你可以在发布时选择如:http://local:9000的地址,发布的位置和具体的某个网站、某个文档库的URL没有关系,是可以在整个MOSS系统的所有网站中使用的。

3、具体在哪个网站的文档库中使用,就看你激活到哪个网站了。在激活到网站时要选择WEBAPP的,如:激活到http://local:9000

五、在MOSS网站中激活和使用刚才发布的模板。

1、上载表单模板:

在MOSS网站的管理中心--就用程序管理中,  选择“InfoPath Forms Services”的“管理表单模版”,选择“上载表单模版”:

选择刚才发布时保存的位置的模板文件。先验证一下,确信是完全信任的表单后,上载即可。

上载完毕后,就可以在“管理表单模版”页面,您可以看到刚刚上载的表单模版。

2、激活模板。

 

注意要选择你要激活的是哪个网站。在“网站操作-查看所有网站内容”、“网站集管理”下面的“网站集功能”:中可以看到 该表单的激活状态,如果角没有激活,可以在此激活。

(必须具有管理员权限的用户才能使用激活到网站集的功能)

3、修改表单库设置:

打开主页,  选择“网站操作-创建”,然后可以选择创建的是表单库或者文档库,新建一个表单库,或者你采用已经建立的表单库也行。进入该表单库。选择“表单库设置”,选择“常规设置”中的“高级设置”:将“内容类型”部分的“是否允许管理内容类型”,选择“是”;同时,将“启用了浏览器的文

档”部分的“打开启用了浏览器的文档”,选择“显示为网页”(否则,表单模版会以客户端的方式打开):其他值保持默认值,点击“确定”。

4、将表单发布到当前的表单库。

  打开该表单库,在该表单库的设置中,选择“常规设置”中的“高级设置”:内容类型部分,您会看到“从现有网站内容类型添加”的链接,点击,  在“可用网站内容类型”处,选择我们需要部署的表单模版“InfoPathFormTest1”,将它添加到“要添加的内容类型”:

将InfoPathFormTest1添加上。

回到表单库页面,点击新时,效果如下:

 

 

到此,发布工作全部结束。

说明:文档库的模板可以是Infopath表单,也可以是WORD文档。相反,文档库的模板也一样,可以是DOC文档,也可以是Infopath表单。

 

结束:

运行效果:

添加数据,从SQL数据库中查看数据:

 

到此结束。

关于MOSS连接SQL2005数据库的问题及相关设置,请参考:

http://blog.csdn.net/xjzdr/archive/2008/05/06/2401594.aspx

本DEMO的源代码下载地址:

 http://download.csdn.net/source/463730

 

总的来说有下面几步:

1、设计表单,添加后台代码

2、修改信任级别

3、发布模板

4、上载表单模板

5、激活模板到网站集

6、在表单设置的内容设置中,添加刚才发布的模板

其它:可以通过控制面板-添加删除程序中,添加Office2007的VSTS功能(默认是不会安装的),就可以在InfoPath的设计界面中,直接添加代码,(会自动启动VS2005并建立相关的项目)。这种方式也可以设计带的后台代码的InfoPath.

在工具-表单选项,可以选择编程语言的种类是VB还是C#等。

发布有后台代码和没有代码的InfoPath的区别:

1、有后台代码的表单的信任必须是完全信任,而没有代码的可以是自动选择信任级别

2、有后台代码的表单必须由管理员在MOSS管理中心上载该模板文件,然后激活该文件到对应的网站集下,网站集中才能使用该模板。

3、有后台代码的表单被激活到网站集后,网站集的管理员必须在该表单库的设置中,选择“常规设置”中的“高级设置”:内容类型部分它添加到“要添加的内容类型”:

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xjzdr

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值