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 :

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();
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 !!
D'avance, Merci