La spécification TClientDataSet Aggregates n'est pas ajoutée automatiquement lors de la création d'un champ Aggregate

StackOverflow https://stackoverflow.com/questions/22212

  •  09-06-2019
  •  | 
  •  

Question

Je dois créer un champ agrégé dans un TClientDataSet, mais comme indiqué dans la documentation :

Choisissez OK.Le champ d'agrégats nouvellement défini est automatiquement ajouté à l'ensemble de données client et sa propriété agrégates est automatiquement mise à jour pour inclure la spécification d'agrégat appropriée.

Lorsque j'ajoute un nouveau champ d'agrégation, la spécification d'agrégation n'est pas ajoutée aux agrégats de TClientDataSet, je ne peux donc pas utiliser son OnUpdateMethod.

J'ai également essayé de gérer l'événement OnChange de mon nouveau champ agrégé, mais il n'est pas déclenché du tout.

Est-ce que je fais quelque chose de mal?Je veux juste avoir un champ agrégé et déclencher un événement dès que sa valeur change.

Est-ce cassé sur Delphi ?Parce que ce qui est dans la documentation ne reflète pas le comportement réel.

modifier:@Michal sznajder J'utilise Delphi 2007

Était-ce utile?

La solution

Je pense que vous pourriez être confus entre les objets TAggregate et TAggregateField, et la documentation Delphi n'aide probablement pas.

AFAICT, les objets TAggregateField sont automatiquement « recalculés » et peuvent être liés à des contrôles sensibles aux données comme TDBText, mais n'ont aucun événement OnUpdate.

Les objets « TAggregate », en revanche, ont un événement OnUpdate, mais ne peuvent pas être liés à des contrôles orientés données.

Cela peut être éclairant : http://dn.codegear.com/article/29272

Autres conseils

Quelle version de Delphi ?Je viens d'essayer l'application D7 propre et TAggregateField a été ajouté.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top