Compte tenu que PowerAMC conserve la position des colonnes il est possible d’identifier la numérotation de celles-ci dans une table d’un modèle physique.
Voici donc les étapes pour la mise en œuvre:
- Créez une extension (.XEM) que vous nommerez « Ordre de tri des colonnes », voir image 1)
- Ajoutez la métaclasse «Colonne»
- Créez un nouvel attribut étendu, que vous allez nommer «Ordre de tri», voir image 2)
- Cochez l’option «Calculée» et sélectionnez «Lecture seule (Méthode Get)»
- Sélectionner le «Type de données» «(Entier)»
- Copiez / collez la fonction ci-dessous sous l’onglet «Script de méthode Get»
- Sous la métaclasse «Colonne» créez un «Nouveau» «Formulaire», voir image 3)
- Sélectionner le «Type» «Remplace l’onglet Général»
- Cliquez sur l’icône «Ajouter un attribut» afin d’y ajouter l’attribut «Ordre de tri» et déplacer ce dernier sous l’attribut «Code»
- Enregistrez l’extension
- Au niveau des propriétés des colonnes, dirigez-vous vers l’onglet Général afin de prendre connaissance de l’attribut Ordre de tri. La position de la colonne est dorénavant documenté, voir image 4)
Image 1) Extension => Ordre de tri des colonnes
Image 2) Attribut étendus => Ordre de tri
Image 3) Ajout au formulaire de l’onglet Général de l’attribut Ordre de tri
Image 4) Affichage de la position de chacune des colonnes
Function %Get%(obj)
‘ Implémentez votre méthode getter sur <obj> ici
‘ et renvoyez la valeur
dim i, tbl, col, mdl, c, cp, d
set mdl = obj.Package
for each tbl in mdl.tables
if not tbl.IsShortcut then
set col = tbl.columns
i = col.count
cp = 0
Do While cp < i
set c = col.item(cp)
if c.objectid = obj.objectid Then
d = cp + 1
end if
cp = cp + 1
Loop
end if
next
%Get% = d
End Function
Note : Afin d’afficher ce nouvel attribut étendu dans un rapport, vous devrez le sélectionner via l’option de mise en page pour l’élément de rapport.