NOM-CTX
BUT
Cette fonction permet de piloter dans une nomenclature de définition ou de pointeur le contexte de certaines variables en identifiant le nom de ces variables sous la forme de variables et en permettant de récupérer le type de la variable ou sa valeur.
Cette fonction est disponible uniquement pour les requêtes de type REN, et ne concerne que certaines variables de type VBA.
TYPE
CARACTERE (rubrique fonction gestion pour type requête REN exclusivement (libellé : Gestion Ctx Nomenc.).
SYNTAXE
Variable = NOM-CTX ( ACTION = DEFINITION,REC-TYPE,REC-VALEUR
TYPE-VARIABLE = VBA (non saisi)
NOM-VARIABLE = Référence de la variable VBA traitée
E-S :VALEUR = valeur liée à l’action de la fonction)
PARAMETRES
Paramètre | E/S | O | Type | Description |
ACTION | E | Oui | Caractère | DEFINITION : cette action permet à DIAPASON de définir la variable définie dans le paramètre NOM-VARIABLE pour pouvoir être utilisée par la suite par les autres actions. Cette action doit impérativement être effectuée sur le pointeur de niveau le plus haut avant toute autre action. Le type de la variable (Caractère, Numérique, Date, Logique) est retourné dans la variable du paramètre entrée-sortie VALEUR (valeur non définie si variable inconnue ou non autorisée). REC-TYPE : cette action demande à DIAPASON de donner le type (Caractère, Numérique, Date, Logique) de la variable définie dans le paramètre NOM-VARIABLE. Le type est retourné dans la variable du paramètre entrée-sortie VALEUR. REC-VALEUR : cette action demande à DIAPASON de donner la valeur de la variable définie dans le paramètre NOM-VARIABLE. La valeur est retourné dans la variable du paramètre entrée-sortie VALEUR. |
TYPE-VARIABLE | E | Oui | Caractère | Type DIAPASON de variable. Non saisi, forcé à VBA |
NOM-VARIABLE | E | Oui | Caractère | Nom de la variable VBA dans le dictionnaire des variables DIAPASON. Peut être une variable de type caractère. |
VALEUR | E | Oui | Caractère | Valeur en entrée ou sortie de fonction dépendant du paramètre ACTION. |
EXEMPLE
L’instruction qui suit permet de définir une variable VBA qui sera utilisée par la suite et dont le nom est le contenu de la variable locale Nom ; la fonction retourne le type de la variable (Caractère, Numérique, Date, Logique):
VLO.Fct = NOM-CTX( ACTION= DEFINITION, TYPE-VARIABLE=VBA , NOM-VARIABLE= VLO.Nom , E-S:VALEUR= VLO.Type)
Par la suite, l’instruction qui suit permet de mémoriser dans la variable locale Valeur la valeur effective (au format caractère exclusivement) de la variable VBA dont le nom est le contenu de la variable locale Nom :
VLO.Fct = NOM-CTX( ACTION= REC-VALEUR , TYPE-VARIABLE=VBA , NOM-VARIABLE= VLO.Nom , E-S:VALEUR= VLO.Valeur )
NOTES
La fonction retourne dans la variable résultat la valeur *INC lors de toute anomalie d’exécution et la valeur vide pour toute exécution correcte.
Les variables VBAs pouvant être utilisées sont les variables qui ne sont pas de type tableau et qui n’identifient pas les informations techniques d’un pointeur (variables dont le nom commence par di-t-*).
L’action DEFINITION ne peut être exécutée correctement que lorsque dans l’exécution de la requête, le contexte du pointeur courant correspond au pointeur de niveau le plus haut.
Les actions REC-VALEUR et REC-TYPE renvoient la valeur inconnue quand il y a une incohérence de définition ou que la variable VBA n’est pas définie.
EXEMPLE DETAILLE
Soit la requête suivante :
VLO.NbrVar = NB-MOT( SEPARATEUR= CLO."," , CHAINE= CGL.ListeVBAs )
BOUCLE VLO.Indice DE 1 A VLO.NbrVar :
VLO.NomVar = MOT( SEPARATEUR= CLO."," , CHAINE= CGL.ListeVBAs , NUMERO= VLO.Indice )
VLO.Fct = NOM-CTX( ACTION= DEFINITION , TYPE-VARIABLE=VBA , NOM-VARIABLE= VLO.NomVar , E-S:VALEUR= VLO.TypVar )
FIN_BLOC
POUR CHAQUE Pointeur Global :
VLO.NumOrd = VLO.NumOrd + CLO.1
VLO.Titre = CLO.""
BOUCLE VLO.Indice DE 1 A VLO.NbrVar :
VLO.NomVar = MOT( SEPARATEUR= CLO."," , CHAINE= CGL.ListeVBAs, NUMERO= VLO.Indice )
VLO.Fct = NOM-CTX( ACTION= REC-VALEUR , TYPE-VARIABLE=VBA , NOM-VARIABLE= VLO.NomVar , E-S:VALEUR= VLO.ValVar )
VLO.Titre = VLO.Titre + " " + VLO.NomVar + CLO."=" + VLO.ValVar
FIN_BLOC
CREATION LISTE :
PRENDRE NumOrd = VLO.NumOrd
PRENDRE Titre = VLO.Titre
FIN_BLOC
FIN_BLOC
Dans cette requête, la constante globale ListeVBAs contient une liste chaînée de variables VBAs que l’on souhaite extraire sous la forme nomvariable = valeur nomvariable = valeur ….
Soit la nomenclature de pointeur suivante (avec son contexte détaillé) :
Si la constante globale ListeVBAs contient la valeur ge-ref-gene,couleur, le résultat de la requête est le suivant :
NumOrd | Titre |
1 | ge-ref-gene=A couleur= ? |
2 | ge-ref-gene=B couleur= VERT |
3 | ge-ref-gene=C couleur= VERT |
4 | ge-ref-gene=D couleur= BLEU |
5 | ge-ref-gene=E couleur= BLEU |
6 | ge-ref-gene=F couleur= ? |
7 | ge-ref-gene=G couleur= ? |