起步软件技术论坛-X3

 找回密码
 立即注册
搜索
楼主: jianth2005

【结贴】如何获取流程的下一环节 ?

[复制链接]
发表于 2009-12-18 21:54:06 | 显示全部楼层

可以通过 12楼代码获取到后续的环节,然后你根据17楼的代码根据环节找任务的方式。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-20 16:29:31 | 显示全部楼层
还是不明白啊!
你看看我的流程图

111.jpg

44.2 KB, 下载次数: 223

回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-20 16:32:14 | 显示全部楼层
送检清单往下流到“委托单”或者“报告流程”,这个两个是用户自己选择的,
怎么获取用户选择了哪个功能?

说明:“委托单”是一个功能环节,“报告流程”是一个子流程
回复 支持 反对

使用道具 举报

发表于 2009-12-20 22:25:11 | 显示全部楼层
请问楼主,你按上面说得试了么?如果没有,请按
//取后续环节的功能名称
FlowsBroker.FlowControl.CurrentProcUnit.SuccedentUnits[0].DisplayName
//如果有逻辑环节
FlowsBroker.FlowControl.CurrentProcUnit.SuccedentUnits[0].SuccedentUnits.DisplayName


var
  mFlowTask:TFlowTask;
begin
  mFlowTask := Command.FlowTasks.FindFlowTask('orhj');//根据环节找任务
  if mFlowTask <> nil then
    Dialogs.ShowMessage('1')
  else
    Dialogs.ShowMessage('0');

试试,如果不可以你再反馈。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-21 09:14:24 | 显示全部楼层
var
  i :integer;
  mFlowTask :TFlowTask;
begin
   for i :=0 to  FlowBroker1.FlowControl.CurrentProcUnit.SuccedentUnitCount-1 do
   begin
      mFlowTask := Command.FlowTasks.FindFlowTask(FlowBroker1.FlowControl.CurrentProcUnit.SuccedentUnits[0].SuccedentUnits.ID);
      if mFlowTask<>nil then
      begin
          Dialogs.ShowMessage(FlowBroker1.FlowControl.CurrentProcUnit.SuccedentUnits[0].SuccedentUnits.DisplayName);
      end;
   end;
end;
---------------------------------
是这样吗?
我这样写了,结果还是一样
回复 支持 反对

使用道具 举报

发表于 2009-12-21 09:21:11 | 显示全部楼层
当然不对,上面 25楼的逻辑上还缺少一个逻辑
//取后续环节的功能名称
FlowsBroker.FlowControl.CurrentProcUnit.SuccedentUnits[0].DisplayName
//如果有逻辑环节 ------------少了这层逻辑
FlowsBroker.FlowControl.CurrentProcUnit.SuccedentUnits[0].SuccedentUnits.DisplayName
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-21 09:31:08 | 显示全部楼层
不懂怎么加上去了。。
你帮我补上去吧。
谢谢
回复 支持 反对

使用道具 举报

发表于 2009-12-21 09:53:41 | 显示全部楼层
类似于这样
for i := 0 to Command.FlowControl.CurrentProcUnit.SuccedentUnitCount - 1 do
  begin
    if Command.FlowControl.CurrentProcUnit.SuccedentUnits.ID = 'OR' then //这里判断一下,是否逻辑环节
    begin
      for j := 0 to Command.FlowControl.CurrentProcUnit.SuccedentUnits.SuccedentUnitCount - 1 do
      begin
       //根据环节找任务 ....

此方法不一定是最好的,但是可以实现。
回复 支持 反对

使用道具 举报

发表于 2009-12-21 09:58:49 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-21 10:45:03 | 显示全部楼层
回28楼:
for i :=0 to Command.FlowControl.CurrentProcUnit.SuccedentUnitCount-1 do
   begin
       if Command.FlowControl.CurrentProcUnit.SuccedentUnits.ID = 'OR1' then
       begin
           for j:=0 to Command.FlowControl.CurrentProcUnit.SuccedentUnits.SuccedentUnitCount-1 do
           begin
               mFlowTask := Command.FlowTasks.FindFlowTask(FlowBroker1.FlowControl.CurrentProcUnit.SuccedentUnits[0].SuccedentUnits[j].ID);
               if mFlowTask<>nil then
               begin
                   Dialogs.ShowMessage(FlowBroker1.FlowControl.CurrentProcUnit.SuccedentUnits[0].SuccedentUnits[j].DisplayName);
               end;
           end;
       end;
   end;

------
结果还是一样啊。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-13 04:35 , Processed in 0.041296 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表