version 5
REFUSER {(champ)}
Paramètre | Type | Description | |
champ | Champ | Champ dont la saisie doit être refusée |
Description
REFUSER accepte deux syntaxes. Dans la première syntaxe, REFUSER n'a pas de paramètre. Dans ce cas, la commande rejette la totalité de la saisie et force l'utilisateur à rester dans le formulaire. La seconde syntaxe permet de ne refuser que champ et force l'utilisateur à rester dans le champ.
Note : Nous vous conseillons d'utiliser en priorité les outils intégrés de validation de saisie de 4D, avant de faire appel à cette commande.
La première syntaxe de REFUSER est utilisée pour empêcher l'utilisateur de valider un enregistrement incomplet. Vous pouvez parvenir au même résultat sans utiliser REFUSER : associez la touche Entrée à un bouton n'effectuant "Pas d'action" et utilisez les commandes VALIDER et NE PAS VALIDER pour valider ou annuler l'enregistrement, une fois que les champs ont été correctement remplis. Il est recommandé d'employer cette seconde technique plutôt que d'utiliser la première syntaxe de REFUSER.
En général, vous employez la première syntaxe de REFUSER pour empêcher l'utilisateur de valider un enregistrement incomplet ou comportant des valeurs incorrectes. Si l'utilisateur tente de valider l'enregistrement, l'exécution de REFUSER provoque l'annulation de cette commande et l'enregistrement reste affiché dans le formulaire. L'utilisateur doit alors recommencer la saisie jusqu'à ce que les valeurs soient considérées comme correctes ou annuler l'enregistrement.
Le meilleur emplacement pour la commande REFUSER, lorsque vous utilisez cette syntaxe, est la méthode objet d'un bouton de type Valider associé à la touche de validation. De cette manière, la validation n'est possible que lorsque l'enregistrement est accepté, et l'utilisateur ne peut pas "forcer" la validation en appuyant sur la touche Entrée.
La seconde syntaxe de REFUSER utilise le paramètre champ. Si elle est exécutée, le curseur reste dans la zone de saisie du champ. Cette syntaxe oblige l'utilisateur à saisir une valeur correcte. Cette instruction doit être appelée juste après la modification du champ. Vous pouvez tester la modification d'un champ à l'aide de la fonction Modifie. Vous pouvez également placer la commande REFUSER dans la méthode objet de la zone de saisie. Lorsqu'elle est utilisée avec des champs de sous-formulaires, cette commande ne fait rien.
Vous devez placer cette syntaxe de REFUSER soit dans la méthode formulaire, soit dans une méthode objet du formulaire en train d'être modifié. Si vous utilisez REFUSER avec le formulaire "pleine page" d'un sous-formulaire, placez-la dans la méthode formulaire ou une méthode objet du formulaire "pleine page".
Vous pouvez utiliser la commande SELECTIONNER TEXTE pour sélectionner, à l'intérieur du champ, les valeurs qui ont été refusées.
Exemples
(1) L'exemple suivant illustre la première syntaxe de REFUSER, placée dans la méthode objet d'un bouton Valider. La touche Entrée a été définie comme équivalent clavier pour ce bouton. Cela signifie que même si l'utilisateur appuie sur cette touche pour valider l'enregistrement, la méthode objet du bouton sera exécutée. L'enregistrement est une transaction bancaire. Si la transaction est un chèque, un numéro de chèque doit être saisi. S'il n'y a pas de numéro, la validation est refusée :
Au cas ou : (([Opération]Trans = "Chèque") & ([Opération]Numéro = "")) ` Si c'est un chèque sans numéro... ALERTE ("Veuillez saisir le numéro du chèque.") ` Alerter l'utilisateur REFUSER ` Refuser la saisie ALLER A CHAMP ([Opération]Numéro) ` Placer le curseur dans le champ "numéro de chèque" Fin de cas
(2) L'exemple suivant est une partie de la méthode objet d'un champ [Employés]Salaire. La méthode objet teste si la valeur de ce champ est inférieure à 10 000 Euros et la refuse si c'est le cas. Vous pourriez effectuer le même contrôle en spécifiant une valeur minimum pour le champ, dans l'éditeur de formulaires du mode Développement :
Si ([Employés]Salaire<10000) ALERTE ("Le salaire annuel doit être supérieur à 10 000 Euros.") REFUSER ([Employés]Salaire) Fin de si
Référence
ALLER A CHAMP, NE PAS VALIDER, VALIDER.