起步软件技术论坛-X3

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: chinavvv

【结帖】代码控制子流程创建,在弹出流转窗体时代码添加执行者[请求]**

[复制链接]
发表于 2008-7-14 11:57:04 | 显示全部楼层
lFlowTask := Command.FlowTasks.FindFlowTask('XMSB_FS');
lSubFlowTask := lFlowTask.Children.FindFlowTask('XMJYS');
我是说'XMSB_FS'这个具体是什么?是环节ID么?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-14 12:27:07 | 显示全部楼层
是的,如上图。每个环节上我标示出来的都是环节ID
回复 支持 反对

使用道具 举报

发表于 2008-7-14 14:52:51 | 显示全部楼层
楼主,你调试运行看下lFlowTask 这个对象,是否为空对象
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-14 15:03:50 | 显示全部楼层
是空对象,应该怎么写程序呢?
回复 支持 反对

使用道具 举报

发表于 2008-7-14 15:13:30 | 显示全部楼层
写法就是跟楼主的一样啊。就是楼主的那个代码得到的是空对象,那就要检查你传入的那个参数是否能找到了。。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-14 16:11:53 | 显示全部楼层
感谢,先结贴吧。我正在调试。
回复 支持 反对

使用道具 举报

发表于 2008-7-14 16:13:25 | 显示全部楼层
好,谢谢反馈。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-14 17:11:07 | 显示全部楼层
解决了:
总结些经验,可能后来的同行能有所帮助:

procedure TXMSB_FS_CT.FlowBroker1CreateFlowOutFlowTasks(Sender: TObject; Command: TFlowOutCommand);
var
  lSubFlowTask,lFlowTask: TFlowTask;
  lOrgSytem: TOrgSystem;
  sDeptID    : String;
  sPosiID    : String;
  sPersID    : String;
begin

  lFlowTask := Command.FlowTasks.FindFlowTask('XMJYS');     //主流程中子流程环节ID

  lSubFlowTask := lFlowTask.Children.FindFlowTask('XJSB');  //子流程入口环节ID
  lOrgSytem := TOrgSystem.Create;

        sPersID:='BM';
        sDeptID:='GW';
        sPosiID:='RY';
  try
     lSubFlowTask.AllowExecutors.Clear;
      if Assigned(lSubFlowTask) then
        lOrgSytem.GetOrgURLsByOrgExpr('OrgKey('+sPersID+','+sDeptID+','+ sPosiID+')',lSubFlowTask.AllowExecutors);
  finally
    lOrgSytem.Free;
  end;
end;

关键是 这两行:
  lFlowTask := Command.FlowTasks.FindFlowTask('XMJYS');     //主流程中子流程环节ID

  lSubFlowTask := lFlowTask.Children.FindFlowTask('XJSB');  //子流程入口环节ID
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-19 04:15 , Processed in 0.041871 second(s), 13 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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