|

楼主 |
发表于 2007-12-14 09:05:57
|
显示全部楼层
现在流程的[发改委进度审核]环节可以正常流转到指定的DDBSJ,初始环节[进度上报]死也只转到DDB。
[进度上报]环节的流程事件:
procedure TYJDSB.flbCreateFlowOutFlowTasks(Sender: TObject; Command: TFlowOutCommand);
const CRange:string='OrgKey(''%s'', ''%s'', ''%s'')';
var
lFlowTask:TFlowTask;
lRange,lSHR,lDept,lPsn,lPsm,lXMID,lSHR2,lDept2,lPsn2,lPsm2,lTaskTitle:String;
lddb,lxmjb:string;
ls:TstringList;
i:integer;
begin
inherited;
ls:=TstringList.create;
lXMID:=dsb_XMXX.dataset.fieldByName('XM_ID').asstring;
lSHR:=SysFuncLib.TFunDDB.getSHR(lXMID,2);
lSHR2:=SysFuncLib.TFunDDB.getSHR(lXMID,1);
try
ls.Delimiter:='-';
ls.DelimitedText :=lSHR;
if ls.count=3 then
begin
lDept:=ls.strings[2];
lPsn:=ls.strings[1];
lPsm:=ls.strings[0];
end else
raise exception.create('项目信息中未填写相关审核人,不能提交!');
ls.DelimitedText :=lSHR2;
if ls.count=3 then
begin
lDept2:=ls.strings[2];
lPsn2:=ls.strings[1];
lPsm2:=ls.strings[0];
end else
raise exception.create('项目信息中未填写相关审核人,不能提交!');
finally
ls.free;
end;
lRange:=sysutils.format(CRange,[lDept,lPsn,lPsm]);
lFlowTask := Command.FlowTasks.FindFlowTask('ZGBMSH');
if lFlowTask <> nil then
begin
lFlowTask.ExecutorMustBeFuncOwner:=false; //执行者必须是功能拥有者
lFlowTask.ExecutorAmount:=TTaskExecutorAmount.teaOne; //执行者范围 1个
lFlowTask.ExecutorKinds := [TTaskExecutorKind.ekPersonMember]; //执行者类型 人员成员
lFlowTask.ExecutorRange:=lRange; //默认执行者范围
end;
//发改委进度审核 20070424 xh
lRange:=sysutils.format(CRange,[lDept2,lPsn2,lPsm2]);
lFlowTask := Command.FlowTasks.FindFlowTask('FGWSH');
if lFlowTask <> nil then
begin
lFlowTask.ExecutorMustBeFuncOwner:=false;
lFlowTask.ExecutorAmount:=TTaskExecutorAmount.teaOne;
lFlowTask.ExecutorKinds := [TTaskExecutorKind.ekPersonMember];
lFlowTask.ExecutorRange:=lRange;
end;
//带动办
lxmjb:=dsb_XMXX.dataset.fieldByName('XMJB_ID').asstring;
if lxmjb='' then
raise exception.create('项目信息中未填写项目级别,无对应的带动办审核人,不能提交!');
lddb:=SysFuncLib.TFunDDB.getDDBFromXMJB(lxmjb); //OrgKey('DDB', 'LDXZ', 'DDB')
if lddb='' then
raise exception.create('项目信息中填写的项目级别无对应的带动办审核人,不能提交!');
lFlowTask := Command.FlowTasks.FindFlowTask('SHHYJDMK');
lRange:=sysutils.format(CRange,['DDB','LDXZ',lddb]);
if lFlowTask <> nil then
begin
lFlowTask.ExecutorMustBeFuncOwner:=false;
lFlowTask.ExecutorAmount:=TTaskExecutorAmount.teaOne;
lFlowTask.ExecutorKinds := [TTaskExecutorKind.ekPersonMember];
lFlowTask.ExecutorRange:=lRange;
end;
//先更新SBR,SBSJ
//更新审核状态
with dsb_YJD.dataset do
begin
edit;
//上报时间
fieldByName('SBSJ').asDateTime:=business.Data.SysSrv.SysService.Time;
fieldByName('SBR').asString:=SYSFUNCLIB.TFUNJustep.GetCurrentLoginUserID(context);
post;
applyUpdates(false);
end;
//[承办单位-上报人 上报 "小项目名称" 某年某月月进度] (某责任单位已审) (某发改委业务处已审) 业为上报时间
//主管和发改委
lTaskTitle:=SYSFUNCLIB.TFunDDB.getYSBProcTaskTitle(context,TSqldataset(ib.info.datasetByID['LSCD']),dsb_yjd.dataset.fieldByName('ID').asstring,'JDSB');
for I:=0 to Command.FlowTasks.Count-1 do
begin
Command.FlowTasks[I].Subject :=lTaskTitle;
//'任务:[项目'+getXMMC+': ' + Command.FlowTasks[I].ProcUnit.Proc.DisplayName + ' - ' + Command.FlowTasks[I].ProcUnit.DisplayName + ']被' + SYSFUNCLIB.TFUNJUSTEP.GetCurrentLoginUser(context)+ '提交';
end;
end;
[发改委进度审核]环节的流程事件:
procedure TXMJDSH.FlowBroker1CreateFlowOutFlowTasks(Sender: TObject; Command: TFlowOutCommand);
const CRange:string='OrgKey(''%s'', ''%s'', ''%s'')';
var
lFlowTask:TFlowTask;
lRange,lSHR,lDept,lPsn,lPsm,lXMID,lProcID,lTaskTitle,lxmjb,lddb:String;
ls:TstringList;
i:integer;
begin
inherited;
lProcID:=flowBroker1.FlowControl.Proc.ID;
//重点建设:设置带动办环节
if sysutils.sameText(lProcID,'DSHLC3') then
begin
lxmjb:=dsb_xmjd.dataset.fieldByName('XMJB_ID').asstring;
lddb:=SysFuncLib.TFunDDB.getDDBFromXMJB(lxmjb);
fReceiver:=lddb;
//带动办
lFlowTask := Command.FlowTasks.FindFlowTask('SHHYJDMK');
lRange:=sysutils.format(CRange,['DDB','LDXZ',lddb]);
if lFlowTask <> nil then
begin
lFlowTask.ExecutorMustBeFuncOwner:=false;
lFlowTask.ExecutorAmount:=TTaskExecutorAmount.teaOne;
lFlowTask.ExecutorKinds := [TTaskExecutorKind.ekPersonMember];
lFlowTask.ExecutorRange:=lRange;
end;
end;
lTaskTitle:=SYSFUNCLIB.TFunDDB.getYSBProcTaskTitle(context,TSqldataset(Info_JDSH.info.datasetByID['LSCD']),dsb_xmjd.dataset.fieldByName('ID').asstring,'ZDQQJDSB');
for I:=0 to Command.FlowTasks.Count-1 do
Command.FlowTasks[I].Subject := lTaskTitle; //'任务:[ 项目'+dsb_xmjd.dataset.fieldByName('xmmc').asString+': ' + Command.FlowTasks[I].ProcUnit.Proc.DisplayName + ' - ' + Command.FlowTasks[I].ProcUnit.DisplayName + ']被' + SYSFUNCLIB.TFUNJUSTEP.GetCurrentLoginUser(context)+ '提交';
end;
|
|