以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]工作流递归函数出现跳过某些子节点的错误如何更改?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=73627)

--  作者:loongtai
--  发布时间:2015/8/23 16:32:00
--  [求助]工作流递归函数出现跳过某些子节点的错误如何更改?
针对工作流我做了两个表,一个是工作流属性表,一个是工作流信息表。工作流属性表用于区分工作流的属性及其所属子节点,子节点可以是某种工作流,其下也可以有子工作流。这样就存在父工作流与子工作流的情况。
而工作流信息表是记录已设置有具体信息的工作流。

父工作流节点编号为:F15-150818-1,工作流类型为F15
F15下有4种类型子工作流:
nd1.name=F14 nd1.text=售前工作
nd1.name=F7 nd1.text=生产管控
nd1.name=F6 nd1.text=产品发货
nd1.name=F11 nd1.text=售后服务
其中F6 与F7两种类型的工作流有具体的工作流信息,
F6类型的工作流节点编号为F7-150820-1 和F7-150818-1 两个
F7类型的工作流节点编号为F7-150820-2 和F7-150818-1 两个
F15-150818-1作为目录树的tr.nodes(0)生成目录树时,递归函数如下:

图片点击可在新窗口打开查看此主题相关图片如下:递归函数.png
图片点击可在新窗口打开查看
我的思路是会对4种类型的子工作流逐一进行处理,可是实际结果却是只处理了F14,F7,由于 F7自身存在子工作流,导致F6与F11两个子工作流未进行处理,不知道为什么会这样,找不出原因。

图片点击可在新窗口打开查看此主题相关图片如下:执行结果.png
图片点击可在新窗口打开查看



--  作者:大红袍
--  发布时间:2015/8/23 16:36:00
--  
没看到你什么意思,做例子发上来。
--  作者:loongtai
--  发布时间:2015/8/23 21:35:00
--  
生成的目录树如下:

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20150823210616.png
图片点击可在新窗口打开查看
当选择节点:F15-150818-1后
1.先根据表1生成目录树,nd.name=节点编号,nd.text=节点名称
2.对每一子节点进行处理:
2.1如果此节点在表2中无记录(工作流编号以节点name开始),则该节点name不变,以该节点为父节点,重复步骤1-2
2.2如果此节点有一条记录,则nd.name=记录中的工作流编号,再以该节点为父节点,重复步骤1-2
2.3如果此节点有多条记录,则增加相应节点数,每个节点nd.name=记录中的工作流编号,再以该节点为父节点,重复步骤1-2
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:工作流递归函数问题.zip



--  作者:loongtai
--  发布时间:2015/8/24 8:38:00
--  
还请版主帮帮忙,指教指教


--  作者:大红袍
--  发布时间:2015/8/24 9:09:00
--  
汗,你的例子,就只有两个表,窗口什么都没有,你现在具体什么问题?
--  作者:loongtai
--  发布时间:2015/8/24 9:36:00
--  
就是由父节点利用递归函数生成目录树的问题,我再弄个窗口放上去
--  作者:loongtai
--  发布时间:2015/8/24 9:40:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:工作流递归函数问题.zip


--  作者:大红袍
--  发布时间:2015/8/24 10:29:00
--  
 汗,看不懂你什么逻辑。
--  作者:loongtai
--  发布时间:2015/8/24 10:56:00
--  
看不懂???唉,表达能力差真愁人
--  作者:大红袍
--  发布时间:2015/8/24 11:08:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:工作流递归函数问题.foxdb