Usage du champ Expression d’une DataColumn dans DataSet typé (.xsd)
Dans une DataTable d’un dataset typé, il est possible de créé des colonnes sans mapping réel avec des colonnes de la base de données.
En personnalisant le champ Expression on peut remonter des informations d’une table de référence, calculé des valeurs avec des fonctions d’agrégat (nb de ligne de facture pour une facture donnée); le tout en suivant une relation (issue de la base de données, ou purement applicative).
Imaginons une table appelé Contrat, et une table de référence appelé TypeContrat.
La table Contrat possède une colonne qui contient le code du type de contrat (CodeTypeContrat).
La table TypeContrat contient 2 colonnes : le code du type de contrat (clé primaire) et le libellé (LibelleTypeContrat).
On souhaite remonter le libellé du contrat dans une colonne de la DataColumn Contrat du DataSet. Comment faire ?
1 – créer une colonne ‘virtuelle’ dans le dataset, que l’on nommera LibelleTypeContrat
2 – si besoin, créer une relation entre le champ CodeTypeContrat de la table TypeContrat et le champ CodeTypeContrat de la table Contrat. Nommer cette relation ‘Contrat_TypeContrat’
3 – dans le champs expression de nouvelle colonne, tapez l’expression suivante : parent([Contrat_TypeContrat]).LibelleTypeContrat
Vous obtenez ainsi une colonne virtuelle dans la table Contrat qui vous simplifiera l’affichage (notamment dans les DataGrid).