基于SharePoint 工作流的InfoPath 2010的报修系统的建立:第四章 报修单批准和处理等视图的设计

在上一章,我们讲述了如何去建立一个拥有规则、基于浏览器和提交的表单,并且通过带筛选的功能,我们还可以自动地设置一些域的默认值。这一章我们主要把所有的规则应用,去建立其它的视图,这些视图包括用来审批的:审批单视图,记录处理过程的处理视图。

一、建立审批视图:

如下图,我们新建一个视图,其中包括如下的字段,其中在绿色框架中的,就是在前一章中创建的报修单的一些字段,这里,为了让审批者可以看清,我们把报修单中的了段都做成了“已计算值”

image

1 处理人:在处理人这个域中,我们使用了,“个人/组选择器”,如下图,并且我们把“当前处理人”,这个字段就设置成这个域下面的DisplayName。

image

 

2. 提交按钮

同样,这个提交按钮,我们也要让它去执行三个操作,如下图,但是也有一个条件,就是当前登录的人在人事情况表中的职务必须包括“经理”,如下图:

条件公式为:contains(xdXDocument:GetDOM("人事情况表")/dfs:myFields/dfs:dataFields/d:SharePointListItem_RW/d:JobTitle[../d:_x59d3__x540d__x62fc__x97f3_ = xdUser:get-UserName()], "经理")

 

image

 

二、处理视图:

image

1 如何筛选最大日期的数据。在处理视图,我们使用了一个重复表,来记录每一个处理的过程,其中包括如下的信息:处理日期、处理人、处理状态、说明,为了管理上的方便,我们还必须有一组字段来反应最新的处理结果,这组字段叫“最新组”,但是这个最新的处理结果只能从重复表中选取日期最新的,这组域就叫:当前处理人、当前处理日期、当前处理状态、当前状态说明。为了能在重复表中,把最新的处理条目筛选出来,我们可以在重复表中使用规则,当得重复表中的任一一个控的有变化时,我们就把当前的行与“最新组”比较,把最近日期的数据填到“最新组”中去。

我们必须在重复表中的处理日期,应用如下的规则:

image

同样在处理人、处理状态、处理说明,我们都同样应用如上的处理规则。

 

2 提交:提交前判断一下职务是不是包括行政或是经理,就行了。

 

三、查看(打印)视图:

其实查看或是打印视图,就是一个可以看到全面信息的只读表格:

image

四、初始规则和属性提升:

如果要让表单一开始就根据域值来进行属性的选择,那么就必须设置初始的规则:

如下图

image

 

1 当前处理状态为“未指定”,或是空是,我们切换到报修视图,说明系统允许报修人填写或是修改报修内容。

2 当前处理状态为“未审批”,当前用户是经理,并且审批人为空时,我们切换到审批视图,并且设置审批人为当前登录人。

3 当前处理状态为“未审批”,当前用户是经理,我们切换到审批视图。

4 审批为“同意”,当前是经理或是行政人员,切换到处理视图。

5 其它情况,切换到打印视图。

 

同时,我们把其它所有的属性都进行提升,提升到库的栏,这样我们在进行信息归类时,就可以通过网站的操作来进行工作流的制作。

 

现在表单基本都做好了,使用者可以来在库中提交报修申请,如果经理打开了,就会自动切换到审批视图进行审批,如果审批通过,行政人员打开后,就可以进行处理的记录。现在缺的就是如何把这些操作通过一些自定义的操作串起来,当然你也可以命令部下每天打开文档库看看你的申请有没有被批准,有没有新的申请过来,但这总不是太智能不是嘛?下一章,我们就通过SPD的工作流,把这样东东通过任务列表和电子邮件信息串起来。

posted @ 2011-02-01 23:16  dosboy  阅读(3285)  评论(4编辑  收藏  举报