This commit is contained in:
Алексей Заблоцкий 2023-11-17 15:45:08 +03:00
parent b10fae4f86
commit 0d383309ce
7 changed files with 24 additions and 12 deletions

View File

@ -87,10 +87,12 @@ constructor TBaseConnection.Create(AOwner: TComponent; ATimeOut: integer;
aLogger: TLogger);
begin
inherited Create(true);
fConnectionID:=newID;
fTimeout:=ATimeOut;
fOwner := AOwner;
flogger := ALogger;
fProcessor:=TNIDBDM.Create(nil);
fProcessor.Name := 'NIDB_'+fConnectionID;
fProcessor.logger:=aLogger;
Commands:=TStringList.Create;
DoneCommands:=TList.Create;
@ -101,7 +103,7 @@ begin
nCommandReceived:=0;
nCommandReady:=0;
nErrors:=0;
fConnectionID:=newID;
end;

View File

@ -192,6 +192,7 @@ constructor TReportCommand.Create(ID: string; aProcesor: TNIDBDM;
begin
inherited Create(ID,aProcesor, aSubClass, aLogger,AUser,IDUser);
fReportProcessor:=TReportDM.Create(nil);
fReportProcessor.Name := 'Report'+fProcessor.Name;
fReportProcessor.NidbData := fProcessor;
end;

View File

@ -24,6 +24,7 @@ type
fUser: integer;
fUserName: string;
fLogger: TLogger;
fErrors: TStrings;
function getInt(keyName: string;defaultValue: integer=0): integer;
function getString(keyName: string): string;
public
@ -53,6 +54,7 @@ type
procedure Log(ALevel:TLogLevel; msg: string);
procedure logError(e:Exception; Command: string);
function ProcessOptionValues(ParamName: string; out Answer: string; out RetValue: QWORD; out OptionValues: TStrings): boolean; virtual; abstract;
property Journal: TStrings read fErrors;
end;
TCommandClass=class of TCommand;
@ -134,12 +136,14 @@ begin
fCommandID:=ID;
fResult := nil;
fData := nil;
fErrors := TSTringList.Create;
end;
destructor TCommand.Destroy;
begin
if assigned(fData) then fData.Free;
if assigned(fResult) then fResult.free;
fErrors.Free;
inherited Destroy;
end;
@ -188,6 +192,7 @@ end;
procedure TCommand.Log(ALevel: TLogLevel; msg: string);
begin
fErrors.add(msg);
if assigned(flogger) then
fLogger(ALevel,self, self.CommandID+#09+msg)
end;

View File

@ -344,7 +344,12 @@ begin
begin
Answer := cmd.currentStage;
if assigned(cmd.Results) then
cmd.Results.AssignTo(Code,RetValue,Answer,rValues);
cmd.Results.AssignTo(Code,RetValue,Answer,rValues)
else
begin
rValues := TSTringList.Create;
rValues.Assign(cmd.Journal);
end;
code := cmd.Status;
if (code=StatusComplete) and assigned(cmd.Results.Data) then
RetValue:=cmd.Results.Data.Size

View File

@ -5,11 +5,11 @@ object ReportDM: TReportDM
VerticalOffset = 317
Width = 330
object frxReport: TfrxReport
Version = '2023.3.0'
Version = '2023.3.3'
DotMatrixReport = False
EngineOptions.SilentMode = True
EngineOptions.NewSilentMode = simSilent
IniFile = 'tmp/fr6.ini'
IniFile = '\Software\Fast Reports'
PreviewOptions.Buttons = [pbPrint, pbLoad, pbSave, pbExport, pbZoom, pbFind, pbOutline, pbPageSetup, pbTools, pbEdit, pbNavigator, pbExportQuick, pbCopy, pbSelection]
PreviewOptions.Zoom = 1
PrintOptions.Printer = 'Default'
@ -22,7 +22,6 @@ object ReportDM: TReportDM
''
'end.'
)
OnEndDoc = frxReportEndDoc
OnLoadTemplate = frxReportLoadTemplate
OnLoadDetailTemplate = frxReportLoadDetailTemplate
Left = 176

View File

@ -47,7 +47,6 @@ type
frxODTExport1: TfrxODTExport;
frxPDFExport1: TfrxPDFExport;
frxReport: TfrxReport;
procedure frxReportEndDoc(Sender: TObject);
function frxReportLoadDetailTemplate(Report: TfrxReport;
const TemplateName: String; const AHyperlink: TfrxHyperlink): Boolean;
procedure frxReportLoadTemplate(Report: TfrxReport;
@ -192,10 +191,6 @@ begin
NidbData.log(mtDebug,self,'LoadDetailTemplate '+TemplateName);
end;
procedure TReportDM.frxReportEndDoc(Sender: TObject);
begin
end;
procedure TReportDM.CreateDBDataSet(Query: TReportQuery; EditReport: Boolean);
var
i: integer;
@ -422,6 +417,7 @@ begin
try
while not eof do
begin
NidbData.log(mtDebug,self,format('Variables[%s]=(%s)',[fieldbyname('name').asString,fieldbyname('value').asString]));
AVariables[fieldbyname('name').asString] := fieldbyname('value').asString;
next;
end;
@ -436,6 +432,7 @@ begin
begin
OptionName := fieldByName('name').AsString;
OptionValue := AnsiString(FieldByName('Value').AsString);
NidbData.log(mtDebug,self,format('Variables[%s]=(%s)',[OptionName,OptionValue]));
AVariables[OptionName] := trim(OptionValue);
Next;
end;
@ -494,12 +491,12 @@ begin
AVariables[fieldbyname('name').AsString] := fieldbyname('value_string').AsString
else if not fieldbyname('value_int').IsNull then
AVariables[fieldbyname('name').AsString] := fieldbyname('value_int').AsInteger;
NidbData.log(mtDebug,self,format('Variables[%s]=(%s,%d)',[fieldbyname('name').asString,fieldbyname('value_string').asString,fieldbyname('value_int').asInteger]));
Next;
end;
finally
free;
end;
NidbData.log(mtDebug,self,'LoadParams');
sql := 'select name,value_string, value_int from tmp_report_variables where var_type=1';
with NidbData.GetData(sql) do
try
@ -510,6 +507,7 @@ begin
AParam[fieldbyname('name').AsString] := fieldbyname('value_string').AsString
else if not fieldbyname('value_int').IsNull then
AParam[fieldbyname('name').AsString] := fieldbyname('value_int').AsInteger;
NidbData.log(mtDebug,self,format('Params[%s]=(%s,%d)',[fieldbyname('name').asString,fieldbyname('value_string').asString,fieldbyname('value_int').asInteger]));
Next;
end;
finally

View File

@ -45,7 +45,6 @@ type
end;
implementation
procedure TClientMainThread.SynchAnswer;
begin
log(mtExtra,self,'SynchAnswer');
@ -65,6 +64,7 @@ begin
if assigned(AFields) then
fFields.assign(AFields);
fHost := AHost;
fResult := nil;
end;
destructor TClientMainThread.Destroy;
@ -72,6 +72,8 @@ begin
log(mtExtra, self,'destroy');
Connect.Disconnect();
fFields.Free;
if assigned(fResult) then
FreeAndNil(fResult);
inherited Destroy;
end;