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
| procedure TForm1.CopyRaveReport(projet, origine, destination:string);
var oReport, dReport : TRaveReport;
oPage, dPage : TravePage;
i, j, k, reponse : Integer;
Cmp : TComponent;
begin
if not FileExists(edPath + projet + '.rav') then begin
showmessage('Projet ' + edpath + projet + '.rav inexistant');
exit;
end;
RvProject1.ProjectFile := edPath + projet + '.rav';
RvProject1.Open;
// On recherche le rapport d'origine //
oReport := rvProject1.ProjMan.FindReport(origine, False);
if oReport = nil then begin
// rapport d'origine inexistant //
showmessage('Rapport ' + origine + ' inexistant');
exit;
end;
dReport := rvProject1.ProjMan.FindReport(destination, False);
if dReport <> nil then begin
Reponse := Application.MessageBox('Le rapport existe déjà, voulez-vous le remplacer?', PChar('Rapport ' + destination), MB_YESNO);
if Reponse = IDNO then begin
oReport.Free;
dReport.Free;
RvProject1.Close;
exit;
end;
// On supprimme tous les éléments du rapport de destination //
dPage := rvproject1.ProjMan.FindRaveComponent(dReport.Name + '.Page1', nil) as TRavePage;
while dPage.ComponentCount <> 0 do dPage.Components[0].Free;
end
else begin
// Création du report et de la Page1 (automatique) //
dReport := rvProject1.ProjMan.NewReport;
dReport.Name := destination;
end;
dReport.FullName := dReport.Name;
dPage := rvproject1.ProjMan.FindRaveComponent(dReport.Name + '.Page1', nil) as TRavePage;
// On copie la page //
oPage := rvproject1.ProjMan.FindRaveComponent(oReport.Name + '.Page1', nil) as TRavePage;
dPage.Assign(oPage);
dPage.Parent := dReport;
// On copie les composants de la page //
i := 1;
while i < oPage.ComponentCount do begin
try
Cmp := TComponent.Create(self);
Cmp.Assign(oPage.Components[i]);
dPage.InsertComponent(Cmp);
finally
end;
i := i + 1;
end;
RvProject1.SaveToFile(edPath + 'ROOS.rav');
RvProject1.Close;
end; |
Partager