起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 229|回复: 11

【结】还是流程问题**

[复制链接]
发表于 2008-12-16 09:13:31 | 显示全部楼层 |阅读模式
我怎么用代码控制下一环节选择结束环节还是继续往下一环节流转呢?像采购办接收。

哈哈.jpg

40.15 KB, 下载次数: 127

回复

使用道具 举报

 楼主| 发表于 2008-12-16 09:44:23 | 显示全部楼层
也就是给我一段下一步是选择继续流转还是结束此流程的代码。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-16 10:38:37 | 显示全部楼层
请给我一段,结束流程的代码,在TMainForm.FlowBroker1CreateFlowOutFlowTasks事件下写的,有没有人啊?快。
回复 支持 反对

使用道具 举报

发表于 2008-12-16 11:08:54 | 显示全部楼层
也就是给我一段下一步是选择继续流转还是结束此流程的代码。
请问楼主想实现啥呢?如果是想实现,如果选择结束环节要做些动作,那么可以在“采购办接收”这个功能的主窗体上放一个流程代理,然后在 AfterFlowFinish   事件上实现你要的东东就可以了。
流程事件的触发时机,可以参考 http://bbs.justep.com/forum.php?mod=viewthread&tid=730
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-16 11:17:14 | 显示全部楼层
我就是不知道怎么结束的写代码啊。
procedure TMainForm.FlowBroker1CreateFlowOutFlowTasks(Sender: TObject; Command: TFlowOutCommand);
var
  FlowTask1 : TFlowTask;
  OrgURL1, OrgURL2 : TOrgURL;
  i: integer;
  ReceiveDept : string;
  Position : string;

begin
  case JsDialogs.QuestionBox('是否流转到"科长分发"?“否”将结束此任务!','***财政局项目支出管理系统',1) of
  2: //取消
         begin

         end;
  6: begin  //是
      try
        if  DataSetBroker1.DataSet.RecordCount=0 then
             begin
               Business.Forms.Dialogs.ShowMessage('流转时检测到项目数据集为零');
             end
         else
         begin
         // Dialogs.ShowMessage('分发任务到采购负责人成功1');
          FlowTask1 :=Command.FlowTasks.FindFlowTask('YWKSJS1');
          if FlowTask1 <> nil then
          begin
            FlowTask1.Executors.Clear;
           // Dialogs.ShowMessage('分发任务到采购负责人成功2');
             begin
               DataSetBroker1.DataSet.first;
               Dialogs.ShowMessage(sysutils.IntToStr(DataSetBroker1.DataSet.recordcount));
               while not DataSetBroker1.DataSet.eof do
               begin
                   // Dialogs.ShowMessage('分发任务到采购负责人成功3');
                   // Dialogs.ShowMessage(Position);
                    Position := DataSetBroker1.dataset.FieldByName('CGKS').AsString;
                   // Dialogs.ShowMessage(Position);
                    OrgURL1:=TOrgURL.Create('YPJCBM',Position,'');
                    FlowTask1.Executors.Add(OrgURL1);
                    FlowTask1.ExecuteMode := TTaskExecuteMode.emMonopolize;
                    DataSetBroker1.DataSet.Next;
               end;
             end;
              DataSetBroker1.dataset.Close;
              FlowTask1.ReLoadAllowExecutors;
              Dialogs.ShowMessage('分发任务到采购负责人成功');
              FlowTask1.ReLoadExecutors;
             // Command.UserModify := False;
          end;
         end;
        except
           Dialogs.ShowMessage('分发任务到采购科室失败!');
        end;
     end;
7: begin  //否   结束流程
      {FlowTask1 :=Command.FlowTasks.FindFlowTask('FINISH');
      FlowBroker1.FlowControl.FlowFinish(nil); }
    end;
end;
end;
在这地方的代码怎么写啊:
7: begin  //否   结束流程
      {FlowTask1 :=Command.FlowTasks.FindFlowTask('FINISH');
      FlowBroker1.FlowControl.FlowFinish(nil); }
    end;
回复 支持 反对

使用道具 举报

发表于 2008-12-16 11:56:55 | 显示全部楼层
能说说你要实现的原始需求吗?
我看的不是很明白,你是要实现,点击流转的时候弹出一个对话框让用户选择是否要选择结束环境,如果不是且DataSetBroker1这个数据集代理的记录个数为0,要怎样呢?...如果记录个数不为0 ,那么把任务发送到某些人头上?。。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-16 12:23:54 | 显示全部楼层
对要的就是这样的效果。如果不是且DataSetBroker1这个数据集代理的记录个数为0,则提示Business.Forms.Dialogs.ShowMessage('流转时检测到项目数据集为零');如果不为0则流转到某个科室,如果选择‘否’则结束流程,我就是结束流程的代码不会写。
回复 支持 反对

使用道具 举报

发表于 2008-12-16 14:02:43 | 显示全部楼层
1、通过流转界面用户可以选择是否可以结束流程,不知道为啥一定要通过代码呢?
2、如果为0,是否也是结束流程呢?还是控制不能流转到任何环节,包括结束呢?
3、如果想通过条件来进行流转,那么可以在“采购办接收”这个功能环节加上条件环节,通过参数或者某个字段的值,直接控制到流转到某个环节,这样不是更好吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-16 14:43:20 | 显示全部楼层
哎呀,看来我是说不明白了,这样吧,你告诉我同一岗位下的人员,怎么样才能独立执行任务。
回复 支持 反对

使用道具 举报

发表于 2008-12-16 16:23:57 | 显示全部楼层
尴尬

那你任务是发送到哪个组织单元呢?是部门? 还是岗位?还是岗位成员?还是人员成员呢?
且不同岗位之间又是怎样处理的呢?是否用代码发送任务,

如果没有代码发送任务,只要设置执行规则 的 执行者范围 的范围为人员成员,且 任务协作定义 的 任务分配方式 为 独立分配就可以了。

如果是代码发送任务,参考:http://bbs.justep.com/forum.php?mod=viewthread&tid=9962

不管是否有代码参与发送任务,如果是任务发送到人员成员上,且每个接收者都是独立处理任务,即所有人员成员都独立处理任务,那么只要根据上面设置就可以了,或者参考上面连接的代码就可以了。
如果是任务发送到岗位上,让岗位下的人员成员独立处理任务,且不同岗位之间是抢占,那么这不能实现
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-28 14:54 , Processed in 0.047426 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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