Foxtable(狐表)用户栏目专家坐堂 → 审批流程设计相关


  共有5483人关注过本帖树形打印复制链接

主题:审批流程设计相关

帅哥哟,离线,有人找我吗?
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110648 积分:563148 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/18 15:52:00 [显示全部帖子]

这种表结构我表示无能为力。

建议把流程表改为竖表存储流程:
如表结构:表名、状态,审核人角色、序号
存储的数据如:
测试表、状态1、员工1,1
测试表、状态2、员工2,2
测试表、状态3、经理1,3
测试表、状态4、经理2,4

这样查询的时候,比如测试表当前状态为【状态2】,那么就可以查询到流程表中表名为“测试表”,状态=状态2的序号为2,就很容易知道下一步就是序号3,审核按钮把测试表改为【状态3】即可。使用find只需要2步查询就能知道下一步是什么状态,如果使用sql只需要一步就能获取下一步状态



 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110648 积分:563148 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/18 17:28:00 [显示全部帖子]

1、根据需要审核的行,获取表名和这一行的状态
2、根据表名和状态到流程表查询下一步流程的状态名称
3、把需要审核的行的状态改为上面查询的结果

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110648 积分:563148 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/19 10:13:00 [显示全部帖子]

7楼的代码都没有做任何的改动,还是照搬1楼的。

1、根据需要审核的行,获取表名和这一行的状态
Dim dr As Row = Tables(vars("editTable")).Current
Dim ds  As  DataRow = DataTables("审核流程表").SQLFind("表名称 = '"& vars("editTable")&"' and 审核状态='" & dr("审批状态") & "'") 
2、根据表名和状态到流程表查询下一步流程的状态名称
Dim dr2  As  DataRow = DataTables("审核流程表").SQLFind("表名称 = '"& vars("editTable")&"' and 流程编号> '" & ds("流程编号") & "'" ,"流程编号") 
3、把需要审核的行的状态改为上面查询的结果
dr("审批状态") = dr2("审核状态")

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110648 积分:563148 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/23 16:32:00 [显示全部帖子]

优化什么?使用上有什么问题。

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110648 积分:563148 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/23 20:09:00 [显示全部帖子]

个人习惯问题吧。截图说明一下什么地方不方便

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110648 积分:563148 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/24 10:40:00 [显示全部帖子]

直接查表按顺序画就行了

Dim fnt As New Font("宋体",10)
for each dr as datarow in datatables(xxxx).select("表名称=‘xxx’")


Dim msg As String = dr("序号")
g.DrawString(msg,fnt,Brushes.Red,33,24)  '审批流程编号
g.DrawEllipse(Pens.Blue,28,20,20,20)  '左,上

Dim g1 As Graphics = p.Graphics
Dim fnt1 As New Font("宋体",10)
Dim msg1 As String = dr("状态")
g1.DrawString(msg1,fnt,Brushes.Black,10,45)  'l

next


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110648 积分:563148 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/24 11:05:00 [显示全部帖子]

比如
dim i as integer = 0
Dim fnt As New Font("宋体",10)
for each dr as datarow in datatables(xxxx).select("表名称=‘xxx’")


Dim msg As String = dr("序号")
g.DrawString(msg,fnt,Brushes.Red,33,24)  '审批流程编号
g.DrawEllipse(Pens.Blue,i*20,20,20,20)  '左,上

Dim g1 As Graphics = p.Graphics
Dim fnt1 As New Font("宋体",10)
Dim msg1 As String = dr("状态")
g1.DrawString(msg1,fnt,Brushes.Black,i*20+2,45)  'l

i+=1

next

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110648 积分:563148 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/24 13:19:00 [显示全部帖子]

遍历,然后重新编码

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110648 积分:563148 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/24 14:22:00 [显示全部帖子]


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110648 积分:563148 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/24 15:44:00 [显示全部帖子]

查表获取数据,然后使用wrt.Replace替换

 回到顶部
总数 14 1 2 下一页