zoukankan      html  css  js  c++  java
  • 用代码获取SharePoint站点中InfoPath表单的数据

    如果使用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表单的内容反序列化成了一个对象,然后直接访问这个对象的属性就行了。

  • 相关阅读:
    昨晚值班将发dla的程序改好后放入正式环境
    本来今天打算不带电脑去值班
    有时候你会觉得,你的不真实让人怀疑,自己却非常尴尬
    其实对于公司的事情分布,我是昨天没有干什么
    异常处理
    反射及内置方法
    绑定方法与非绑定方法
    面向对象之多态
    面向对象之封装
    面向对象三大特性
  • 原文地址:https://www.cnblogs.com/kaneboy/p/2436828.html
Copyright © 2011-2022 走看看