随笔 - 41  文章 - 11  评论 - 88  0

1. “员工请假”流程及在线表单开发示例

1.1. 描述

通过本示例达到快速对F2流程管理平台的在线表单速讯上手及零编码式的开发。实现一个以请假为示例的流程及在线表单,及请假数据的查询。

1.2. 目标效果

(1) 如何配置一个“请假在线表单”

(2) 如何配置请假流程

(3) 如何查询我个人的请假历史数据

(4) 如何让管理员查询所有请假的数据

1.3. 如何配置一个“请假在线表单”

1.3.1. 数据库表定义

点击在线表单==》数据库表定义==》新增,如下图:

 

 

点击编辑字段,如下图:

 

点击编辑字段,新建请假的所有字段

 

说胆:每个表中必须要有CreatorId和CreatedTime,这两个字段的意义在于存放创建人ID和数据创建时间,后面将用此字段做过过滤条件来做表的数据查询管理。申请人ID在表单元素配置时会配置为隐藏域,当请假人提起请假时会自动绑定申请人的用户ID,通常也会有一个对应的请假人姓名,如上图所示。当然这两个字段也不是绝对要的,如果没有这两个字段那么需要实现“目标效果”中的第3和第4点需要在菜单地址中增加多两个参数

参数地址传入指定的字段来代替这两个字段,增加sortName参数和creatorId参数,详细见

后面的说明在“如何时查询个人的请假历史数据”中有提到。

点击生成物理表

 

到此数据库表就配置完成了。

1.3.2. 数据对象定义

点击“新增”,选择上面定义好的数据库表

 

点击编辑子表可以添加子表,由于请假表没有子表,所以可忽略。

 

至此,数据对象字义已完成。

1.3.3. 表单定义

表单定义是很重要的一环节,需要定义字段的控件元素。

新增一个表单定义,选择你刚才配置的数据对象

点击编辑元素字段,如下图:

 

选择数据对象中的字段后效果如下图所示:

编辑每个字段的控件类型,如下图编辑姓名字段,由于申请人的姓名是不需要用户自己来输入的,通过配置默认值来自动填写:

 

所在部门也是和姓名同理,通过配置默认值来达到提起流程时自动填写。

 

 

配置请假类别,因为请假类型是一个选项,我们可以从数据库在配置,通过自定义、数据字典,或Sql来获取选项。下面是通过自定义选项的配置;

 

 

 


配置申请日期,由于申请日期用的是CreatedTime创建时间,在意义上是相同的,主要是用于后面列表的默认排序字段,通过默认获取当前时间来设置申请日期。


设置申请人ID,由于申请人ID是不需要被显示的,同时也是不需要用户自己来输入的所以我们配置申请人ID为隐藏域,同时设置默认值为当前登录者ID,如下图

提示:我们在实际开发使用过程中经常要用到各个身份的ID作为来维护数据的关系,比如用户ID,部门ID是最常见的,所以这些ID都通过隐藏域和设置默认值来实现数据自动填写和存储到你自定义的数据库表中。这些值都能通过默认值或高级控件“自定义选择器”和“自定义选择对话框”来实现。

1.3.4. 配置表单应用

需要将上面定义的请假在线表单定义应用成一个表单应用供流程引擎调用,如下图所示:

 

编辑表单Html模板如下图,点击生成表单模板,调整布局格式后如下图所示:

 

点击保存。

 

 

 

 

 

致此表单定义完成。

1.4. 如何配置请假流程

配置流程定义请参见流程定义相关帮助,这些不再赘述。

配置表单应用

 

 

表单表单权限,表单权限分为读和写,可以配置哪些字段在哪个环节或都此人可见可编辑的权限。首先分析请假表业务,所有字段都在开始的时候由提单人填写,并且申请人姓名和申请时间提单人不能填写只能由系统默认生成。下面我们来达到这效果的配置。

 


先通过批量设置,再单独设置个别的字段,如下图:

 

 

根据业务需求,所有字段只能在提单时填写,设置如下:

 

 

单独设置:申请人姓名和申请日期,因为这两个字段提单人也不能修改。通过选择“空环节”来达到任何环节都不能编辑此字段的效果。

 

 

此致表单配置完成

最后发起流程,申请日期是灰色不可编辑,同时已是当前时间,效果如下:

 

 

1.5. 如何查询我个人的请假历史数据

下面来看看如何查询我个人请假的历史表单内的数据,也就是最开始的时候我们定义的请假数据库表中的数据。效果如下:

 

那么我们仅需要配置一个系统菜单,菜单的地址规则如下:

/SingleQuery/MySearch/?appId=流程应用ID&tableName=数据库表名

延展:如果你的数据库表字段中没有CreatedId和CreatedTime那么也可以把在地址后面增加sortName参数和creatorId参数,对应的值就是字段名称,用于指定对应分别代表这两个字段。如下

/SingleQuery/MySearch/?appId=AB&tableName=cust_qjsqb&sortName=默认排序字段名& creatorId=创建人字段名

请假数据个人查询的地址是:

/SingleQuery/MySearch/?appId=AB&tableName=cust_qjsqb

 

通过点击配置的菜单显示数据库列表如下,以下是通过配置好列表表头的效果,一开始出来的列表将会是所有字段,我们需要配置一些显示哪一些字段,哪一些字段隐藏,哪一些字段做为查询条件。

 

 

是否Sql输出:指的是列表展现数据时不查询此字段,由于大文本字段非常庞大并且字段内容可会有一些是Html或Json的数据,如果查询出来会导致列表的数据源非常大,不利于展现显示,强烈性建议把大本的字段去掉Sql输出的勾选,并且Grid列隐藏打上勾。

如果仅是是Grid列隐藏打勾并不影响Json数据的正常输出,只是没有在列表中显示。依然还是能通过EasyUI的Row能获取得到Grid列隐藏的数据,如果把Sql输出去除勾选则EasyUI的row中也不存在此字段的属性。

冻结列:冻结列的好处在于浏览器大小变化时不影响列表的展示和查看,更好的浏览效果,通常列表要冻结前四列。

 

 

 

日期字段市里为搜索条件时浏览:需要把是否可编辑勾选上,如下图

 

日期查询参数,默认所有查询方式都是like,对于日期使用like无意义,可修改为大于等于,如下图

 

 

具体参考系统请假示例的配置。

致此配置完成。

1.6. 如何让管理员查询所有请假的数据

配置让管理员查询到所有人的请假数据库表数据和上面的配置相同,只是不会过虑当前用户的数据,将显示请假表数据库中的所有数据,区别仅是菜单地址的不同。

本节不需要配置表头,由于在上一小节中已经配置过了。

菜单地址格式:

/SingleQuery/ListSearch/?appId=应用ID&tableName=数据库表名

请假如下效果的地址是:/SingleQuery/ListSearch/?appId=AB&tableName=cust_qjsqb

 

posted on 2016-12-30 18:05 F2BPM工作流 阅读(...) 评论(...) 编辑 收藏