KimhillZhang  

准备工作

在流程中有部分经理这个角色,为了能够自动求解出申请人的部门经理,这里有一个列表库存储各部门的部门经理,以便于以后维护,部门经理列表库的字段有

序号

字段名称

类型

备注

1

部门名称

单行文本

部门的名称,这个名称与用户在AD上的部门字段内容一致

2

部门经理

用户或用户组

部门经理在AD中的帐号

3

帐号

单行文本

部门经理在AD中的帐号,该字段为文本类型,流程中分配任务时使用

 

创建完成后如下所示:

在AD中给所有的员工的Department设置部门,该值应该是部门经理列表库中的值

Inpath表单设计

设计的最终效果图如下:

创建数据源

创建数据源如下:

表单中的每一个节做为一个文件夹,以便于查找,另外ID、文件名、工作流状态作为整个表单数据存在。

Infopath中数据源中域的类型有两种:

域(元素):该类型的字段,发布时,提升成字段后,列表库的数据是不可以被编辑的,在infopath中用表示,由于申请表单(酒店预定申请信息节下的字段)是申请时填写的,提交后不允许修改,因此申请表单中的字段全部用域(元素)这种类型

域(属性):该类型的字段,发布时,提升成字段后,列表库的数据是可以被编辑的,在infopath中用表示,由于后面的审批及安排信息均通过工作流进行填写,因此这些字段全部用域(属性)这种类型。

在数据源创建完成后,就可以设计表单了,至于表单设计成什么样,那就只有靠大家的审美观了。这里提下:流转信息其实也是一个多行文编辑器,只不过在格式中将其边框和底纹给去除。

添加条件格式

用户发起申请时,看到的表单不应该是整张表单,应该是只是酒店预定申请信息节中的内容,同时流程各环节能看到的表单内容,也应该是已经经过的环节的表单内容,而未到流程环节,其表单也不应该显示出来。

部门经理审批节设置为:当部门经理审批意见为空时,隐藏本节(这样设的话,那部门经理审批时,必须填写审批意见一栏,或者用其它条件为作判断该节是否隐藏)

行政人员安排:

审批流程:

由于自付类型是否要部门经理的,因此部门经理这个下拉列表也要有一个条件格式,即当付费类型不等于公司支付时,该控件被禁用,设置如下:

添加提交按钮

向表单中添加一个按钮,用户点击按钮,将表单提交至表单库,要完成以下事情:

检验表单:验证表单填写是否符合要求,如果不符合的话,则不允许提交

生成表单文件名:在将表单提交到表单库时,必须要有文件名,并且该文件名在表单库中唯一,因此这里要先生成一个当前表单的文件名

提交数据:将当前表单保存到表单库中

关闭表单:返回列表库

双击按钮,点击属性对话框的规则,查看最终效果如下:

清空错误信息规则:

条件:

操作:设置错误信息为空

检查表单规则:

条件:付费类型="公司支付" 并且 部门经理为空

操作:调协错误信息=该申请需要部门经理,请选择部门经理

设置文件名规则:

条件:

操作:设置文件名字段=translate(translate(substring(translate(now(), ":", ""), 1, 20), "-", ""), "T", "-")。以当前间产生的一个文件名

提交数据规则:

条件:工作流状态为空 并且 错误信息为空

操作1:设置工作状态=工作流正在启动,请刷新

操作2:使用数据连接进行提交

点击添加,可以进行创建数据连接进行提交的向导

选择新建连接,由于是提交数据,因此这里选择仅提交数据选项

提交到sharepoint的列表库

设置表单库地址(即当前表单库发布到服务器的地址,参见:发布表单节),及当前表单的文件名

关闭表单规则:

条件:错误信息为空

 

操作:关闭表单

最后,因为用户提交表单后,不允许用户再修改表单内容,因此要给该按钮添加一个条件格式:工作流状态不为空,则隐藏本控件

设置初始化数据

用户新建申请时,一些数据是要求自动填写的,其中最重要的初始化数据有两项,一项是用户名(当前用户的姓名),部门(当前用户所在部门名称),以及部门经理为当前用户所在部门的部门经理。

当前用户

在sharepoint中提供了一个Webservice,通过该接口可以直接得到当前用户的基本信息,该接口的地址为:http://服务器地址/_vti_bin/UserProfileService.asmx?WSDL,下面为如果使用该接口,创建一个辅助数据连接,并设置表单的用户名和部门

选择工具=>数据连接=>添加,

输入该接口地址

选择GetUserProfileByName这个方法

按默认设置

按默认设置,完成创建数据连接

创建好数据连接后,切换右栏的设计任务到数据源,双击申请人,设置其默认值,点击旁边的fx公式按钮

选择插入域或组,在弹出数据源中切换到我们新建的数据源

选择筛选数据,在弹出窗口中新建一个筛选器:Name=PreferredName,即这里要数据为用户的PreferredName这个字段值,代表用户的姓名。

这里可以使用的过滤名称全部来自共享服务,可以通过共享服务=>用户配置文件和属性=>查看配置文件属性,查看所有可以用的字段

选择一个字段,点击编辑

如上面用到的用户姓名,即为用户配置文件中的名称字段,对应的为PreferredName

按上面的方式,设置用户部门的默认值,这里的过滤条件为:Name=Department

部门经理

在准备中我们新建了一个列表库,用户存放各部门的部门经理,在使用该列表库前,我们要先将该列表库导入到infopath中,转成一个数据库。和上面创建当前用户一样,先通过工具=>数据连接,添加一个数据连接

输入部门这个列表库的地址

选择部门经理这个列表库

选择数据源包含的字段

下面一路按默认设置,完成创建一个辅助的数据连接,创建完成数据连接后,由于这里采用了一个下拉列表来显示部门经理,因此在设置当前用户的部门经理当,要将先创建的数据源中包含的数据填充到该下拉列表中。

双击部门经理下拉列表,数据源设置如下:

填充了下拉列表后,可以设置当前用户的部门经理的默认值了,右栏设计任务切换到数据源视图,双击部门经理字段,设置其默认值,选择插入公式

选择插入域或用户组,弹出窗口,数据源为部门经理,并添加一个筛选条件

添加一个筛选器,选择类型为表达式,

值为:../@部门名称 = xdXDocument:get-DOM()/my:myFields/my:酒店预计申请信息/my:申请人部门 ../@部门名称:部门经理数据源每一条数据的部门名称这个字段的值

xdXDocument:get-DOM()/my:myFields/my:酒店预计申请信息/my:申请人部门:当前表单中用户部门字段的值

发布表单

设置表单选项

在发布表单前,先设置一下表单的一些选项,通过工具=>表单选项

由于,这里是通过提交按钮进行表单的提交,因此必需将工具栏中的保存等菜单给隐藏,由于有户还要求可以打印表单,因此这里还留下了打印视图菜单,如果不要求打印,可以将整个工具栏给隐藏

属性提升,将所有字段提升为表单的一个列,也可以在发布时做这件事

发布表单

由于发布过程,程序会自动创建一个表单库,但这个表单库地址一般为一些没有意见的名称,为了使表单库名称易于记忆,且容易迁移,建议先在服务器上建一个空白的表单库,新建时名称输入一个英文名称,保存后再改成中文名。

选择文件=>发布,选择发布到sharepoit服务器上

选择要发布的网站地址

注意一定要勾选用户可以通过浏览器填写此表单

由于我们先前已经创建了一个表单库,这里选择更新就可以该表单库

设置提升的属性,如果在表单选项设置中已经设置了,则可以不用再设置了

发布完表单后,进入该表单库的设置页面的高级设置,选择显示为网页,才能在浏览器中打开infopath表单

本文来自CSDN博客,转载请标明出处:file:///F:/SharePoint2007/Designer工作流网页/Infopath+Designer工作流设计之二--InfoPath表单设计与发布%20-%20北极星博客%20-%20CSDN博客.htm

posted on 2009-07-23 14:14  KimhillZhang  阅读(3102)  评论(1编辑  收藏  举报