zoukankan      html  css  js  c++  java
  • Infopath+Designer工作流设计之二工作流设计

    准备工作

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

    序号

    字段名称

    类型

    备注

    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

  • 相关阅读:
    数据库生成连续编号 前几位为零
    C#中图片与BASE64码互相转换
    C#基于Socket的CS模式的完整例子
    一个公共类
    HttpCookie 操作Cookie
    C#打包SQL数据库部署安装
    <转>遍历 进程 内的内核对象
    《windows核心编程》–Windows内存体结构(二)
    《windows核心编程》–Windows内存体结构(一)
    《windows 核心编程》 探索虚拟内存
  • 原文地址:https://www.cnblogs.com/KimhillZhang/p/1529374.html
Copyright © 2011-2022 走看看