1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
|
Type
frxRpt : tFrxReport;
frxUdLexique: TfrxUserDataSet;
frxUdTete: TfrxUserDataSet;
frxUdScelle: TfrxUserDataSet;
frxUdImgScelle: TfrxUserDataSet;
pcMain: TPageControl;
chkLexique: TCheckBox;
chkSerment: TCheckBox;
chkIndex: TCheckBox;
tvScelle: TJvThumbView;
implementation
{$R *.dfm}
uses
var
ilImgScelle, ilScelle : integer;
ArScelle : Array of integer; //les onglets scellés sont créés dynamiquement et pas forcément les uns à la suite des autres. Donc une variable tableau pour en connaitre le nombre et leur position
procedure TfrmMain.acReportExecute(Sender: TObject);
begin
//charge la première partie du rapport
frxRpt.LoadFromFile(sPathReports + 'RptTete.fr3',False);
//prépare la page entete
frxRpt.PrepareReport(True);
frxRpt.LoadFromFile(sPathReports + 'RptIndex.fr3',False);
frxRpt.PrepareReport(false);
frxRpt.LoadFromFile(sPathReports + 'RptLexique.fr3',False);
frxRpt.PrepareReport(false);
frxRpt.LoadFromFile(sPathReports + 'RptMethodo.fr3',False);
frxRpt.PrepareReport(false);
frxRpt.LoadFromFile(sPathReports + 'RptScelle.fr3',false);
frxRpt.PrepareReport(False);
frxRpt.LoadFromFile(sPathReports + 'RptConclusion.fr3',False);
frxRpt.PrepareReport(false);
frxRpt.LoadFromFile(sPathReports + 'RptCloture.fr3',False);
frxRpt.PrepareReport(false);
frxRpt.ShowPreparedReport;
end;
//bornage du nombre d'itérations d'images dans l'onglet scellé en cours. Ces onglets sont créés dynamiqement
procedure TfrmMain.frxUdImgScelleCheckEOF(Sender: TObject; var Eof: Boolean);
begin
Eof:= ilImgScelle>(pcMain.Pages[arScelle[ilScelle]].FindChildControl('tvScelle') as tJvThumbView).GetCount -1;
end;
//initialisation de la variable images scelles
procedure TfrmMain.frxUdImgScelleFirst(Sender: TObject);
begin
ilImgScelle := 0;
end;
//récupération de l'image de tvscelle courant pour envoyer l'image dans le report
procedure TfrmMain.frxUdImgScelleGetValue(const VarName: string; var Value: Variant);
begin
if SameText(VarName,'ImgScelle') then begin
(FrxRpt.FindObject('pImgScelle') as tFrxPictureView).Picture :=
(pcMain.Pages[arScelle[ilScelle]].FindChildControl('tvScelle') as tJvThumbView).ThumbList.Thumbnail[ilImgScelle].Photo.Picture;
(pcMain.Pages[arScelle[ilScelle]].FindChildControl('tvScelle') as tJvThumbView).Selected := ilImgScelle;
Value := (pcMain.Pages[arScelle[ilScelle]].FindChildControl('tvScelle') as tJvThumbView).SelectedFile;
end;
end;
//incrément de la variable des images de scellé
procedure TfrmMain.frxUdImgScelleNext(Sender: TObject);
begin
inc(ilImgScelle);
end;
//calcul du nombre total de scelles
procedure TfrmMain.frxUdScelleCheckEOF(Sender: TObject; var Eof: Boolean);
var
i, j : integer;
begin
//initialisation de la variable de comptage
J := 0;
//boucle sur tous les onglets pour voir s'il y a des scelles et les compter
for i := 0 to pcMain.PageCount - 1 do
if Copy(pcMain.Pages[i].Name,0,6)= 'Scelle' then inc(j);
//dimensionner la variable tableau
SetLength(ArScelle,J);
//le comptage va de la variable courante à J le nombre total de scellé
Eof:= ilScelle> j-1;
J:=0;
//reboucle dessus pour alimenter la variable tableau
for i := 0 to pcMain.PageCount - 1 do
if Copy(pcMain.Pages[i].Name,0,6)= 'Scelle' then begin
arScelle[J] := i;
inc(J);
end;
end;
//initialisation de la variable entete de scellé (cartouche)
procedure TfrmMain.frxUdScelleFirst(Sender: TObject);
begin
ilScelle :=0;
end;
//récupération des données maitre pour le scellé courant
procedure TfrmMain.frxUdScelleGetValue(const VarName: string; var Value: Variant);
var
i : integer;
begin
if SameText(VarName,'Nom') then Value := (pcMain.Pages[arScelle[ilScelle]].FindChildControl('txtNumScelle') as tlabeledEdit).Text;
if SameText(VarName,'Description') then Value := (pcMain.Pages[arScelle[ilScelle]].FindChildControl('txtDescScelle') as tlabeledEdit).Text;
...
if SameText(VarName,'Observations') then Value := (pcMain.Pages[arScelle[ilScelle]].FindChildControl('txtObsScelle') as tlabeledEdit).Text;
end;
//incrément pour le scelle suivant
procedure TfrmMain.frxUdScelleNext(Sender: TObject);
begin
inc(ilScelle);
end; |
Partager