`

带托管代码的infopath2007表单创建, 发布,应用(MOSS开发)

阅读更多

目的:这两天我在学习MOSS中关于infopath的内容,多少遇到了些问题,下面总结下我的学习心得,希望新手们能够少走弯路,快速入门。

infopath2007简单说明:

infopath services它是一种服务器技术,用户可以在浏览器上直接查看表单,填写表单,重要的是用户可以不安装info path客户端。企业可以利用它作为数据采集和流程审批的基础。infopath07比03版本最大的区别就是能够脱离infopath环境,而且能够发布到浏览器上。infopath表单可以作为界面设计器以及数据展示交互,它包含了非常丰富的控件,还包含了控件的规则以及数据验证,当用户提交表单时会根据生成js脚本来验证数据的正确性,而且是无刷新的,非常不错。

infopath表单的创建:

infopath表单可以是完全无代码的表单,也可以是有托管代码的InfoPath表单。带代码的表单需要一个名叫VSTA的工具来开发。这里我想讲下带有代码的表单。

创建带代码表单的方式:

1:利用office组件infopath定制表单,通过VSTA编写相关的逻辑代码;

2:通过VS05或者是08建立infopath表单项目。

下面主要讲第一种方式的应用及需要注意的地方。

第一部分:创建带有代码的表单需要注意的几个方面:

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即可。


<?xmlversion=""1.0""?>
<?"?>
<?"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-1314:49:34</my:field1>"r"n</my:myFields>

第二部分:创建带代码表单的步骤:

1:在infopath2007中创建一个空的表单,可以修改数据源的组名,默认为myFields。

2:设置好表单的编程语言,代码位置,以及浏览器兼容性。

3:代码的编写:双击提交按钮,单击"编辑表单代码",如果系统安装了VSTA,则会打开VSTA界面。单击工具菜单中的"工具"-编程-Loading事件,最终的代码如下:


publicvoidInternalStartup()
{
((ButtonEvent)EventManager.ControlEvents[
"CTRL2_5"]).Clicked+=newClickedEventHandler(CTRL2_5_Clicked);
EventManager.FormEvents.Loading
+=newLoadingEventHandler(FormEvents_Loading);
}

publicvoidCTRL2_5_Clicked(objectsender,ClickedEventArgse)
{
//在此处编写代码。
try
{

stringstr="现在的时间是:"+DateTime.Now.ToString();
MainDataSource.CreateNavigator().SelectSingleNode(
"/my:myFields/my:field1",NamespaceManager).SetValue(str);
}
catch(Exceptionex)
{
MainDataSource.CreateNavigator().SelectSingleNode(
"/my:myFields/my:field1",NamespaceManager).SetValue(ex.Message);
}

}

publicvoidFormEvents_Loading(objectsender,LoadingEventArgse)
{
//在此处编写代码。
try
{

stringstr=DateTime.Now.ToString();
MainDataSource.CreateNavigator().SelectSingleNode(
"/my:myFields/my:field1",NamespaceManager).SetValue(str);
}
catch(Exceptionex)
{
MainDataSource.CreateNavigator().SelectSingleNode(
"/my:myFields/my:field1",NamespaceManager).SetValue(ex.Message);
}
}

代码说明:

1:InternalStartup:初始化和绑定事件处理程序。

2:FormEvents.Loading 事件在加载了表单模板之后、初始化任何视图之前发生。

3:表单项相关:

//返回一个XPathNavigator对象
XPathNavigatorxn=this.MainDataSource.CreateNavigator();
//找到对应结点;
XPathNavigatorfield1=xn.SelectSingleNode("/my:myField/my:field1",this.NamespaceManager);
//为结点设置值;
field1.SetValue("helloworld!");

4:表单还有其它一些事件,具体的可查阅下MSDN。

第三部分:创建一个表单库。如何新建一个表单库我就不啰嗦了,值得注意的是在之前讲过infopath2007能够脱离infopath环境,让用户可以在浏览器中操作表单,默认表单打开方式是infopath,实现步骤:在MOSS网站中点击"网站操作"

-查看所有网站内容-点击创建的表单库-设置-表单库设置-高级设置-打开启用了浏览器的文档 设置为"显示为网页"。如下图:

第四部分:发布表单。带有代码的表单是需要管理审批才能使用的,大概步骤如下:

1:可以利用infopath本身的发布功能,一步一步来应该问题不大;

2:打开MOSS管理中心-应用程序管理-上载表单模板,选择之前保存的表单模板文件,建议在上载之前先验证下表单模板,通过验证后再开始上载,上载成功后会转到"管理表单模板"页面,找到刚才的表单,选择表单下拉框下的"激活到网站集",到此需要管理员审核的表单已经发布成功而且已经激活,也就是说用户可以在网站中使用这个表单模板了。

3:在自定义页面中添加表单,表单是以模板形式展现的,它不是一个web part,所有需要有一个容器来存放它,这里可以利用xmlformview,这个控件是需要部署的,怎么部署这里不是重点,在控件库中导入成功后,就可以在页面中使用,在自定义页面添加一个xmlformview控件,然后它有一个最重要的参数XsnLocation,它是指模板文件的路径,这个路径可以通过sharepoint desinger来查看,具体方法在文章最上面已经有说明。这个控件的主要参数说明如下:


属性分类:
属性名称:
含义:
功能 ShowHeader 显示上面的工具栏

ShowFooter 显示下面的工具栏

EditingStatus

编辑状态设置:Init,Closed,Edting,

在页面中设置成Edting就OK。

数据绑定 XsnLocation

表单模板的地址

(形如:http://jiangmin:8000/FormServerTemplates/Code9release.xsn)

总结:上面文章从创建infopath表单,发布表单,审核表单,应用表单比较全面的说明了infopath表单带托管代码的具体应用,大家有什么好的做法,希望多多指教!

分享到:
评论

相关推荐

    Moss开发SharePoint网站开发表单示例

    Visual Studio Tools for Applications (VSTA)简化了带有托管代码的表单开发,且与Visual Studio兼容,降低了开发门槛。 总的来说,Infopath为SharePoint网站开发提供了一套强大的表单设计和实施工具,尤其适合需要...

    SharePoint Server2007宝典.part02

    19.2.3 无代码创建工作流 415 19.2.4 使用增强的管理功能 415 19.2.5 定义参与者设置和SharePoint角色 416 19.3 自定义SharePoint网站 416 19.3.1 从Office SharePoint Designer 2007打开SharePoint网站 417 19.3.2 ...

    毕业设计物联网实战项目基于Eclipse Theia开源框架开发的物联网在线编程IDE.zip

    【项目资源】: 物联网项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。

    Android毕设实战项目基于Android的医院挂号系统.zip

    【项目资源】: 适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。

    (源码)基于Python的KMeans和EM算法结合图像分割项目.zip

    # 基于Python的KMeans和EM算法结合图像分割项目 ## 项目简介 本项目结合KMeans聚类和EM(期望最大化)算法,实现对马赛克图像的精准分割。通过Gabor滤波器提取图像的多维特征,并利用KMeans进行初步聚类,随后使用EM算法优化聚类结果,最终生成高质量的分割图像。 ## 项目的主要特性和功能 1. 图像导入和预处理: 支持导入马赛克图像,并进行灰度化、滤波等预处理操作。 2. 特征提取: 使用Gabor滤波器提取图像的多维特征向量。 3. 聚类分析: 使用KMeans算法对图像进行初步聚类。 利用KMeans的聚类中心初始化EM算法,进一步优化聚类结果。 4. 图像生成和比较: 生成分割后的图像,并与原始图像进行比较,评估分割效果。 5. 数值比较: 通过计算特征向量之间的余弦相似度,量化分割效果的提升。 ## 安装使用步骤 ### 假设用户已经下载了项目的源码文件 1. 环境准备:

    HCIP第一次作业:静态路由综合实验

    HCIP第一次作业:静态路由综合实验

    毕设单片机实战项目基于stm32、esp8266和Android的智能家居系统-设备端.zip

    【项目资源】: 单片机项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。

    统计学基于Python的Johnson-SU分布参数计算与优化:数据拟合及弹性网络参数优化方法实现(复现论文或解答问题,含详细可运行代码及解释)

    内容概要:本文详细介绍了Johnson-SU分布的参数计算与优化过程,涵盖位置参数γ、形状参数δ、尺度参数ξ和伸缩参数λ的计算方法,并实现了相应的Python代码。文中首先导入必要的库并设置随机种子以确保结果的可复现性。接着,分别定义了四个参数的计算函数,其中位置参数γ通过加权平均值计算,形状参数δ基于局部均值和标准差的比值,尺度参数ξ结合峰度和绝对偏差,伸缩参数λ依据偏态系数。此外,还实现了Johnson-SU分布的概率密度函数(PDF),并使用负对数似然函数作为目标函数,采用L-BFGS-B算法进行参数优化。最后,通过弹性网络的贝叶斯优化展示了另一种参数优化方法。; 适合人群:具有Python编程基础,对统计学和机器学习有一定了解的研究人员或工程师。; 使用场景及目标:①需要对复杂数据分布进行建模和拟合的场景;②希望通过优化算法提升模型性能的研究项目;③学习如何实现和应用先进的统计分布及优化技术。; 阅读建议:由于涉及较多数学公式和编程实现,建议读者在阅读时结合相关数学知识,同时动手实践代码,以便更好地理解和掌握Johnson-SU分布及其优化方法。

    TSP问题的3种智能优化方法求解(研究生课程《智能优化算法》结课大作业).zip

    TSP问题的3种智能优化方法求解(研究生课程《智能优化算法》结课大作业).zip

    毕业设计物联网实战项目基于Rtthread和MQTT搭建的物联网网关.zip

    【项目资源】: 物联网项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。

    基于STM32F103C8T6的温湿度传感器(HAL库版),通过串口向电脑端反馈数据(附通过ESP8266-01s模块连接WIFI上传云平台的资料代码-固件库版本).zip

    【项目资源】: 单片机项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。

    自动发布Java项目(Tomcat)Shell脚本

    自动发布Java项目(Tomcat)Shell脚本

    (源码)基于webpack和Vue的前端项目构建方案.zip

    # 基于webpack和Vue的前端项目构建方案 ## 项目简介 本项目是基于webpack和Vue构建的前端项目方案,借助webpack强大的打包能力以及Vue的开发特性,可用于快速搭建现代化的前端应用。项目不仅完成了基本的webpack与Vue的集成配置,还在构建速度优化和代码规范性方面做了诸多配置。 ## 项目的主要特性和功能 1. 打包功能运用webpack进行模块打包,支持将scss转换为css,借助babel实现语法转换。 2. Vue开发支持集成Vue框架,能使用Vue单文件组件的开发模式。 3. 构建优化采用threadloader实现多进程打包,cacheloader缓存资源,极大提高构建速度开启热更新功能,开发更高效。 4. 错误处理与优化提供不同环境下的错误映射配置,便于定位错误利用webpackbundleanalyzer分析打包体积。

    Hands-On Large Language Models - Jay Alammar 袋鼠书 《动手学大语言模型》

    Hands-On Large Language Models - Jay Alammar 袋鼠书 《动手学大语言模型》PDF

    《基于YOLOv8的舞蹈动作分析系统》(包含源码、完整数据集、可视化界面、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip

    资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。

    (源码)基于Arduino Feather M0和Raspberry Pi的传感器数据采集与监控系统.zip

    # 基于Arduino Feather M0和Raspberry Pi的传感器数据采集与监控系统 ## 项目简介 本项目是一个基于Arduino Feather M0和Raspberry Pi的传感器数据采集与监控系统。系统通过Arduino Feather M0采集传感器数据,并通过WiFi将数据传输到Raspberry Pi。Raspberry Pi运行BalenaOS,集成了MySQL、PHP、NGINX、Apache和Grafana等工具,用于数据的存储、处理和可视化。项目适用于环境监测、物联网设备监控等场景。 ## 项目的主要特性和功能 1. 传感器数据采集使用Arduino Feather M0和AM2315传感器采集温度和湿度数据。 2. WiFi数据传输Arduino Feather M0通过WiFi将采集到的数据传输到Raspberry Pi。

    《基于YOLOv8的音响设备识别系统》(包含源码、完整数据集、可视化界面、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip

    资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。

    Android毕设实战项目这是一个android 图书管理系统.zip

    【项目资源】: 适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。

    毕业设计物联网实战项目基于智龙2.0开发板和窄带物联网模块BC95。操作系统为RTT2.1。.zip

    【项目资源】: 物联网项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。

    (源码)基于Arduino的WiFi按钮项目.zip

    # 基于Arduino的WiFi按钮项目 ## 一、项目简介 本项目是一个基于ESP8266芯片的Arduino项目,主要实现WiFi连接、电压检测、LED灯控制以及向服务器发送POST请求等功能。通过简单的按钮操作,可以实现与服务器通信并获取相关信息,同时能检测电池电压并提示用户。 ## 二、项目的主要特性和功能 1. WiFi连接项目能够自动连接到指定的WiFi网络。 2. 电压检测通过ADC(模数转换器)检测电池电压,并在电压低于阈值时发出警告。 3. LED灯控制通过控制LED灯的亮灭来提示用户不同的状态信息(如连接成功、电压低等)。 4. 服务器通信项目可以向指定的服务器发送POST请求并处理返回的HTTP响应。 ## 三、安装使用步骤 1. 环境准备确保已安装Arduino IDE和ESP8266插件。 2. 下载源码下载项目的源码文件并解压。 3. 打开项目在Arduino IDE中打开解压后的main.cpp文件。

Global site tag (gtag.js) - Google Analytics