手册
1. 表单扩展
1.1 表单设计时如何添加JS校验
1.2 【引入脚本】实现修改人与修改日期在编辑时更新
1.3 【引入脚本】字段值为空时不显示
1.4 表单列表数据导入jar包校验说明
1.5 通过表单js控制子表的显示或隐藏
1.6 主表汇总获取子表的描述信息
1.7 【初始赋值】如何对某个字段赋初始默认值
1.8 数字字段对比不允许大于另一个字段
1.9 【引入脚本】多选框的隐藏显示控制
1.10 PC表单隐藏控件内容
1.11 【引入脚本】通过表单参数判断来实现接口参数回填
1.12 【按钮前置事件】通过按钮事件来校验表单账号是否有邮箱
1.13 【引入脚本】通过调用本地关联查询的接口将第一行数据回填至表单
1.14 【编写公式】日期格式化
1.15 【子表回填】子表对话框数据根据主表选择的内容自动回填
1.16 【引入脚本】js调用接口执行一个脚本,获取数据后反填到表单上或者将结果与表单内容对比,可以做表单校验
1.17 【引入脚本】js将子表末行的数据更新
1.18 【引入脚本】控制子表回填按钮的隐藏
1.19 【引入脚本】通过表单参数判断来实现子表的只读和编辑效果
1.20 【引入脚本】隐藏子表的添加按钮
1.21 【引入脚本】隐藏子表每行复制、删除等按钮
1.22 【关联查询】自定义SQL过滤数据
1.23 【引入脚本】实现流程第二节点回传数据致表单
1.24 【引入脚本】js控制子表中单独一行的某个字段的显示隐藏
1.25 【引入脚本】js请求接口,获取数据后将数据push到子表上
1.26 通过字段控制其他字段的显隐读写
2. 门户扩展
3. 流程定义扩展
3.1 分支网关的变量如何获取子表数据
3.2 通过初始赋值获取多人会签节点的审批人并存储到某一字段
3.3 通过按钮控制工单状态
3.4 流程分支网关处用发起人所属角色判断走向
4. 人员脚本扩展
5. 常用脚本扩展
5.1 流程状态通知方案
5.2 节点按钮前置脚本
5.3 更新字段值
6. 表单列表扩展
6.1 如何格式化内容导出
6.2 如何格式化复选选项
6.3 【JS按钮】表单列表审批人通过js按钮跳转至对应的待办
6.4 【JS按钮】通过JS按钮点击发起流程,并将当前行某字段数据自动推送到发起流程的表单中
6.5 【数据过滤】表单列表中数据根据当前人过滤当前人审批过的数据
6.6 【js扩展】根据日期比较结果控制字段颜色
6.7 【前置js脚本】控制按钮显隐
7. 功能高级说明
7.1 流程按钮_加签/征询/流转
7.2 对话框/关联查询自定义SQL的使用
8. 典型场景应用
8.1 填报汇总功能
8.2 考勤审批管理
8.3 表单校验
8.4 绑定查询关联操作说明
8.5 快速批量添加数据,引入脚本
8.6 通过sql和数据列表的方式快速生成考勤统计报表
8.7 栏目中配置跳转地址

通过sql和数据列表的方式快速生成考勤统计报表

598
唐乐
2021-09-13 14:40:59
分享链接

场景:通过数据列表实现每月考勤数据的统计生成报表展示。

需求如图:

实现步骤:

首先需建立对应的表字段,字段如下:姓名、岗位、打卡日期、上班打卡时间、下班打卡时间,日期字段类型需要选择日期类型,如图:

保存好后,可以点击一键生成表单,然后设置表单样式就可以了:

具体设置表单请参考表单链接:

http://www.hotent.org:8880/chanzhi/index.php/book/EIPSAAS7.2/34.html

 

编写视图sql,如图参考:

SELECT a.F_yd AS 月度 ,a.F_xm AS 姓名,a.F_gw AS 岗位,
		/*列转行语法*/
    MAX(CASE a.F_r WHEN '01' THEN a.F_kqsjtj ELSE '' END ) '一',
    MAX(CASE a.F_r WHEN '02' THEN a.F_kqsjtj ELSE '' END ) '二',
    MAX(CASE a.F_r WHEN '03' THEN a.F_kqsjtj ELSE '' END ) '三',
  MAX(CASE a.F_r WHEN '04' THEN a.F_kqsjtj ELSE '' END ) '四',
  MAX(CASE a.F_r WHEN '05' THEN a.F_kqsjtj ELSE '' END ) '五',
    MAX(CASE a.F_r WHEN '06' THEN a.F_kqsjtj ELSE '' END ) '六',
    MAX(CASE a.F_r WHEN '07' THEN a.F_kqsjtj ELSE '' END ) '七',
  MAX(CASE a.F_r WHEN '08' THEN a.F_kqsjtj ELSE '' END ) '八',
    MAX(CASE a.F_r WHEN '09' THEN a.F_kqsjtj ELSE '' END ) '九',
    MAX(CASE a.F_r WHEN '10' THEN a.F_kqsjtj ELSE '' END ) '十',
  MAX(CASE a.F_r WHEN '11' THEN a.F_kqsjtj ELSE '' END ) '十一',
    MAX(CASE a.F_r WHEN '12' THEN a.F_kqsjtj ELSE '' END ) '十二',
    MAX(CASE a.F_r WHEN '13' THEN a.F_kqsjtj ELSE '' END ) '十三',
  MAX(CASE a.F_r WHEN '14' THEN a.F_kqsjtj ELSE '' END ) '十四',
    MAX(CASE a.F_r WHEN '15' THEN a.F_kqsjtj ELSE '' END ) '十五',
    MAX(CASE a.F_r WHEN '16' THEN a.F_kqsjtj ELSE '' END ) '十六',
  MAX(CASE a.F_r WHEN '17' THEN a.F_kqsjtj ELSE '' END ) '十七',
    MAX(CASE a.F_r WHEN '18' THEN a.F_kqsjtj ELSE '' END ) '十八',
    MAX(CASE a.F_r WHEN '19' THEN a.F_kqsjtj ELSE '' END ) '十九',
  MAX(CASE a.F_r WHEN '20' THEN a.F_kqsjtj ELSE '' END ) '二十',
    MAX(CASE a.F_r WHEN '21' THEN a.F_kqsjtj ELSE '' END ) '二十一',
    MAX(CASE a.F_r WHEN '22' THEN a.F_kqsjtj ELSE '' END ) '二十二',
  MAX(CASE a.F_r WHEN '23' THEN a.F_kqsjtj ELSE '' END ) '二十三',
    MAX(CASE a.F_r WHEN '24' THEN a.F_kqsjtj ELSE '' END ) '二十四',
  MAX(CASE a.F_r WHEN '25' THEN a.F_kqsjtj ELSE '' END ) '二十五',
    MAX(CASE a.F_r WHEN '26' THEN a.F_kqsjtj ELSE '' END ) '二十六',
  MAX(CASE a.F_r WHEN '27' THEN a.F_kqsjtj ELSE '' END ) '二十七',
    MAX(CASE a.F_r WHEN '28' THEN a.F_kqsjtj ELSE '' END ) '二十八',
  MAX(CASE a.F_r WHEN '29' THEN a.F_kqsjtj ELSE '' END ) '二十九',
    MAX(CASE a.F_r WHEN '30' THEN a.F_kqsjtj ELSE '' END ) '三十',
  MAX(CASE a.F_r WHEN '31' THEN a.F_kqsjtj ELSE '' END ) '三十一'
 FROM (select F_xm,F_gw,DATE_FORMAT(f_dkrq,'%Y%m') as F_yd, 
-- 使用case 语法判断日期是否为周末,打卡时间是否为迟到、早退
 case
 when WEEKDAY(F_dkrq) = 6 
 then "周日" 
 when WEEKDAY(F_dkrq) = 5 
 then "周六"  
 when (DATE_FORMAT(F_sbdksjaa,'%H:%i') > DATE_FORMAT( CURDATE( ) ,'09:00'))&&(DATE_FORMAT(f_xbdksjaa,'%H:%i') >= DATE_FORMAT( CURDATE( ) ,'18:00'))
 then concat( DATE_FORMAT( F_sbdksjaa, '%H:%i' ), '-', DATE_FORMAT( f_xbdksjaa, '%H:%i' ), '迟到' )
 WHEN (DATE_FORMAT(F_sbdksjaa,'%H:%i') <= DATE_FORMAT( CURDATE( ) ,'09:00'))&&(DATE_FORMAT(f_xbdksjaa,'%H:%i') < DATE_FORMAT( CURDATE( ) ,'18:00'))
 then concat( DATE_FORMAT( F_sbdksjaa, '%H:%i' ), '-', DATE_FORMAT( f_xbdksjaa, '%H:%i' ), '早退' )
 WHEN (DATE_FORMAT(F_sbdksjaa,'%H:%i') > DATE_FORMAT( CURDATE( ) ,'09:00'))&&(DATE_FORMAT(f_xbdksjaa,'%H:%i') < DATE_FORMAT( CURDATE( ) ,'18:00'))
 then concat( DATE_FORMAT( F_sbdksjaa, '%H:%i' ), '-', DATE_FORMAT( f_xbdksjaa, '%H:%i' ), '迟到早退')
 else concat( DATE_FORMAT( F_sbdksjaa, '%H:%i' ), '-', DATE_FORMAT( f_xbdksjaa, '%H:%i' ))   
 end as F_kqsjtj ,day(f_dkrq) as F_r FROM w_kqjcxxb)a
GROUP BY a.F_yd,a.F_xm,a.F_gw;

效果:




报表配置:

使用宏天EIP系统功能:

应用中心>数据应用—>表单列表

点击添加,sql配置写的sql生产的视图




生成好后,可以通过字段设置,编写规则配置字段颜色

点击对应的数据列表>点击字段设置—>点击字段后面报按钮



点击保存后,进入视图列表添加


保存后生成最终效果:


可下载sql导入:


发表评论
评论通过审核后显示。