用代码获取SharePoint站点中InfoPath表单的数据

转载 2006年06月10日 22:24:00
如果使用InfoPath作为企业流程数据输入客户端,那么如何使用代码访问保存于SharePoint表单库中的InfoPath表单的内容,是必需知道的。

总结来说,要点如下:

1、获取InfoPath表单所对应的SPFile对象。这个不再详述,不管是表单库的事件处理代码,抑或外部的应用程序,都需要首先得到代表InfoPath表单的SPFile对象。

2、将InfoPath表单的所有内容读入一个Stream中:
Stream stream= new MemoryStream(file.OpenBinary());

3、通过XML接口访问表单数据。通过一个Reader把Stream里面的内容以文本的形式读出来,就得到了包含了表单所有数据的XML文档的字符串表示形式。通过XmlDocument、XPath等接口,都能一步步的检索到自己需要的信息。

4、如果你实在讨厌通过XML接口去和一堆XML数据打交道,那么就用下面这个更加OO的办法。
首先,把InfoPath的原始.xsn文件解压开,把里面描述表单数据架构的.xsd文件找到,然后通过.Net Framework带的xsd.exe命令行工具,通过这个.xsd文件得到一个proxy类,然后在项目中使用这个类。比如一个工作单表单,我们得到了一个WorkItem类:
WorkItem workItem = new XmlSerializer(typeof(WorkItem)).Deserialize(stream) as WorkItem;
就把InfoPath表单的内容反序列化成了一个对象,然后直接访问这个对象的属性就行了。

举报

相关文章推荐

Infopath 2013向Sharepoint 2013发布表单时提示"下列URL无效"的解决办法

问题界面如下: 我的环境是这样的,2台服务器(均为VM虚拟机),一台域控s30.abc.com,另一台s31.abc.com安装了Sharepoint Server 2013和Office2013 ...

一步步学习微软InfoPath2010和SP2010--第十三章节--SharePoint视图和仪表板(8)--新建表单按钮

在服务台网站,Contoso员工最常见的行为是填写新的服务台申请。这个行为需要成为简单且直观的东西。

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

VS2010开发sharepoint2010工作流添加自定义infopath任务表单

As another day in the life of SharePoint goes, I found my self in a bit of a pickle.  I had built a ...

一步步学习微软InfoPath2010和SP2010--第十章节--与SharePoint Designer工作流的InfoPath集成(4)--工作流任务表单

内置在SPD工作流中另外一种InfoPath表单时任务表单。六种不同任务操作可以在SP企业版中使用,并且每个任务都有自己的自定义InfoPath表单。

InfoPath与SharePoint之(五)发布InfoPath表单到Content Type

不管是在List里定制化表单,还是发布表单到Library,都有一个缺陷,就是不能被其他的List/Library重复使用。因此SharePoint提供了一个功能,可以把表单发布成Content Ty...
  • SPFarm
  • SPFarm
  • 2015-02-16 14:04
  • 1226

InfoPath与SharePoint之(六)在表单库里引用InfoPath Form Content Type

在上一篇,介绍了如何把InfoPath Form类型的Content Type发布到SiteCollection,发布完之后,就可以在已经存在的表单库里引用了。
  • SPFarm
  • SPFarm
  • 2015-02-16 16:30
  • 1128
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)