version 5
Indefinie (variable) Booléen
Paramètre | Type | Description | |
variable | Variable | Variable à tester | |
Résultat | Booléen | Vrai = Variable actuellement indéfinie | |
Faux = Variable actuellement définie |
Description
Indefinie retourne Vrai si variable n'a pas été définie, et Faux si variable a été définie. Une variable est définie si une valeur lui a été assignée. Une variable est indéfinie si aucune valeur ne lui a été assignée, ou si elle a été effacée par la commande EFFACER VARIABLE.
Si la base de données a été compilée, la fonction Indefinie retourne Faux pour toutes les variables.
Exemples
(1) Avant la version 6 de 4e Dimension, la fonction Indefinie fournissait un moyen sûr de tester si la base était exécutée en mode interprété ou en mode compilé :
touteVar:="Hello" EFFACER VARIABLE(touteVar) Si (Indefinie(touteVar)) ` Vous êtes en mode interprété Sinon ` Vous êtes en mode compilé Fin de si
A compter de la version 6, il est plus pratique d'utiliser la fonction intégrée Application compilee.
(2) Votre application gère un process lorsqu'une commande de menu d'un module particulier de la base est sélectionnée : si le process est déjà créé, vous le passez au premier plan ; s'il n'est pas créé, vous le démarrez. Pour cela, pour chaque module de votre application, vous gérez une variable interprocess <>PID_... initialisée dans la Méthode base Sur ouverture.
Au cours du développement de la base, vous ajoutez de nouveaux modules. Au lieu de devoir à chaque fois modifier la Méthode base Sur ouverture (pour ajouter l'initialisation de la variable <>PID_... correspondante) puis quitter et réouvrir la base pour tout réinitialiser, vous utilisez la fonction Indefinie pour gérer "à la volée" l'ajout d'un nouveau module :
` Méthode projet M_AJOUT_CLIENTS Si (Indefinie(<>PID_AJOUT_CLIENTS)) ` Prise en compte des étapes de développement intermédiaires C_ENTIER LONG(<>PID_AJOUT_CLIENTS) <>PID_AJOUT_CLIENTS:=0 Fin de si Si (<>PID_AJOUT_CLIENTS=0) <>PID_AJOUT_CLIENTS:=Nouveau process("P_AJOUT_CLIENTS";64*1024;"P_AJOUT_CLIENTS") Sinon MONTRER PROCESS(<>PID_AJOUT_CLIENTS) PASSER AU PREMIER PLAN(<>PID_AJOUT_CLIENTS) Fin de si ` Note: P_AJOUT_CLIENTS, la méthode de gestion des process, `fixe <>PID_ADD_CUSTOMERS à zéro lorsqu'elle est terminée.
Référence