Programmation d'un champ calculé

De RAD Studio
Aller à : navigation, rechercher

Remonter à Définition de nouveaux champs persistants


Après avoir défini un champ calculé, vous devez écrire le code permettant d'en calculer la valeur. Sans ce code, le champ calculé sera toujours évalué à la valeur null. Le code d'un champ calculé doit être placé dans l'événement OnCalcFields de son ensemble de données.

Pour programmer la valeur d'un champ calculé

  1. Sélectionnez le composant ensemble de données dans la liste déroulante de l'inspecteur d'objets.
  2. Choisissez la page Evénements dans l'inspecteur d'objets.
  3. Double-cliquez sur la propriété OnCalcFields pour lancer ou créer une procédure CalcFields pour le composant ensemble de données.
  4. Ecrivez le code définissant les valeurs et les autres propriétés du champ calculé.

Supposons par exemple que vous ayez créé un champ calculé CityStateZip pour la table Customers dans le module de données CustomerData. CityStateZip affichera le nom de la ville et de l'état où se trouve l'entreprise et le code postal sur une même ligne d'un contrôle orienté données.

Pour ajouter du code à la procédure CalcFields pour la table Customers, sélectionnez la table Customers dans la liste déroulante de l'inspecteur d'objets, passez à la page Evénements et double-cliquez sur la propriété OnCalcFields.

La procédure TCustomerData.CustomersCalcFields apparaît dans la fenêtre de code source de l'unité. Ajoutez le code suivant à la procédure pour calculer le champ :

CustomersCityStateZip.Value := CustomersCity.Value + ', ' + CustomersState.Value  + ' ' + CustomersZip.Value;
CustomersCityStateZip->Value = CustomersCity->Value + AnsiString(", ") +

Remarque :  Lorsque vous écrivez le gestionnaire d'événement OnCalcFields pour un champ calculé de façon interne, vous pouvez améliorer les performances en consultant la propriété State de l'ensemble de données client et en recalculant la valeur uniquement si State vaut dsInternalCalc. Pour plus d'informations, voir Utilisation de champs calculés de façon interne dans les ensembles de données client.

Voir aussi