如何给Infopath表单保存时自动命名和自动关闭

这是课程中的一个小问题和例子,分享出来给更多朋友参考

问题:

默认情况下,我们在SharePoint中通过Forms Service填写Infopath表单的时候,当我们点击了“Save”菜单项,会弹出一个对话框来,这里我们需要输入一个File Name。如下图所示

image

但问题就在于这里,用户输入这个名称显然不是很方便的,而且容易造成重复

另外一个问题就是,上图中,我们必须Save完后,还要点击Close按钮,表单才会关闭。那么有没有什么办法改善这一点呢?

 

 

解决方案:自定义提交

我给出的解决方案就是不使用标准的Save功能,而是自定义提交功能。

 

第一步:定义提交选项

点击下图中的Submit Options

image

启用提交,并且选择发送到SharePoint document Library

image

点击Add按钮,在下面的对话框中,定义目标列表库,以及文件名的格式。我这里定义个文件名包含三部分:它们用一个concat函数连接起来。

1. Order Form ,这是固定的

2. userName(),这是一个函数,返回当前用户名

3. now(), 这是一个函数,返回当前时间

image

点击“Next”,给这个连接保存一个名称

image

image

 

第二步:显示提交菜单,隐藏默认的保存菜单

打开表单选项

image

确认以下选项

image

 

完成如上设置之后,就可以到浏览器中看看效果了

image

点击“Submit”菜单,表单会被自动关闭,而且会有一个默认的名称,根据当前用户和时间

image

 

 

总结

通过简单的配置,我们确实可以实现自动命名和关闭表单。这个解决方案唯一的问题就是,它的目标文档库是设置为固定的,如下图所示

image

也就是说,这是固定发送到某个文档库的,目前没有什么简单的配置方式实现自动发送到当前文档库。

为什么会有这个问题,因为Infopath表单说到底是一个内容类型,它应该是要能复用在不同的表单库才对,有的朋友可能会说,最好是能根据当前使用该表单模板的表单库位置自动保存是否更好。当然,在某些情况下,那样确实更好。但目前的Infopath,并没有提供这个功能。一个可行的方法是,通过一些后台代码来做这样的事情,但是其实我们也不是很推荐在Infopath里面多写代码的,老实说会很麻烦。所以,这个问题暂时就不展开了

posted @ 2011-11-14 07:47  陈希章  阅读(3286)  评论(0编辑  收藏  举报