zoukankan      html  css  js  c++  java
  • 一个简单的SharePoint表单库 + InfoPath应用

    这阵子,我和另外几位同事一起,在准备我们部门新的门户站点,当然,我们使用的是SharePoint Portal Server 2003,因为感觉这过程中有一些东东挺有意思,所以记录下来,和大家分享。

    新门户的一个需求就是,之前我们部门一直在维护一张很大的Excel工作表,里面记录了很多条的业务信息,我们希望能够将其改造为使用SharePoint表单库来存储和维护这些数据,然后同事就能直接使用InfoPath来填写这些数据,并在之后能很方便的进行修改。

    同时,对于这些数据,我们还希望能够非常好的进行汇总和分析,最好能以各种角度,进行统计和图形化展现。

    首先,我请负责InfoPath的同事帮忙制作好了InfoPath表单,并将其发布到了我们的新门户的一个表单库中,然后,我在后台的数据库中创建了一个新的Table,并将表单中需要抽取出来进行分析的数据定义成Table中的字段,接着,我对那个sharepoint表单库编写了一个事件处理程序。

    这个事件处理程序监控了表单库中四种事件:
    新增:当有新的InfoPath表单库被保存到表单库中时,事件处理程序将表单中的数据抽取出来,保存到后台的数据库表中;
    修改:当有InfoPath表单被修改时,也需要相应的更新后台数据库中相应的记录;
    移动:当用户将一个InfoPath改名时,会触发这个事件,这时事件处理程序也需要更新后台数据库中记录中的相应数据;
    删除:当一个InfoPath表单被删除时,相应的数据库表记录也需要被删除。

    这样,所有的数据都同时被保存在了后台的数据库表中,剩下的工作只是直接使用sharepoint自带的Office数据透视视图这个WebPart,连接到那个数据库中,以各种数据透视图的方式将数据展现出来,效果非常不错。

    工作进行到这里,同事提出了一个新的需求,那就是之前我们已经有许多数据被记录在了那张很长的Excel工作表中,我们当然希望能够将那张工作表上的数据导入到sharepoint表单库中,这样我们就能直接转换到新的平台上继续工作了。

    我使用的方法,是首先将Excel工作表中的数据导入到后台的那个数据库表中,利用SQL Server自带的数据导入工具,经过一些字段匹配处理,我将Excel工作表的数据全部导入到了SQL Server数据库表中。然后,我编写了一个小的Console程序,将这些已经存放在SQL Server数据库表中的数据全部转换成InfoPath表单,保存到新门户的表单库中。

    这个Console程序的工作原理,只是要根据开始做好的InfoPath表单的Schema,构建出一个正确的XML Document,然后用数据库中的数据填充它,然后将它转换成二进制格式,调用SharePoint对象模型,将这些二进制数据作为文件写到SharePoint表单库中。因为实际上,SharePoint表单库中的InfoPath表单,本质上也就是一些标准的xml文件,我们可以通过SharePoint对象模型,像操作普通文件一样操作它们。

    非常方便,不是吗?SharePoint表单库+InfoPath提供了我们一个非常好的表单系统,基于它们,就能为我们的企业很快的构建出方便高效的表单输入、维护、统计分析的应用。

  • 相关阅读:
    ELK-安装logstash
    ELK-安装kibana
    ELK-Elasticsearch安装
    springboot+springcloud集成jar
    nginx普通配置/负载均衡配置/ssl/https配置
    apidoc @apiGroup兼容中文
    Jenkins定时构建时间设置
    nginx配置ssl证书实现https访问
    骚胖选股法
    Dockerfile 时区设置
  • 原文地址:https://www.cnblogs.com/kaneboy/p/2436855.html
Copyright © 2011-2022 走看看