如何给Infopath表单保存时自动命名和自动关闭
这是课程中的一个小问题和例子,分享出来给更多朋友参考
问题:
默认情况下,我们在SharePoint中通过Forms Service填写Infopath表单的时候,当我们点击了“Save”菜单项,会弹出一个对话框来,这里我们需要输入一个File Name。如下图所示
但问题就在于这里,用户输入这个名称显然不是很方便的,而且容易造成重复
另外一个问题就是,上图中,我们必须Save完后,还要点击Close按钮,表单才会关闭。那么有没有什么办法改善这一点呢?
解决方案:自定义提交
我给出的解决方案就是不使用标准的Save功能,而是自定义提交功能。
第一步:定义提交选项
点击下图中的Submit Options
启用提交,并且选择发送到SharePoint document Library
点击Add按钮,在下面的对话框中,定义目标列表库,以及文件名的格式。我这里定义个文件名包含三部分:它们用一个concat函数连接起来。
1. Order Form ,这是固定的
2. userName(),这是一个函数,返回当前用户名
3. now(), 这是一个函数,返回当前时间
点击“Next”,给这个连接保存一个名称
第二步:显示提交菜单,隐藏默认的保存菜单
打开表单选项
确认以下选项
完成如上设置之后,就可以到浏览器中看看效果了
点击“Submit”菜单,表单会被自动关闭,而且会有一个默认的名称,根据当前用户和时间
总结
通过简单的配置,我们确实可以实现自动命名和关闭表单。这个解决方案唯一的问题就是,它的目标文档库是设置为固定的,如下图所示
也就是说,这是固定发送到某个文档库的,目前没有什么简单的配置方式实现自动发送到当前文档库。
为什么会有这个问题,因为Infopath表单说到底是一个内容类型,它应该是要能复用在不同的表单库才对,有的朋友可能会说,最好是能根据当前使用该表单模板的表单库位置自动保存是否更好。当然,在某些情况下,那样确实更好。但目前的Infopath,并没有提供这个功能。一个可行的方法是,通过一些后台代码来做这样的事情,但是其实我们也不是很推荐在Infopath里面多写代码的,老实说会很麻烦。所以,这个问题暂时就不展开了