看了一下:
主要原因就是任务表和任务消息表全取了一下数据并且做了一次相乘,所以速度较慢,现在的方法也就是在他们取数据的时候添加一下条件过滤了:
修改一下代码:业务模型\综合案件_地市\流程监控\流程监控功能\流程监控
procedure TLCJK.BizFormCreate(Sender: TObject);
var
strValue : String;
begin
DateTimePicker1.Date := SysUtils.StrToDateTime(SysUtils.FormatDateTime('yyyy-MM-01',SysUtils.Now));
DateTimePicker2.Date := SysUtils.Now;
strValue := strValue + 'TFlow.FCreateTime >= to_Date(''' + SysUtils.FormatDateTime('yyyy-MM-dd 00:00:00',DateTimePicker1.DateTime) + ''',''yyyy-mm-dd hh24:mi:ss'') AND ' +
'TFlow.FCreateTime <= to_Date(''' + SysUtils.FormatDateTime('yyyy-MM-dd 23:59:59',DateTimePicker2.DateTime) + ''',''yyyy-mm-dd hh24:mi:ss'')';
TSQLDataSet(DataSetBroker1.DataSet).SQLFilter := strValue;
TSQLDataSet(DataSetBroker1.DataSet).SQLFiltered := True;
TSQLDataSet(DataSetBroker1.DataSet).Open;
//add by justep
StrValue :='';
strValue := strValue + 'TTask.FCreateTime >= to_Date(''' + SysUtils.FormatDateTime('yyyy-MM-dd 00:00:00',DateTimePicker1.DateTime) + ''',''yyyy-mm-dd hh24:mi:ss'') AND ' +
'TTask.FCreateTime <= to_Date(''' + SysUtils.FormatDateTime('yyyy-MM-dd 23:59:59',DateTimePicker2.DateTime) + ''',''yyyy-mm-dd hh24:mi:ss'')';
TSQLDataSet(DataSetBroker2.DataSet).SQLFilter := strValue;
TSQLDataSet(DataSetBroker2.DataSet).SQLFiltered := True;
//
DataSetBroker2.DataSet.Open;
FTask := TTask.Create;
FWorkFlowInfo := TWorkFlowCenter.Create;
FWorkFlowInfo.FlowLoader.Data := TSQLDataSet(DataSetBroker1.DataSet);
FWorkFlowInfo.CurrentFlowGUID := OnGetCurrentFlowGUID;
FWorkFlowInfo.ControllerLoader.Data := TSQLDataSet(DataSetBroker2);
FWorkFlowInfo.CurrentController := OnGetCurrentController;
if SysUtils.LowerCase(SysFunCLib.TFunJustep.GetCurrentLoginUserID(Context)) = 'gly' then begin
ToolButton2.Enabled := True;
end
else begin
ToolButton2.Enabled := False;
end;
end; |