Powerd911 – Numéro #1 au Canada

Comment afficher dans un rapport l’ordre d’affichage des colonnes des tables d’un modèle physique ?

L’exemple ci-dessous permet de générer un numéro de colonne physique afin de présenter l’ordre d’affichage des colonnes dans la table. Le numéro sera un entier allant de 1 à N où N est le nombre de colonnes dans la table. Le code VBS ci-dessous peut-être exécuté via le menu «Outils=>Exécuter des commandes…=>Éditer/Exécuter le script»

dim i, tbl, col, mdl, c, cp

set mdl = ActiveModel

for each tbl in mdl.tables
set col = tbl.columns
i = col.count
cp = 0

Do While cp < i
set c = col.item(cp)
output "La colonne " + tbl.name+"."+c.name + " se trouve à la position " & cp
cp = cp + 1
Loop
next

Le code suivant est utilisé dans le cadre d’une extension et permet d’inscrire l’information dans un attribut étendu afin que la position de la colonne puisse être sélectionnée dans le cadre d’un rapport. Alors que la solution précédente faisait l’utilisation de la variable ‘ActiveModel’ à titre de référence. La présente solution va plutôt faire l’utilisation de la variable ‘obj.model’. La raison est que la variable ‘ActiveModel’ n’est pas disponible lors de l’affichage d’un aperçu d’un rapport et c’est pourquoi nous utiliserons plutôt ‘obj.model’ comme référence dans cette seconde solution

Function %Get%(obj)
' Implémentez votre méthode get 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

Prendre connaissance des pages suivantes afin d’apprendre comment intégrer le code ci-dessus dans une extension.

Laisser un commentaire