起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 1124|回复: 0

代码控制条件分支

 关闭 [复制链接]
发表于 2004-4-7 16:48:54 | 显示全部楼层 |阅读模式
当流程的条件分支环节或者条件环节,需要比较复杂的判断来决定条件的值,可以在TFlowBroker的OnCalcProcCondition事件中,通过代码来作复杂的判断,根据判断结果对Command.Accept赋值,Command.Accept表示条件的计算结果(此处还需要对Command.Handled赋值为True,表示已经处理过条件的值,不需要计算条件表达式)。

procedure TMainForm.FlowDDSHCalcProcCondition(...);
var
  lStr: string;
begin
  if SysUtils.SameText(Command.ProcCondition.ID, 'TJ1') then  
    lStr := '0'
  else if SysUtils.SameText(Command.ProcCondition.ID, 'TJ2') then
    lStr := '1';
  Command.Accept := False;  
   //确定使用OnCalcProcCondition里的条件
  Command.Handled := True;  //true表示已经处理过条件的值,不需要计算条件表达式
  DsbDDSH.DataSet.First;
  while not DsbDDSH.DataSet.Eof do
  begin
    if DsbDDSH.DataSet.FieldByName('SHJL').AsString = lStr then
    begin
      Command.Accept := True; //如为true则使用流程规则的条件
      exit;
    end;
    DsbDDSH.DataSet.Next;
  end;
end;


提示:分支条件是代码优先
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2024-12-23 00:52 , Processed in 0.039800 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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