起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 272|回复: 8

【搞定】[请求]如何代码控制流程的流转条件**

[复制链接]
发表于 2007-5-28 11:14:53 | 显示全部楼层 |阅读模式
窗体中用了流程代理组件,想在流程流转和回退时实现以下功能:
1,当满足条件a 时,可以流转,但不能回退,回退按钮变灰(不可用),或点击回退按钮是弹出警告框,告知此条件下不能回退。
2,当满足条件b 时,可以回退,但不能流转,实现效果和1相同。回退时的效果弹出一个对话框询问是否回退,如果是,则直接退回给提交人c,不需要弹出任务框来选择回退人,默认的提交人可能是d 或者e.

代码写在BeforeFlowOut和BeforeFlowBack中,具体该如果编写?希望能给出控制按钮是否可用和弹出警告框两种方法。我在论坛里没有查询到我想要的这种效果,望回复。
回复

使用道具 举报

 楼主| 发表于 2007-5-28 11:38:14 | 显示全部楼层
没人来回答吗???
回复 支持 反对

使用道具 举报

发表于 2007-5-28 12:21:05 | 显示全部楼层
呵呵,这个应该bbs中有比较多的帖子吧,你是以“BeforeFlowOut ”或者“BeforeFlowBack ”来搜索的吗?代码非常简单的,在这两个“BeforeFlowOut” 和“ BeforeFlowBack” 事件中都有一个Command参数,通过调用 Command.Accept  的值来控制是否能流转
例如 http://bbs.justep.com/forum.php?mod=viewthread&tid=4095
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-30 10:21:01 | 显示全部楼层
为什么我写了代码,却不能控制流程,代码如下:

procedure TConTestRep_Win.FlowBroker1BeforeFlowOut(Sender: TObject; Command: TFlowOutCommand);
begin
     if dsbMaster.DataSet.FieldByName('FDEALRESULT').AsString = nil then
     begin
        Command.Accept := false;
        jsDialogs.ShowWarning('审批结论为空,不能流转','警告');
     end
     else if dsbMaster.DataSet.FieldByName('FDEALRESULT').AsString = -1 then
     begin
        Command.Accept := false;
        jsDialogs.ShowWarning('重新测试请使用回退','警告');
     end
     else
        Command.Accept := true;
end;

代码哪里写的不对吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-30 11:17:38 | 显示全部楼层
麻烦版主看看
回复 支持 反对

使用道具 举报

发表于 2007-5-30 11:37:15 | 显示全部楼层
你跟踪过吗?你的条件写的对吗?

判断字段是否为空,DataSetBroker1.DataSet.FieldByName('parent').IsNull  不是 dsbMaster.DataSet.FieldByName('FDEALRESULT').AsString = nil
回复 支持 反对

使用道具 举报

发表于 2007-5-31 18:16:31 | 显示全部楼层
按钮变灰可以在按钮上绑一个action,然后在action的onupdate事件中写
procedure TMainForm.Action1Update(Sender: TObject);
begin
  if ... then
    (Sender as TAction).Enabled := False;
end;
回复 支持 反对

使用道具 举报

发表于 2007-6-1 15:16:49 | 显示全部楼层
这个还有问题吗?
回复 支持 反对

使用道具 举报

发表于 2007-6-5 11:54:18 | 显示全部楼层
由于长时间没有回复,先结贴了,有问题请开新帖。
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-6-21 12:11 , Processed in 0.043664 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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