带托管代码的infopath2007表单创建, 发布,应用(MOSS开发)
来源:互联网 发布:lego moc软件 编辑:程序博客网 时间:2024/05/16 11:23
目的:这两天我在学习MOSS中关于infopath的内容,多少遇到了些问题,下面总结下我的学习心得,希望新手们能够少走弯路,快速入门。 infopath2007简单说明: infopath表单的创建: 1:利用office组件infopath定制表单,通过VSTA编写相关的逻辑代码; 下面主要讲第一种方式的应用及需要注意的地方。 第一部分:创建带有代码的表单需要注意的几个方面: 1:表单的兼容性,表单最终是展示给用户看的,而展现形式大部分都是以WEB方式,所有创建的表单要能在浏览器中显示。步骤如下: 1):设计任务-检查设计方案,如下图所示,这里同时可以验证程序是否正确。 2):在表单选项窗口中,确保图中红色部分打上勾。 2:表单编程语言的设置,工具-表单选项-编程,好下图好示,在表单模板代码语言中选好相应语言,默认是VB,设置好代码存放位置。 3:表单信任级别及证书,要想WEB用户能够顺利的访问我们的表单模板,需要调整信任级别和选择或者是创建证书。步骤:工具-表单选项-安全和信任,去掉自动确定级别,手动选中下面的完全信任。同时,“表单模版签名”要选择“为此表单模版签名”。在此处,我们使用windows自己的证书。即选择“创建证书”:确认即可。 4:如何查看已经创建成功且已经激活过的表单模板路径,即以后XmlFormView的属性XsnLocation。我们可以借用sharepoint designer查看,具体操作不多说,效果好下图: 5:后台代码如何访问表单中的表单项?一般用asp.net写程序都是用this.控件ID,来操作,而在MOSS中是通过MainDataSource.CreateNavigator()返回一个XPathNavigator对象,从而得到文档的描述,之后使SelectSingleNode进行节点选择。XML代码如下:进行节点匹配时的规则是这样的:/my:myFields/my:field1默认情况下更改最好的field1即可。 1:在infopath2007中创建一个空的表单,可以修改数据源的组名,默认为myFields。 2:设置好表单的编程语言,代码位置,以及浏览器兼容性。 代码说明: 1:InternalStartup:初始化和绑定事件处理程序。 2:FormEvents.Loading 事件在加载了表单模板之后、初始化任何视图之前发生。 4:表单还有其它一些事件,具体的可查阅下MSDN。 第三部分:创建一个表单库。如何新建一个表单库我就不啰嗦了,值得注意的是在之前讲过infopath2007能够脱离infopath环境,让用户可以在浏览器中操作表单,默认表单打开方式是infopath,实现步骤:在MOSS网站中点击"网站操作" -查看所有网站内容-点击创建的表单库-设置-表单库设置-高级设置-打开启用了浏览器的文档 设置为" "。如下图: 1:可以利用infopath本身的发布功能,一步一步来应该问题不大; 2:打开MOSS管理中心-应用程序管理-上载表单模板,选择之前保存的表单模板文件,建议在上载之前先验证下表单模板,通过验证后再开始上载,上载成功后会转到"管理表单模板"页面,找到刚才的表单,选择表单下拉框下的"激活到网站集",到此需要管理员审核的表单已经发布成功而且已经激活,也就是说用户可以在网站中使用这个表单模板了。 3:在自定义页面中添加表单,表单是以模板形式展现的,它不是一个web part,所有需要有一个容器来存放它,这里可以利用xmlformview,这个控件是需要部署的,怎么部署这里不是重点,在控件库中导入成功后,就可以在页面中使用,在自定义页面添加一个xmlformview控件,然后它有一个最重要的参数XsnLocation,它是指模板文件的路径,这个路径可以通过sharepoint desinger来查看,具体方法在文章最上面已经有说明。这个控件的主要参数说明如下: 编辑状态设置:Init,Closed,Edting, 在页面中设置成Edting就OK。 表单模板的地址 (形如:http://jiangmin:8000/FormServerTemplates/Code9release.xsn) 总结:上面文章从创建infopath表单,发布表单,审核表单,应用表单比较全面的说明了infopath表单带托管代码的具体应用,大家有什么好的做法,希望多多指教!
创建带代码表单的方式:
<?" ?>
<?"http://www.w3.org/2001/XMLSchema-instance""
xmlns:my=""http://schemas.microsoft.com/office/infopath/2003/myXSD/2009-01-12T07:36:42""
xmlns:xd=""http://schemas.microsoft.com/office/infopath/2003"" xml:lang=""zh-cn"">"r"n"t
<my:field1>2009-1-13 14:49:34</my:field1>"r"n</my:myFields>
第二部分:创建带代码表单的步骤:
public void InternalStartup()
{
((ButtonEvent)EventManager.ControlEvents["CTRL2_5"]).Clicked += new ClickedEventHandler(CTRL2_5_Clicked);
EventManager.FormEvents.Loading += new LoadingEventHandler(FormEvents_Loading);
}
public void CTRL2_5_Clicked(object sender, ClickedEventArgs e)
{
// 在此处编写代码。
try
{
string str = "现在的时间是:"+DateTime.Now.ToString();
MainDataSource.CreateNavigator().SelectSingleNode("/my:myFields/my:field1", NamespaceManager).SetValue(str);
}
catch (Exception ex)
{
MainDataSource.CreateNavigator().SelectSingleNode("/my:myFields/my:field1", NamespaceManager).SetValue(ex.Message);
}
}
public void FormEvents_Loading(object sender, LoadingEventArgs e)
{
// 在此处编写代码。
try
{
string str = DateTime.Now.ToString() ;
MainDataSource.CreateNavigator().SelectSingleNode("/my:myFields/my:field1", NamespaceManager).SetValue(str);
}
catch (Exception ex)
{
MainDataSource.CreateNavigator().SelectSingleNode("/my:myFields/my:field1", NamespaceManager).SetValue(ex.Message);
}
}
XPathNavigator xn = this.MainDataSource.CreateNavigator();
//找到对应结点;
XPathNavigator field1 = xn.SelectSingleNode("/my:myField/my:field1" ,this.NamespaceManager);
//为结点设置值;
field1.SetValue("hello world!");
属性分类:
属性名称:
含义:
功能ShowHeader显示上面的工具栏
ShowFooter显示下面的工具栏
EditingStatus
- 带托管代码的infopath2007表单创建, 发布,应用(MOSS开发)
- MOSS工作流开发之表单发布问题
- Infopath2007开发相关资源
- Infopath2007表单转化成word2007
- 应用发布托管平台
- 转帖:MOSS代码,创建站点,创建用户组,分配权限,发布主题,设定帖子权限(备忘查询).........
- 关于MOSS的应用和开发的一些联接
- 关于Moss的开发
- GitHub客户端发布托管代码
- 托管C++程序开发Win表单的文档程序设计(上)
- moss webservice调用(Moss自带的webservice)
- MOSS应用语言包的问题
- MOSS表单的复制和转移
- 开发笔记:代码和资源分离发布带复杂资源文件的SDK
- MOSS开发的相关地址
- 基于Infopath2007 与SQL2005的数据查询
- 应用开发及托管服务
- 利用moss开发完全不同与moss风格的站点
- matlab 字符串文件直方图统计字母个数
- xp系统不设置默认邮件软件,导致浏览器不断启动直至内存耗尽。
- TOMCAT并发处理性能
- 【转的】MUDLIB各个目录
- 国内做电信项目的公司
- 带托管代码的infopath2007表单创建, 发布,应用(MOSS开发)
- 解析android中的Looper MessageQueue Handler Thread HandlerThread类
- 对程序员职业的一些建议
- Peersim kademlia manual - note
- Game over 我的程序人生
- something about BMP
- Windows XP系统备份和恢复完全解决方案
- LDAP ACL(OpenLDAP)
- 按特殊要求向数组中补全元素