Bonjour à toutes et tous,
C'est mon premier post sur le forum, merci pour votre indulgence.
Je développe avec delphi 10.3 RIO une appli qui est censée générer un rapport écrit à partir de données saisies dans des formulaires (form).
Ces pages de saisies écrites en delphi avec des composants VCL et JVCL ne sont reliées à aucune base de données, tout est généré par des fichiers texte (type ini).
Sur l'une de ces pages j'affiche 1 à n images dans un tJvThumbView.
A partir de toutes ces données, je tente de générer un rapport dont les 6 premières pages sont pré établies et sont remplies par les zones saisies ou par défaut dans l'appli delphi.
à partir de la 7eme page, je génère dans le rapport des tFrxPage à la volée. Chacune contient un tFrxHeader comportant un tfrxMemoView. Je n'ai pas mis de tChildBand, n'y voyant pas de nécessité vu que les données sont envoyées à la volée. Sous le tfrxMemoView, je génère autant de tfrxPictureView que d'images de mon appli. Quand je ne dépasse pas la hauteur max du tfrxPage, tout va bien, par contre dès que je dépasse, il recréé la même page en double avant de continuer avec l'image suivante.
Y a t'il une propriété, un morceau de code, une prière, quelque chose à faire ?
merci d'avance
photo du résultat du code
Code delphi : Sélectionner tout - Visualiser dans une fenêtre à part
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 //récupération du thumbview du sheet en cours myJv := tJvThumbView(mySheet.FindChildControl('tvScelle')); //initialisation des positions iTop et iLeft iTop := iTop + 10; iLeft := 0; //boucle sur toutes les images for iboucle := 0 to myJv.GetCount -1 do begin //sélection de l'image dans la boucle myJv.Selected := iBoucle; //création d'une image dans le report myFrxImg := tFrxPictureView.Create(myFrxPage); with myFrxImg do begin Parent := myFrxBand; //myFrxBand est un tfrxheader CreateUniqueName; Align := baNone; //hauteur incrémentée d'un écart Height := 350; Width := 250; Top := iTop; Left := iLeft; //si boucle paire if iBoucle mod 2 = 0 then begin iTop := iTop; iLeft := iLeft + Width + 5; //si boucle impaire end else begin iTop := iTop + Height + 10; iLeft := 0; end; //variable de la position en hauteur pour le coup d'après Center := True; KeepAspectRatio:= true; //attribution de l'image Picture.LoadFromFile(myJv.SelectedFile); end; end;
Partager