Bonjour
Voilà je viens de faire un QRep avec 1 requête, ça fonctionne très bien.
J'ai également essayé avec une requête dans la bande détail et une requête dans la bande résumé et ça fonctionne impecc aussi. MAIS dans mon cas 2 requête dans la bande détail, ça ne va pas...
J'ai une table dans laquelle je vais rechercher des parcelles. Dans cette table, j'ai également une Client ID. Je le prend et je souhaiterais afficher également les coordonnées du client.. et c'est là que ca coince !! Ca m'affiche seulement la dernière valeur de ma table. Donc en gros, les requêtes se font bien mais il garde en mémoire seulement mon dernier enrgistrement.
Voici mon code :
Quelqu'un a-t-il une idée pour que puisse afficher mes 400 enregistrements un en dessous de l'autre dans la bande de détail sans passer par une autre table ? Parce que là j'ai essayé en créant une table, faisant mes requêtes , les insérant dans cette table et afficher, mais ça prend un temps fou à l'affichage et en plus c'est une méthode barbare que je veux éviter à tout pris !!
Code : 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
38
39
40 //On sélectionne toutes les parcelles par ordre de parcelle ImprimeListeClients->Query2->SQL->Clear(); ImprimeListeClients->Query2->SQL->Add("SELECT * FROM TReservation ORDER BY right('000' + Parcelle, 3)"); ImprimeListeClients->Query2->Open(); int i; //On regarde le nombre de parcelles int NbreParcelle = ImprimeListeClients->Query2->RecordCount; // On se positionne à la première parcelle ImprimeListeClients->Query2->First(); //On fait une boucle, on passe d'une parcelle à une autre for (i=0;i<NbreParcelle;i++) { AnsiString Parcelle = ImprimeListeClients->Query2Parcelle->Value; int ClientID = ImprimeListeClients->Query2ClientID->Value; AnsiString SurfaceParcelle = ImprimeListeClients->Query2SurfaceParcelle->Value; //Une fois qu'on a tout, on va rechercher les coordonnées du client de la parcelle: ImprimeListeClients->Query1->Close(); ImprimeListeClients->Query1->SQL->Clear(); ImprimeListeClients->Query1->SQL->Add("SELECT * FROM TClient WHERE ClientID=:ClientID"); ImprimeListeClients->Query1->ParamByName("ClientID")->Value = ClientID; ImprimeListeClients->Query1->Open(); ImprimeListeClients->Query1->Active=true; // On affiche les coordonnées de la parcelle ImprimeListeClients->QRDBText18->DataSet = ImprimeListeClients->Query2; ImprimeListeClients->QRDBText18->DataField = "Parcelle"; // On affiche alors les coordonnées du client ImprimeListeClients->QRDBText1->DataSet = ImprimeListeClients->Query1; ImprimeListeClients->QRDBText1->DataField = "NomHomme"; // On passe à la parcelle suivante ImprimeListeClients->Query2->Next(); } // On affiche notre QReport ImprimeListeClients->QReport1->Preview();
D'avance, Merci![]()
Partager