diff options
Diffstat (limited to 'extras/contributed/report_tool/reportengine')
3 files changed, 67 insertions, 82 deletions
diff --git a/extras/contributed/report_tool/reportengine/u_commande.pas b/extras/contributed/report_tool/reportengine/u_commande.pas index 527b08db..0c35c44b 100644 --- a/extras/contributed/report_tool/reportengine/u_commande.pas +++ b/extras/contributed/report_tool/reportengine/u_commande.pas @@ -402,11 +402,33 @@ FColonnes:= TList.Create; end; destructor T_Section.Destroy; +var + Cpt: Integer; begin +if FPages.Count> 0 +then + for Cpt:= 0 to Pred(FPages.Count) do + T_Page(FPages[Cpt]).Free; FPages.Free; +if FEntete.Count> 0 +then + for Cpt:= 0 to Pred(FEntete.Count) do + T_Commande(FEntete[Cpt]).Free; FEnTete.Free; +if FPied.Count> 0 +then + for Cpt:= 0 to Pred(FPied.Count) do + T_Commande(FPied[Cpt]).Free; FPied.Free; +if FCadres.Count> 0 +then + for Cpt:= 0 to Pred(FCadres.Count) do + T_Commande(FCadres[Cpt]).Free; FCadres.Free; +if FColonnes.Count> 0 +then + for Cpt:= 0 to Pred(FColonnes.Count) do + T_Commande(FColonnes[Cpt]).Free; FColonnes.Free; inherited Destroy; end; @@ -415,7 +437,7 @@ procedure T_Section.LoadPage(APageNum: Integer); begin Inc(FNbPages); APage:= T_Page.Create(FNbPages,APageNum); -Pages.Add(APage); +FPages.Add(APage); end; procedure T_Section.LoadCmdEnTete; @@ -433,7 +455,7 @@ var Cpt: Integer; begin for Cpt:= 0 to Pred(ALigne.Commandes.Count) do - T_Page(Pages[Pred(Pages.Count)]).Commandes.Add(ALigne.Commandes.Items[Cpt]); + T_Page(Pages[Pred(FPages.Count)]).Commandes.Add(ALigne.Commandes.Items[Cpt]); ALigne.FHeight:= 0; ALigne.Commandes.Clear; end; @@ -468,7 +490,7 @@ var Cpt: Integer; begin for Cpt:= 0 to Pred(AGroupe.Commandes.Count) do - T_Page(Pages[Pred(Pages.Count)]).Commandes.Add(AGroupe.Commandes.Items[Cpt]); + T_Page(Pages[Pred(FPages.Count)]).Commandes.Add(AGroupe.Commandes.Items[Cpt]); AGroupe.FGroupeHeight:= 0; AGroupe.Commandes.Clear; end; @@ -482,7 +504,7 @@ end; procedure T_Section.LoadEspacePage(APosY: Single; AColonne: Integer; AHeight: Single; AFond: Integer); begin ACommande:= T_Espace.Create(APosY,AColonne,AHeight,AFond); -T_Page(Pages[Pred(Pages.Count)]).Commandes.Add(ACommande); +T_Page(Pages[Pred(FPages.Count)]).Commandes.Add(ACommande); end; procedure T_Section.LoadEspacePied(APosY: Single; AColonne: Integer; AHeight: Single; AFond: Integer); @@ -505,7 +527,7 @@ end; procedure T_Section.LoadTrait(APosXDeb,APosYDeb: Single; AColonne: Integer; APosXFin,APosYFin: Single; AStyle: Integer); begin ACommande:= T_Trait.Create(APosXDeb,APosYDeb,AColonne,AStyle,APosXFin,APosYFin); -T_Page(Pages[Pred(Pages.Count)]).Commandes.Add(ACommande); +T_Page(Pages[Pred(FPages.Count)]).Commandes.Add(ACommande); end; procedure T_Section.LoadTraitHorizEnTete(APosXDeb,APosYDeb: Single; AColonne: Integer; APosXFin,APosYFin: Single; @@ -518,7 +540,7 @@ end; procedure T_Section.LoadTraitHorizPage(APosXDeb,APosYDeb: Single; AColonne: Integer; APosXFin,APosYFin: Single; AStyle: Integer); begin ACommande:= T_Trait.Create(APosXDeb,APosYDeb,AColonne,AStyle,APosXFin,APosYFin); -T_Page(Pages[Pred(Pages.Count)]).Commandes.Add(ACommande); +T_Page(Pages[Pred(FPages.Count)]).Commandes.Add(ACommande); end; procedure T_Section.LoadTraitHorizPied(APosXDeb,APosYDeb: Single; AColonne: Integer; APosXFin,APosYFin: Single; AStyle: Integer); @@ -535,7 +557,7 @@ end; procedure T_Section.LoadSurf(APos: T_Points; AColor: TfpgColor); begin Acommande:= T_Surface.Create(APos,AColor); -T_Page(Pages[Pred(Pages.Count)]).Commandes.Add(ACommande); +T_Page(Pages[Pred(FPages.Count)]).Commandes.Add(ACommande); end; function T_Section.GetCmdPage(NumPage: Integer): TList; @@ -551,7 +573,13 @@ FCommandes:= TList.Create; end; destructor T_Page.Destroy; +var + Cpt: Integer; begin +if FCommandes.Count> 0 +then + for Cpt:= 0 to Pred(FCommandes.Count) do + T_Commande(FCommandes[Cpt]).Free; FCommandes.Free; inherited Destroy; end; @@ -560,12 +588,18 @@ constructor T_Groupe.Create; begin FLineHeight:= 0; FGroupeHeight:= 0; -Commandes:= TList.Create; +FCommandes:= TList.Create; end; destructor T_Groupe.Destroy; +var + Cpt: Integer; begin -Commandes.Free; +if FCommandes.Count> 0 +then + for Cpt:= 0 to Pred(FCommandes.Count) do + T_Commande(FCommandes[Cpt]).Free; +FCommandes.Free; inherited Destroy; end; @@ -576,7 +610,13 @@ FCommandes:= TList.Create; end; destructor T_Ligne.Destroy; +var + Cpt: Integer; begin +if FCommandes.Count> 0 +then + for Cpt:= 0 to Pred(FCommandes.Count) do + T_Commande(FCommandes[Cpt]).Free; FCommandes.Free; inherited Destroy; end; diff --git a/extras/contributed/report_tool/reportengine/u_imprime.pas b/extras/contributed/report_tool/reportengine/u_imprime.pas index 87b304e1..9f706924 100644 --- a/extras/contributed/report_tool/reportengine/u_imprime.pas +++ b/extras/contributed/report_tool/reportengine/u_imprime.pas @@ -413,8 +413,6 @@ type end; var - Imprime: T_Imprime; - Infos: record Titre: string; Auteur: string; @@ -444,7 +442,6 @@ uses const PPI= 72; InchToMM= 25.4; - Cent= 100; function T_Imprime.Dim2Pixels(Value: Single): Single; begin @@ -712,48 +709,6 @@ with F_Visu do end; end; -procedure LibereCommandesPages(ACommandes: PPage); -var - Cpt: Integer; -begin -with T_Page(ACommandes) do - if Commandes.Count> 0 - then - begin - for Cpt:= 0 to Pred(Commandes.Count) do - T_Commande(Commandes[Cpt]).Free; - Commandes.Free; - end; -end; - -procedure LiberePages(APageSect: PSection); -var - Cpt: Integer; -begin -with T_Section(APageSect) do - if Pages.Count> 0 - then - begin - for Cpt:= 0 to Pred(Pages.Count) do - LibereCommandesPages(Pages[Cpt]); - Pages.Free; - end; -end; - -procedure LibereColonnes(AColSect: PSection); -var - Cpt: Integer; -begin -with T_Section(AColSect) do - if Colonnes.Count> 0 - then - begin - for Cpt:= 0 to Pred(Colonnes.Count) do - T_Colonne(Colonnes[Cpt]).Free; - Colonnes.Free; - end; -end; - procedure T_Imprime.ImprimePage(PageNumero: Integer); var CptSect,CptPage,CptCmd: Integer; @@ -2140,13 +2095,8 @@ var begin if Sections.Count> 0 then - begin for Cpt:= 0 to Pred(Sections.Count) do - begin - LiberePages(Sections[Cpt]); - LibereColonnes(Sections[Cpt]); - end; - end; + T_Section(Sections[Cpt]).Free; Sections.Free; if Fontes.Count> 0 then @@ -2736,8 +2686,6 @@ then end; procedure T_Imprime.FinGroupe(SautPage: Boolean= False); -var - Cpt: Integer; begin T_Section(Sections[Pred(Sections.Count)]).LoadCmdGroupeToPage; FGroupe:= False; diff --git a/extras/contributed/report_tool/reportengine/u_pdf.pas b/extras/contributed/report_tool/reportengine/u_pdf.pas index ebb83603..facfd399 100644 --- a/extras/contributed/report_tool/reportengine/u_pdf.pas +++ b/extras/contributed/report_tool/reportengine/u_pdf.pas @@ -251,7 +251,7 @@ type procedure CreatePreferences; function CreatePages(Parent: Integer): Integer; function CreatePage(Parent,Haut,Larg: Integer): Integer; - function CreateOutlines(Parent: Integer): Integer; + function CreateOutlines: Integer; function CreateOutline(Parent,SectNo,PageNo: Integer; SectTitre: string): Integer; procedure CreateFont(NomFonte: string; NumFonte: Integer); function CreateContents: Integer; @@ -352,16 +352,6 @@ then Result:= FontName+Chaine1; end; -function ColorToString(Couleur: Integer): string; -var - Red,Green,Blue: Integer; -begin -Red:= Couleur div 65535; -Couleur:= Couleur mod 65535; -Green:= Couleur div 255; -Blue:= Couleur mod 255; -end; - // object methods constructor TPdfObjet.Create; @@ -500,7 +490,13 @@ FArray:= TList.Create; end; destructor TPdfArray.Destroy; +var + Cpt: Integer; begin +if FArray.Count> 0 +then + for Cpt:= 0 to Pred(FArray.Count) do + TPdfObjet(FArray[Cpt]).Free; FArray.Free; inherited; end; @@ -514,7 +510,7 @@ for Cpt:= 0 to Pred(FStream.Count) do if TPdfObjet(FStream[Cpt]) is TPdfFonte then TPdfFonte(FStream[Cpt]).WriteFonte(AFlux); - if TPdfColor(FStream[Cpt]) is TPdfColor + if TPdfObjet(FStream[Cpt]) is TPdfColor then TPdfColor(FStream[Cpt]).WriteColor(AFlux); if TPdfObjet(FStream[Cpt]) is TPdfText @@ -547,7 +543,13 @@ FStream:= TList.Create; end; destructor TPdfStream.Destroy; +var + Cpt: Integer; begin +if FStream.Count> 0 +then + for Cpt:= 0 to Pred(FStream.Count) do + TPdfObjet(FStream[Cpt]).Free; FStream.Free; inherited; end; @@ -876,9 +878,7 @@ end; procedure TPdfDocument.WriteObjet(const AObjet: Integer; const AFlux: TStream); var - Dictionaire: TPdfDictionary; Long: TPdfInteger; - Fin: Integer; Flux: TMemoryStream; begin WriteChaine(IntToStr(AObjet)+' 0 obj'+CRLF,AFlux); @@ -1095,10 +1095,9 @@ TPdfArray(TPdfDicElement(Dictionaire.FElement[Dictionaire.ElementParCle('ProcSet Result:= Pred(FXRefObjets.Count); end; -function TPdfDocument.CreateOutlines(Parent: Integer): Integer; +function TPdfDocument.CreateOutlines: Integer; var Outlines: TPdfXRef; - XRefObjets: TPdfReference; Nom: TPdfName; Count: TPdfInteger; begin @@ -1308,12 +1307,11 @@ end; constructor TPdfDocument.CreateDocument; var - Cpt,CptSect,CptPage,CptFont,NumFont,TreeRoot,ParentPage,PageNum,NumPage: Integer; + Cpt,CptSect,CptPage,NumFont,TreeRoot,ParentPage,PageNum,NumPage: Integer; OutlineRoot,ParentOutline,PageOutline,NextOutline,NextSect,NewPage: Integer; Dictionaire: TPdfDictionary; XRefObjets,PrevOutline,PrevSect: TPdfReference; Nom: TPdfName; - Trouve: Boolean; FontName: string; begin inherited Create; @@ -1330,7 +1328,7 @@ then if Outline then begin - OutlineRoot:= CreateOutlines(ParentOutline); + OutlineRoot:= CreateOutlines; // add outline reference to catalog dictionary XRefObjets:= TPdfReference.CreateReference(Pred(FXRefObjets.Count)); TPdfDictionary(TPdfXRef(FXRefObjets[Catalogue]).FObjet).AddElement('Outlines',XRefObjets); @@ -1441,7 +1439,6 @@ then NumFont:= 0; for Cpt:= 0 to Pred(Fontes.Count) do begin - Trouve:= False; FontName:= ExtractBaseFontName(T_Fonte(Fontes[Cpt]).GetFonte.FontDesc); CreateFont(FontName,NumFont); Inc(NumFont); |