4D v16.3

DIALOG

Accueil

 
4D v16.3
DIALOG

DIALOG 


 

DIALOG ( {laTable ;} formulaire {; *} ) 
Paramètre Type   Description
laTable  Table in Table à laquelle appartient le formulaire Si omis : Table par défaut ou utilisation d'un formulaire projet
formulaire  Chaîne in Nom du formulaire table ou projet à afficher comme dialogue
Opérateur in Utiliser le même process

La commande DIALOG présente le formulaire à l'utilisateur. Cette commande est souvent utilisée pour récupérer dans des variables des données fournies par l'utilisateur, ou pour lui présenter différentes informations, comme un choix d'options pour effectuer une opération.

Il est courant d'afficher le formulaire dans une fenêtre modale créée à l'aide de la commande Open window.
Voici un exemple typique de boîte de dialogue pouvant être affichée avec la commande DIALOG :

Utilisez DIALOG plutôt que ALERT, CONFIRM ou Request lorsque les informations à afficher ou à recueillir sont plus complexes que celles que peuvent gérer ces trois autres commandes.

Note : Dans les bases de données converties, il est possible d'interdire la saisie dans les champs dans les boîtes de dialogue (et donc de limiter la saisie aux seules variables) via une option des Préférences de 4D (page Compatibilité). Cette restriction correspond au fonctionnement des anciennes versions de 4D.

A la différence d'ADD RECORD et de MODIFY RECORD, DIALOG n'utilise pas le formulaire entrée courant. Vous devez spécifier, dans le paramètre formulaire, le formulaire (formulaire projet ou formulaire table) à utiliser. De même, aucun ensemble de boutons n'est placé par défaut s'ils sont omis dans le formulaire. Dans ce cas, seule la touche Echap (Windows) ou Esc (Mac OS) permet de quitter le formulaire.

Le dialogue est validé si l'utilisateur clique sur le bouton de validation ou appuie sur la touche Entrée, ou si la commande ACCEPT est exécutée.
A noter que la validation n'entraîne pas la sauvegarde : si le dialogue comporte des champs, vous devez appeler explicitement la commande SAVE RECORD pour stocker les données éventuellement modifiées.

Le dialogue est annulé si l'utilisateur clique sur le bouton d'annulation, appuie sur la touche d'annulation (Echap sous Windows, Esc sous Mac OS), ou si la commande CANCEL est exécutée.

Si vous passez le paramètre facultatif * , le formulaire est chargé et affiché dans la dernière fenêtre ouverte du process courant et la commande termine son exécution en laissant le formulaire actif à l’écran.
Ce formulaire réagit alors “normalement” aux actions de l’utilisateur et est fermé via une action standard ou lorsque du code 4D lié au formulaire (méthode objet ou méthode formulaire) appelle la commande CANCEL ou ACCEPT. Si le process courant se termine, les formulaires créés de cette façon sont automatiquement fermés en simulant un CANCEL. Ce mode d’ouverture est particulièrement utile pour afficher une palette flottante en rapport avec un document, sans pour autant nécessiter un autre process.

Notes :

  • Vous devez créer une fenêtre avant d'appeler l'instruction DIALOG(form;*), il n'est pas possible d'utiliser la fenêtre du dialogue en cours dans le process ni la fenêtre créée par défaut pour chaque process. Dans le cas contraire, l'erreur -9909 est générée.
  • Lorsque le paramètre * est utilisé, la fenêtre est refermée automatiquement à la suite d'une action standard ou de l'appel de la commande CANCEL ou ACCEPT. Vous ne devez pas gérer vous-même la fermeture de la fenêtre.

L'exemple suivant illustre l'utilisation de la commande DIALOG pour spécifier des critères de recherche. Un formulaire personnalisé contenant les variables vNom et vPays permet à l'utilisateur de saisir ses critères :

 Open window(10;40;370;220) ` Créer une fenêtre modale
 DIALOG("Form Recherche") ` Afficher le dialogue de recherche
 CLOSE WINDOW ` Nous n'avons plus besoin de la fenêtre
 If(OK=1) ` Si le dialogue est validé
    QUERY([Société];[Société]Nom=vNom;*)
    QUERY( & [Société]Payst =vPays)
 End if

L'exemple suivant permet de créer une palette d'outils :

  `Affichage palette d’outils
 $window_palette:=Open form window("tools";Palette form window)
 DIALOG("tools";*) `Rend la main immédiatement
  `Affichage fenêtre document principal
 $window_document:=Open form window("doc";Plain form window)
 DIALOG("doc")

Si l'utilisateur valide le dialogue, la variable système OK prend la valeur 1, si le dialogue est annulé OK prend la valeur 0.



Voir aussi  

ACCEPT
ADD RECORD
CANCEL
Open window

 
PROPRIÉTÉS 

Produit : 4D
Thème : Saisie
Numéro : 40

Cette commande modifie la variable système OKCette commande modifie la variable système Error

 
HISTORIQUE 

Modifié : 4D v11 SQL

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v16)
4D - Langage ( 4D v16.1)
4D - Langage ( 4D v16.2)
4D - Langage ( 4D v16.3)