设为首页 收藏本站
查看: 1135|回复: 0

[经验分享] 在InfoPath中利用SharePoint的Lists Web Service向列表提交数据

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-9-25 10:49:29 | 显示全部楼层 |阅读模式
  做SharePoint开发这两年来,InfoPath使用的频率颇高,用InfoPath来填写数据,查询数据等非常方便,并且InfoPath还可以承载代码,使得它在SharePoint的开发中大有作为,但是代码只有开发人员才懂写,对于一般的管理人员来说实在有点难,前不久,学到了一招,今天特来做个笔记,可以不使用代码将InfoPath中的数据提交到列表,具体方法如下:
  首先,需要建立一个待提交数据的列表,我建了一个名为“Reporting Data”的列表,然后给其新建了3栏,具体结构如下:
DSC0000.png
  然后我用记事本新建了一个名为“添加新项目”的XML文档,当中的字段名和列表中字段名的Internal Name一一对应,文档内容如下:



1 <?xml version="1.0" encoding="UTF-8"?>
2 <Batch OnError="Continue">
3     <Method ID="1" Cmd="New">
4         <Field Name='Title'></Field>
5         <Field Name="Money"></Field>
6         <Field Name="Month"></Field>
7         <Field Name="Year"></Field>
8     </Method>
9 </Batch>
  接下来,我打开InfoPath新建了一个空白表单,对其添加了一个从“XML文档”接收数据的数据连接:
DSC0001.png
  选择了我刚刚新建的XML文档作为数据源:
DSC0002.png
  然后再添加一个从“SharePoint库或列表”接收数据的数据连接,选择最开始建立的那个名为“Reporting Data”的列表,这个数据源主要用来展示数据,方便用户直观的看到是否将新的数据成功添加了。不过在添加的时候选择域的那一步需要将我之前添加的字段全部勾上,如下:
DSC0003.png
  OK,现在已经对该表单添加了两个数据连接,这两个数据连接均需勾上“在表单打开时自动检索数据”这个选项。
  好了,接收数据的工作到这里就已经做完了,接下来需要做的是提交数据了,先将InfoPath表单做好,首先将查看数据的部分先做好,在域中选择辅助数据源“Reporting Data”,建立一个重复表用来展示列表的数据:
DSC0004.png
  建完后然后建立一个提交数据的表,在域中选择辅助数据源“添加新项目”,选择Field组,建立一个重复表:
DSC0005.png
  建完后再在表单中添加一个按钮,用来做提交,然后给之前建立的两个重复表添加列名,做完后整个表如下:
DSC0006.png
  现在整个表单的结构设计基本就完成了,但是还差一步,也是最重要的一步,就是数据提交,这里我才用的Web Service提交,新建一个提交数据的数据连接,选择“提交到Web服务”,如下:
DSC0007.png
  然后在Web服务中输入:http://YourServerName/_vti_bin/Lists.asmx,下一步,选择UpdateListItems方法:
DSC0008.png
  然后下一步,将参数listName设置为主数据源的listName域:
DSC0009.png
  将updates参数设置为辅助数据源“添加新项目”的Batch组,特别要注意的一点就是包括那里必须选择为“XML 子树(包括选定元素)”:
DSC00010.png
  好了,这下提交数据的连接也有了,下面就对表单中的按钮做提交设置,选中按钮,右键选择其“属性”,在常规一栏中将操作设置为“提交”,然后单击“提交选项”,选择“使用规则执行自定义操作”,然后将提交后的选项选择“保持表单打开”,这个的目的是为了能立即看到是否添加数据成功了,具体操作界面如下:
DSC00011.png
  由于我所选择的是“使用规则执行自定义操作”提交数据,所以还需要设置下规则,为了提交完能立即看到新的数据,所以提交完数据后需要做一次查询操作:
DSC00012.png
  现在几乎所有的工作都做完了,但是我们提交到哪个列表呢,好像还没指定吧,所以还需要最后一步,给主数据源的listName设置域值,这里可以设置为目标列表的名称,如我最开始建立的列表“Reporting Data”,或者填写该列表的Guid值,列表的Guid值如何取得呢?有个很简单的方法,打开我最开始建立的列表,在Ribbon上选择“列表设置”,然后去看URL地址栏,发现URL为http://ServerName/_layouts/listedit.aspx?List=%7B3D955683%2D4AB0%2D470C%2DB309%2D315BD9755850%7D
DSC00013.png
  URL中的QueryString “List”的值即为该列表的Guid,但是还不是Guid的格式,这里需要更改一下,将“%7B”替换为“{”,“%2D”替换为“-”,“%7D”替换为“}”,所以上面的一串字符串替换成Guid就变成了{3D955683-4AB0-470C-B309-315BD9755850},将此Guid值或列表名填写在listName域的默认值中:
DSC00014.png
  然后点击确定,OK,所有的设置就全部结束了,现在选择“预览表单”,就看到了如下的界面,上面显示了“Reporting Data”列表中现在已经存在的值,下面就是用来填写新数据的表:
DSC00015.png
  下面填写一组数据提交测试一下吧,新的数据提交完立马就能在上面看到了。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-118569-1-1.html 上篇帖子: SharePoint也可以使用CODE-BEHIND 下篇帖子: 关于 SharePoint Designer 的利与弊
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表