|
@@ -46,6 +46,8 @@ type
|
|
|
constructor Create(AFileName: string);
|
|
|
destructor Destroy; override;
|
|
|
|
|
|
+ procedure RefreshTemplateProperties;
|
|
|
+
|
|
|
property FileName: string read FFileName write FFileName;
|
|
|
|
|
|
property TemplateName: string read FTemplateName;
|
|
@@ -93,6 +95,8 @@ type
|
|
|
function AddReportTemplate(const AFileName: string): TTemplateNode;
|
|
|
procedure DeleteReportTemplate(ANode: TTemplateNode);
|
|
|
|
|
|
+ function FindTemplate(const AFileName: string): TTemplateNode;
|
|
|
+
|
|
|
property Count: Integer read GetCount;
|
|
|
property Template[AIndex: Integer]: TTemplateNode read GetTemplate;
|
|
|
|
|
@@ -330,7 +334,10 @@ end;
|
|
|
|
|
|
procedure TTemplateNode.LoadReportInteract;
|
|
|
begin
|
|
|
- FInteractInfo := TInteractInfo.Create(FileName);
|
|
|
+ if Assigned(FInteractInfo) then
|
|
|
+ FInteractInfo.LoadXmlFromStream
|
|
|
+ else
|
|
|
+ FInteractInfo := TInteractInfo.Create(FileName);
|
|
|
end;
|
|
|
|
|
|
procedure TTemplateNode.LoadTemplateProperties;
|
|
@@ -365,6 +372,16 @@ begin
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
+procedure TTemplateNode.RefreshTemplateProperties;
|
|
|
+begin
|
|
|
+ FInteractFlag := 0;
|
|
|
+ FInteractSubFlag := 0;
|
|
|
+ FDataPrepareFlag := 0;
|
|
|
+ FDataBaseFlag := 0;
|
|
|
+ FSelfFormat := 0;
|
|
|
+ LoadTemplateProperties;
|
|
|
+end;
|
|
|
+
|
|
|
{ TTemplateManager }
|
|
|
|
|
|
function TTemplateManager.AddReportTemplate(const AFileName: string): TTemplateNode;
|
|
@@ -397,6 +414,24 @@ begin
|
|
|
inherited;
|
|
|
end;
|
|
|
|
|
|
+function TTemplateManager.FindTemplate(
|
|
|
+ const AFileName: string): TTemplateNode;
|
|
|
+var
|
|
|
+ iTemplate: Integer;
|
|
|
+ vTemplate: TTemplateNode;
|
|
|
+begin
|
|
|
+ Result := nil;
|
|
|
+ for iTemplate := 0 to FTemplateList.Count - 1 do
|
|
|
+ begin
|
|
|
+ vTemplate := Template[iTemplate];
|
|
|
+ if vTemplate.FileName = AFileName then
|
|
|
+ begin
|
|
|
+ Result := vTemplate;
|
|
|
+ Break;
|
|
|
+ end;
|
|
|
+ end;
|
|
|
+end;
|
|
|
+
|
|
|
function TTemplateManager.GetCount: Integer;
|
|
|
begin
|
|
|
Result := FTemplateList.Count;
|