2010-05-14 7 views
2

J'ai besoin d'un peu d'aide avec ClientDatasets dans Delphi. Ce que je veux réaliser est une grille montrant des clients, où l'une des colonnes montre le nombre de commandes pour chaque client. Je mets un ClientDataset sur un formulaire et charge le fichier Customers.xml à partir des données de démonstration Delphi. Un autre ClienDataset est chargé avec orders.xml. Relativement simple, je peux définir un agrégat sur les CDS de commandes montrant le montant total par client (ou le nombre). (Voir l'article de Cary Jensens à ce sujet: http://edn.embarcadero.com/article/29272) Le problème consiste à obtenir ce résultat agrégé à partir d'un ensemble de données de commandes dans l'ensemble de données client.Delphi Clientdataset Lookup/Aggregate

Il s'agit en quelque sorte d'une recherche inversée, car il existe une relation 1-n entre les clients et les commandes, et non un n-1 comme dans les scénarios de recherche.

Des idées?

Søren

Répondre

6

Peut-être que vous pouvez définir un champ calculé dans l'ensemble de données de clients qui simplement prendre la valeur du champ agrégée dans l'ensemble de données de commandes.

+0

Salut TOndrej, c'est une solution faisable, je pense que je vais aller avec ça. Merci beaucoup pour votre suggestion. – TheRoadrunner

0

Avez-vous essayé de faire un Maître (Clients) - Détail (Commandes) relation?
Ce n'est pas une situation de recherche.

+0

Hi Francois, La relation maître-détail est incompatible avec la fonction d'agrégation, car elle redéfinit les définitions d'index sur le jeu de données des commandes. – TheRoadrunner

Questions connexes