Simon.hu 发表于 2019-2-1 14:06:02

一看就会,超有用活字格技能:五十一,将所有有工作流的表,汇总成一张待办表(新)

本帖最后由 willning 于 2022-8-15 15:34 编辑

重要提示

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


观看工作流教学课程

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

对于活字格的工作流,相信大家已经很熟悉了,但我们往往真实的使用环境下,可能会有好几个表都需要有工作流,比如下面的截图

请假表需要走工作流,但是报销表也需要走工作流,当然在的业务可能比我这里举的例子中的表更多,越多,我们就会越有一个期望,我们在想做待办的时候,总是想将所有有待办事项,都放到同一个表里统一提醒这样比较的方便。
那么在活字格中应该怎么解决这个问题呢?
答案很简单就是----视图。

我们这个例子中,有2个表第一个是“请假”一个是“报销”,我们的视图是要这样写的with cte as (
Select FGC_AssignTo,FGC_State,"请假表" as tablename,id||"请假表" as key,id as "原表ID" from 请假
union all
selectFGC_AssignTo,FGC_State,"报销表" as tablename,id||"报销表" as key,id as "原表ID" from 报销
)
select
(select count(*) from cte bwhere a.key >= b.key) as ID,
tablename as 目标表,
FGC_AssignTo,
FGC_State as 状态,
原表ID
from cte as a
order by key
PS:如果有多个表的时候,找上面的继续往这个地方加就行,

大致的做法如下
with cte as (
Select FGC_AssignTo,FGC_State,"请假表" as tablename,id||"请假表" as key,id as "原表ID" from 请假
union all
selectFGC_AssignTo,FGC_State,"报销表" as tablename,id||"报销表" as key,id as "原表ID" from 报销
union all
selectFGC_AssignTo,FGC_State,"表1" as tablename,id||"表1" as key,id as "原表ID" from 表1
)


于是,我们就有了这样的一个视图

切记将这个ID设置成主键,以便于我们后面的联动


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


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


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

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


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

具体的做法个工程文件,见附件




Lay.Li 发表于 2021-12-30 10:12:47

如果使用的是sql server数据库的话,可以参考下面的sql语句create view 待办事项 as
with cte as (
Select FGC_AssignTo,FGC_State,'请假表'as tablename,cast(id as varchar)+''+'请假表' as key1,id as 原表ID from 请假
union all
selectFGC_AssignTo,FGC_State,'报销表' as tablename,cast(id as varchar)+''+'报销表' as key1,id as 原表ID from 报销
)
selectTOP (100) PERCENT * from(
select
(select count(*) from cte bwhere a.key1 >= b.key1) as ID,
tablename as 目标表,
FGC_AssignTo,
FGC_State as 状态,
原表ID
from cte as a ) t
order by t.ID如果有多个表的时候替换即可
select FGC_AssignTo,FGC_State,'表名' as tablename,cast(id as varchar)+''+'表名' as key1,id as 原表ID from 表名





页: [1]
查看完整版本: 一看就会,超有用活字格技能:五十一,将所有有工作流的表,汇总成一张待办表(新)