起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 166|回复: 9

【结贴】beforeFlowOut事件执行顺序问题**

[复制链接]
发表于 2009-1-6 16:14:28 | 显示全部楼层 |阅读模式
我现在用的是3002版,包括前使用的几个版本, 我在流程的beforeFlowOut事件里写了判断数据是否保存,如果没有保存则提示(自己写的提示 再 accept:=false 可以屏蔽本身的保存提示窗体)

现在升级到了3102版,流程流转时发现是先弹出本身的保存提示窗体,再执行beforeFlowOut事件
(原来写在事件里的东西没有用了,因为里面写了些约束条件)

执行顺序怎么变了呀,我想死!!!!!!
回复

使用道具 举报

发表于 2009-1-6 16:52:56 | 显示全部楼层
调整顺序是为了保证流转过程中,事务能够成功执行。

楼主,你做的是什么样的校验,放到数据集的BeforeApplyUpdates中可以吗?
回复 支持 反对

使用道具 举报

发表于 2009-1-6 17:05:35 | 显示全部楼层
我们是在beforeFlowOut中做提交数据的验证!
BeforeApplyUpdates中验证不符合要求,返回的时候会造成填入的数据都清空!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-1-6 17:08:34 | 显示全部楼层
我是在 DataNavigatorBeforeAction 里校验数据的
因为有 var Accept: Boolean 参数, 如果输入的不符合要求(如有些不能为空)
Accept:=false;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-1-6 17:12:48 | 显示全部楼层
procedure TSQB.FlowBroker1BeforeFlowOut(Sender: TObject; Command: TFlowOutCommand);
var
  Id:string;
begin
  Id := FlowBroker1.FlowControl.CurrentProcUnit.ID;
  if (Id = 'SQBFUNC') then
    begin
      if DataSetBroker1.DataSet.UpdatesPending then
        begin
          jsDialogs.ShowError('请先保存申请信息!','提示');
          Command.Accept:=false;
          exit;
        end;

现在在点流转后就弹出本身的保存窗体 这约束就无效了
回复 支持 反对

使用道具 举报

发表于 2009-1-6 17:21:10 | 显示全部楼层
BeforeApplyUpdates中加校验,如果不通过调用sysutils.abort就可以了吧。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-1-6 17:34:50 | 显示全部楼层
下班了,明天回贴
回复 支持 反对

使用道具 举报

发表于 2009-1-6 17:35:40 | 显示全部楼层
好的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-1-7 12:21:20 | 显示全部楼层

含泪结贴

1.用了另一种方法,勉强通过了.
2.可怜我原先做的,要返工了,超级痛苦中......
回复 支持 反对

使用道具 举报

发表于 2009-1-7 13:08:11 | 显示全部楼层
呵呵。这个机制主要是改了。
楼主辛苦一下吧。
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-28 19:52 , Processed in 0.045916 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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