请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

Simon.hu 讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2019-2-1 14:06  /   查看:9862  /  回复:1
本帖最后由 willning 于 2022-8-15 15:34 编辑

重要提示

活字格在V8.0中提供“流程中心”,可直接解决该问题。


观看工作流教学课程

============以下为旧版本的解决方案,适用于V7.0 Update 1及更早期版本============

对于活字格的工作流,相信大家已经很熟悉了,但我们往往真实的使用环境下,可能会有好几个表都需要有工作流,比如下面的截图
image.png743919677.png
请假表需要走工作流,但是报销表也需要走工作流,当然在的业务可能比我这里举的例子中的表更多,越多,我们就会越有一个期望,我们在想做待办的时候,总是想将所有有待办事项,都放到同一个表里统一提醒这样比较的方便。
那么在活字格中应该怎么解决这个问题呢?
答案很简单就是----视图。

我们这个例子中,有2个表第一个是“请假”一个是“报销”,我们的视图是要这样写的
  1. with cte as (
  2. Select FGC_AssignTo,FGC_State,"请假表" as tablename,id||"请假表" as key,id as "原表ID" from 请假
  3. union all
  4. select  FGC_AssignTo,FGC_State,"报销表" as tablename,id||"报销表" as key,id as "原表ID" from 报销
  5. )
  6. select
  7.   (select count(*) from cte b  where a.key >= b.key) as ID,
  8.   tablename as 目标表,
  9.   FGC_AssignTo,
  10.   FGC_State as 状态,
  11.   原表ID
  12. from cte as a
  13. order by key
复制代码

PS:如果有多个表的时候,找上面的继续往这个地方加就行,
image.png59064940.png
大致的做法如下
with cte as (
Select FGC_AssignTo,FGC_State,"请假表" as tablename,id||"请假表" as key,id as "原表ID" from 请假
union all
select  FGC_AssignTo,FGC_State,"报销表" as tablename,id||"报销表" as key,id as "原表ID" from 报销
union all
select  FGC_AssignTo,FGC_State,"表1" as tablename,id||"表1" as key,id as "原表ID" from 表1
)


于是,我们就有了这样的一个视图
image.png387413329.png
切记将这个ID设置成主键,以便于我们后面的联动
image.png190942076.png

基础的准备工作已经做好了,接下来我要装逼了~
装B设计1:制作2个页面,来专门处理审批,同时也为下一步的页面容器单元格做素材
image.png380615538.png

装B设计2: 搞一个主页,将刚才的视图绑定上来,并且做如下的几部设置
image.png23021544.png

大功告成,我们来看看效果:

本来在一个页面中处理多个表的工作流,是一件很让人头疼的事,但是,现在我们这样做了以后就不一样了,多个表的工作流已经让我们看起来合并到一个视图里了
效果1.gif

但是在,我们提交或者审批了以后表里的数据似乎不变,这个我们要做一个小技巧,就是刷新一下数据
在“请假审批”和“报销审批”中都加上如下的设计,即可。具体需要的代码如下:
  1. Forguncy.Page.reloadBindingData(null);
复制代码
image.png223118285.png
完成后的效果:
最终.gif
具体的做法个工程文件,见附件




合并待办事项.fgcc

518.42 KB, 下载次数: 498

评分

参与人数 6满意度 +30 收起 理由
ShiD + 5
szwckakar + 5
xxz4362 + 5 下载学习中
amtath + 5 很给力!正需要
nuan1989 + 5 很给力!
djs521720 + 5 正在整理设计代办事项表来统计,结果官方都.

查看全部评分

1 个回复

倒序浏览
Lay.Li悬赏达人认证 活字格认证
超级版主   /  发表于:2021-12-30 10:12:47
沙发
如果使用的是sql server数据库的话,可以参考下面的sql语句
  1. create view 待办事项 as
  2. with cte as (
  3. Select FGC_AssignTo,FGC_State,'请假表'as tablename,cast(id as varchar)+''+'请假表' as key1,id as 原表ID from 请假
  4. union all
  5. select  FGC_AssignTo,FGC_State,'报销表' as tablename,cast(id as varchar)+''+'报销表' as key1,id as 原表ID from 报销
  6. )
  7. select  TOP (100) PERCENT * from(
  8. select
  9.   (select count(*) from cte b  where a.key1 >= b.key1) as ID,
  10.   tablename as 目标表,
  11.   FGC_AssignTo,
  12.   FGC_State as 状态,
  13.   原表ID
  14. from cte as a ) t
  15. order by t.ID
复制代码
如果有多个表的时候替换即可
  1. select FGC_AssignTo,FGC_State,'表名' as tablename,cast(id as varchar)+''+'表名' as key1,id as 原表ID from 表名
复制代码






回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部