起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 343|回复: 12

【结贴】如何判断下一节点为结束节点。。。急

[复制链接]
发表于 2009-3-13 11:46:02 | 显示全部楼层 |阅读模式
有a,b两个审批节点,c为条件分支。f为结束节点。
a流转,先经过c。如果为true则流转到f,如果为false则流转到b。

问题是,如何判断a的下一节点是否为结束节点?

注:在代码中用 if (条件表达式) then 判断
回复

使用道具 举报

发表于 2009-3-13 11:48:50 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-13 11:53:55 | 显示全部楼层
要判断下一环节是否为结束环节可以通过以下三种方法:

1、调用GetSuccedentUnits方法获取满足参数条件的下一个环节列表,然后判断环节的类型是否结束环节的类型。

2、调用GetSuccedentUnitss方法获取满足参数AInKinds和AStopKinds都要包括TProcUnitKind.ukFinish条件的下一环节列表,如果不为空就表示下一环节是结束环节。

3、调用SuccedentUnits[0]获取下一环节,然后用环节的类型来判断是否为结束环节。

procedure TMainForm.GetSuccedentUnitsKind();
begin
  if FlowDDTZ.FlowControl.CurrentProcUnit.SuccedentUnits[0].Kind=
     TProcUnitKind.ukFinish  then   // TProcUnitKind.ukFinish=true表示结束环节
   Dialogs.ShowMessage('是结束环节');
end;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-13 11:55:18 | 显示全部楼层
注:2楼的链接 即 3楼的方法。

试了一下,3楼的方法可以判断下一节点直接为结束节点的情况。但隔了个条件分支就判断不了了。
回复 支持 反对

使用道具 举报

发表于 2009-3-13 12:03:16 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-13 12:09:21 | 显示全部楼层
我用
if command.AllowFlowTasks.FindFlowTask('FINISH') <> nil   then
也不行。

你是说用下面这个吗
if  Command.AllowFlowTasks.Count <= 0 then
回复 支持 反对

使用道具 举报

发表于 2009-3-13 13:46:05 | 显示全部楼层
不知道楼主想实现啥需求,我又仔细看了一下1楼的描述
a流转,经过c的条件分支的判断,如果为true则流转到结束环节F,如果为false则流转到b。这个条件在设计期间你已经定义好,是已知的,所以在代码中直接判断这个条件是否成立就可以了,
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-13 14:01:53 | 显示全部楼层
万一有10个条件的时候呢。。。还要是可以有不同组合的。

我是想在下一个节点不为结束时进行一些操作。
回复 支持 反对

使用道具 举报

发表于 2009-3-13 14:04:42 | 显示全部楼层
楼主,那通过
if  Command.AllowFlowTasks.Count <= 0 then
这个条件判断不可以吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-13 14:08:13 | 显示全部楼层
基于以上的业务需求,有下面的函数

  if  Command.AllowFlowTasks.Count > 0 then
  begin
      test();
  end;
这样如果下一节点为结束,则不会执行test()。
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-24 04:42 , Processed in 0.040673 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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