Tivoli Service Desk 6.0 Developer's Toolkit - Manuel de référence du langage TSD Script

Traitement des boîtes de dialogue

Retour à la page principale

------------------------------------------------------------------------

$Desktop

Description

Renvoie un descripteur à la fenêtre du bureau. Cette valeur est permanente pendant la session en cours. Elle n'est cependant pas stockée de façon permanente.
Lors de l'exécution suivante du programme, cette constante prend une nouvelle valeur.

Syntaxe

FUNCTION $Desktop: WINDOW;

Avertissement : Sous OS/2, vous pouvez envoyer des messages valides au bureau pour mettre le traitement en mode pause.
Par exemple, si vous envoyez le message $MsgClose au bureau, l'exécution du programme se met en pause. Ce comportement
est contrôlé par le système d'exploitation.

Remarques

$Desktop est une constante système prédéfinie qui contient le descripteur du bureau OS/2 ou du bureau Windows.
Elle est souvent indiquée en tant que parent dans les instructions relatives aux fenêtres et aux boîtes de dialogue.

Exemple

KNOWLEDGEBASE Desktop;
    ROUTINES
 PROCEDURE Example;
PRIVATE
    ROUTINES
(* Créez une fenêtre déroulante dépendante du bureau
 avec traitement des événements par défaut *)
PROCEDURE Example IS
VARIABLES
whdl: WINDOW;
ACTIONS
 WinCreateScrollWindow($Desktop, (* La fenêtre est une fenêtre fille
                       du bureau OS/2 *)
                       whdl, (* descripteur de retour 
                       de la nouvelle fenêtre *)
                       $NullHandler, (* Traitement d'événement
                       par défaut *)
                       5, 5, 80, 20, (* Emplacement et
                       taille de la fenêtre *)
                       'Exemple', (* Titre de la fenêtre *)
                       '', (* Utilisez la police par défaut
                       0, (* Par défaut, la 
 taille du point est ignorée. *)
BitOr( $WinTitle, $WinBorder, $WinSysMenu ));
WinWait(whdl);
 END;

Codes retour

Voir aussi

------------------------------------------------------------------------

$KeyCode

Description

Indique la touche enfoncée par l'utilisateur lorsqu'un événement $MsgChar se produit.

Remarques

TSD Script définit plusieurs constantes pour les touches spéciales telles que les touches de
commande du curseur, les touches de modification (c'est-à-dire les touches utilisées en combinaison avec d'autres touches, comme Ctrl ou Alt), etc.

Remarque : Pour plus de détails, reportez-vous à la page Messages de TSD Script.

Exemple

EVENT MyEvent IS
ACTIONS
WHEN $Event IS $MsgChar THEN
 WHEN $KeyCode IS $KeyUpArrow THEN
 MoveUp;
 ELSWHEN $KeyDownArrow THEN
 MoveDown;
 ELSWHEN $KeyLeftArrow THEN
 MoveLeft;
ELSWHEN $KeyRightArrow THEN
 MoveRight;
 END;
 END;

Codes retour

Voir aussi :

Voir également : Codes de touches.

------------------------------------------------------------------------

DlgBox

Description

Crée une boîte de dialogue modale à partir d'un fichier de définition de boîte de dialogue. Une boîte de dialogue modale appartient à la fenêtre de l'application principale.
Lorsqu'un appel est envoyé vers une boîte de dialogue modale, il n'est pas retourné tant que la boîte de dialogue n'a pas été détruite. Si l'entité père n'est pas le bureau et qu'aucun propriétaire
n'est spécifié, la fenêtre mère est désactivée. Lorsqu'une boîte de dialogue modale est active, l'utilisateur risque de ne pas pouvoir intervenir sur les fenêtres
mères ou filles dont elle dépend.

Syntaxe

FUNCTION DlgBox(VAL parent: WINDOW, VAL dialogFile: STRING,

VAL EventHandler: EVENT,

REF returnRec: RECORD of ANY): INTEGER;

N'utilisez pas DlgBox lors du traitement d'un message $MsgDDEInitiate. Si vous commettez cette erreur,
$MsgDDEInitiate diffuse un message aux applications et verrouille la file d'attente des messages
jusqu'à ce qu'une réponse soit renvoyée.

Pendant ce temps, l'instruction DlgBox lance un gestionnaire d'événements qui attend une réponse de la file d'attente des messages.
DlgBox empêche les autres applications d'envoyer des messages à la file d'attente. Ceci entraîne un blocage
qui verrouille l'interface utilisateur.

Remarques concernant les arguments

Nom de l'argument Description
dialogFile Nom du fichier de définition de boîte de dialogue. La recherche est effectuée de la manière suivante :

1. Si un répertoire explicite est indiqué pour le fichier, la recherche se limite à ce répertoire.
2. La recherche porte sur les répertoires explicitement spécifiés sur la ligne de commande. La recherche porte sur le répertoire de travail en cours.
3. La recherche est effectuée dans le répertoire de l'interpréteur de script.
4. La recherche porte sur les répertoires indiqués dans la variable d'environnement SAIPATH.
5. (OS/2 uniquement) La recherche porte sur les répertoires indiqués dans la variable d'environnement DPATH.
6. La recherche porte sur les répertoires indiqués dans la variable d'environnement PATH.

Si cette stratégie ne permet pas de trouver le fichier, DlgBox renvoie un message d'erreur indiquant que le fichier est introuvable.
Parallèlement, vous pouvez spécifier le nom de la boîte de dialogue à afficher. Le nom du formulaire est indiqué selon le format : fileName[formName].

EventHandler

Gestionnaire d'événements chargé de traiter les événements générés par la fenêtre ou la boîte de dialogue. Si aucun traitement d'événement n'est requis,
le mot clé $NullHandlerpeut peut être utilisé. Valeur de retour returnRec. Si l'utilisateur choisit d'annuler la boîte de dialogue, la valeur
contenue dans la boîte de dialogue est attribuée à cet enregistrement. Cette attribution s'effectue sur la base des contrôles dont le nom
correspond à un nom d'élément dans la définition de l'enregistrement. Si la destruction de la boîte de dialogue a lieu par une autre méthode, la valeur reste
inchangée. Lorsqu'un gestionnaire d'événements est présent, l'enregistrement doit être du même type que les paramètres d'instance du gestionnaire d'événements.

Remarques

Premier message reçu

Lorsqu'une boîte de dialogue est créée, les messages ci-après sont reçus

dans l'ordre indiqué :

* $MsgEnterField positionne le curseur sur le premier contrôle défini dans l'ordre

des onglets.

* $MsgInitialize initialise les contrôles qui renferment des données. Un message $MsgInitialize distinct
est reçu pour chaque contrôle contenant les données de la boîte de dialogue.

* $MsgCreate crée physiquement la boîte de dialogue.

Troncature des espaces

Les espaces sont tronqués dans un contrôle de boîte de dialogue lorsque tous les espaces du contrôle sont vides. Cette situation peut se produire si
l'utilisateur saisit une chaîne d'espaces vides dans le contrôle, ou que le fichier de définition de boîte de dialogue contient une chaîne vide
destinée à être insérée dans le contrôle. Dans les deux cas, si la valeur du contrôle vide est appelée, c'est la valeur $Unknown qui est renvoyée.

Modalité des boîtes de dialogue

Pour créer une boîte de dialogue modale, utilisez l'instruction de création DlgBox. La propriété d'une boîte de dialogue modale revient à
la fenêtre principale de l'application. Lorsqu'un appel est envoyé vers une boîte de dialogue modale, il n'est pas retourné tant que la boîte de dialogue
n'a pas été détruite. Si l'entité mère n'est pas le bureau et qu'aucun propriétaire n'est défini, la fenêtre mère est désactivée.
Lorsqu'une boîte de dialogue modale est active, l'utilisateur risque de ne pas pouvoir intervenir sur les fenêtres
mères ou filles.

Pour créer une boîte de dialogue non-modale, utilisez l'instruction DlgCreate. Lorsqu'un appel est envoyé vers une
boîte de dialogue non modale, il est renvoyé immédiatement. La fenêtre continue d'exister aussi longtemps qu'elle n'a pas été explicitement détruite.

Fichier de définition de boîte de dialogue

La boîte de dialogue fournit un modèle permettant à l'utilisateur de saisir des données. Des zones de texte et contrôles divers sont créés à partir
du fichier de définition de la boîte de dialogue. Chacune des zones de texte correspond à un champ de la base de données et possède un nom unique. Une ou plusieurs
zones de texte peuvent renvoyer à des champs de données d'instance de la boîte de dialogue. Les zones de texte sont reliées
à des champs de données d'instance qui portent le même nom.

Traitement des événements

Lorsqu'une zone de texte est mise à jour dans une boîte de dialogue par l'action de l'utilisateur ou par l'application, le champ de données d'instance correspondant est également mis à jour.
Le système met en oeuvre une grande variété de conversions de types qui obligent les données de la boîte de dialogue à correspondre à celles des données d'instance.
Lorsqu'un gestionnaire d'événements est présent, l'application reçoit une notification des actions entreprises par l'utilisateur. Il lui est alors permis de répondre
et de modifier ces actions.

Sauf spécification contraire, les deux paramètres d'événement initiaux qui apparaissent dans tous les messages de boîte de dialogue sont les suivants :

* Le premier paramètre d'événement (de type Integer) est l'ID du contrôle sélectionné. Il est possible d'y accéder par le biais de l'alias $FieldID.

* Le deuxième paramètre d'événement (chaîne) correspond au nom du contrôle sélectionné. Il est possible d'y accéder par le biais de l'alias $FieldName.

Pour connaître la liste des messages susceptibles d'être reçus par les boîtes de dialogue, reportez-vous à la section "Messages pouvant être reçus par des boîtes de dialogue" du présent guide.

Exemple

KNOWLEDGEBASE DlgExample;
TYPES
DlgData IS RECORD
sampleField: INTEGER;
 END;
    ROUTINES
PROCEDURE DialogExample;
PRIVATE
    ROUTINES
EVENT DlgEvent(REF fields: DlgData) IS
ACTIONS
     WHEN $Event IS $MsgCreate THEN
NOTHING; (* Envoyé une fois que la boîte de dialogue a été créée *)
(* Comporte les paramètres pseudo $FormFile et $FormName *)
   ELSWHEN $MsgDestroy THEN
NOTHING; (* Envoyé lorsque la boîte de dialogue est sur le point d'être détruite *)
ELSWHEN $MsgHelp THEN
NOTHING; (* Envoyé lorsque l'utilisateur appuie sur la touche d'aide *)(* et qu'aucune aide n'est configurée *)
(* pour le champ ou le formulaire concerné *)
ELSWHEN $MsgEnterField THEN
NOTHING; (* Envoyé chaque fois que le nouveau champ *)
(* devient le champ actif. L'action peut être refusée *)
(* en retournant la valeur 0 *)
ELSWHEN $MsgExitField THEN
NOTHING; (* Envoyé chaque fois que le champ est sur le point *)
(* de devenir inactif *)
(* L'action peut être réfutée en renvoyant la valeur 0 *)
ELSWHEN $MsgAccept THEN
NOTHING; (* Envoyé lorsque l'utilisateur valide la boîte de
(* dialogue. L'action de validation peut être refusée *)
(* en retournant la valeur 0 *)
ELSWHEN $MsgCancel THEN
NOTHING; (* Envoyé lorsque l'utilisateur annule la boîte de
dialogue.*)(* L'action d'annulation peut être refusée *)
(* en retournant la valeur 0 *)
     ELSWHEN $MsgSelect THEN
NOTHING;(* Envoyé lorsqu'une modification a été détectée dans une *)
(* valeur de champ. *)
(* Les modifications effectuées par l'utilisateur dans les champs 
(* d'édition et de saisie multi-lignes sont détectés lorsque
*)(* l'utilisateur quitte le champ. Les autres *)
(* modifications sont détectées immédiatement. *)
(* Pour refuser la modification, renvoyez la valeur 0. *)
(* Les données d'instance sont mises à jour afin d'incorporer
(* la nouvelle valeur *)
(* du champ. Le troisième paramètre d'événement contient l'ancienne valeur, *)
(* tandis que le quatrième inclut la nouvelle *)
ELSWHEN $MsgMandField THEN
NOTHING; (* Envoyé lorsque l'utilisateur valide la boîte de dialogue et qu'un champ obligatoire 
(* ne comporte aucune valeur. L'action par défaut du système *)
(* consiste à afficher un message et à abandonner *)
(* l'action de validation. Si le gestionnaire d'événements *)
(* ne renvoie pas la valeur 1 (par défaut), le *)
(* message ne s'affiche pas. Si la valeur 0 est *)
(* renvoyée, l'action de validation est traitée *)
(* et un appel $MsgAccept est envoyé. *)
ELSWHEN $MsgUser THEN
NOTHING; (* Tout message défini par l'application *)
 END;
END (* Dlg Event *);
PROCEDURE DialogExample IS
VARIABLES
dlghdl: WINDOW;
fields: DLGDATA;
ACTIONS
DlgBox ($Desktop,'example[dialog1]',
DlgEvent{fields},fields);
END (* Exemple de boîte de dialogue *);

Codes retour de toutes les instructions commençant par Dlg ou Win

Code retour Description
1 Opération ayant abouti.
0 Abandon par l'utilisateur. L'utilisateur a fermé la fenêtre ou a abandonné l'opération. Cette opération s'effectue généralement lorsque l'utilisateur appuie sur la touche Echap, clique sur le bouton Annuler ou ferme la fenêtre à partir du menu système.
-1 Le descripteur de fenêtre ne fait pas référence à une fenêtre valide. La fenêtre n'existe peut-être plus ou ne prend pas en charge la commande.
-2 Valeur inconnue
-3 Mémoire insuffisante
-4 Aucune création. Le système d'exploitation n'a pas pu créer l'objet demandé. Un descripteur de fenêtre parent fait peut-être référence à une fenêtre qui n'existe plus.
-7 Le contrôle nommé d'une boîte de dialogue est introuvable dans la boîte de dialogue à laquelle le descripteur de fenêtre fait référence.
-8 La commande de boîte de dialogue demandée ne peut pas être exécutée sur le type de contrôle nommé.
-10 Un appel a échoué au niveau du système d'exploitation. Cela peut être dû à une configuration incorrecte ou à une inadéquation des ressources.
-12 L'instruction SendMessage ou PostMessage a été appelée par un message qui n'est pas pris en charge par les instructions NETx. Le message doit être l'un des messages $MsgNetx pris en charge ou un message $MsgUser + n défini par l'utilisateur spécifiquement en vue d'une utilisation avec les instructions NETx.

Voir aussi :

Pour plus d'informations sur la création des fichiers de définition de boîtes de dialogue, reportez-vous au manuel Tivoli Service Desk 6.0 Developer's Toolkit - Guide du concepteur d'interface.

------------------------------------------------------------------------

DlgCreate

Description

Crée une boîte de dialogue non modale à partir d'un fichier de définition de boîte de dialogue.

Syntaxe

FUNCTION DlgCreate(VAL parent: WINDOW, REF whdlDialog: WINDOW,

VAL dialogFile: STRING,

VAL EventFunction: EVENT): INTEGER;

Remarques concernant les arguments Description du nom de l'argument
whdlParent Ce paramètre spécifie la fenêtre mère de la boîte de dialogue.
whdlDialog Descripteur de la nouvelle fenêtre est renvoyé dans ce paramètre. En cas d'erreur, la variable prend la valeur $Unknown (inconnu).
dialogFile Nom du fichier de définition de boîte de dialogue. La recherche est effectuée de la manière suivante :

1. Si un répertoire explicite est indiqué pour le fichier, la recherche se limite à ce répertoire.
2. La recherche porte sur les répertoires explicitement spécifiés sur la ligne de commande.
3. La recherche porte sur le répertoire de travail en cours.
4. La recherche est effectuée dans le répertoire de l'interpréteur de script.
5. La recherche porte sur les répertoires indiqués dans la variable d'environnement SAIPATH.
6. (OS/2 uniquement) La recherche porte sur les répertoires indiqués dans la variable d'environnement DPATH.
7. La recherche porte sur les répertoires indiqués dans la variable d'environnement PATH.

Si cette stratégie ne permet pas de trouver le fichier, DlgBox renvoie un message d'erreur indiquant que le fichier est introuvable. Parallèlement, vous pouvez spécifier le nom de la boîte de dialogue à afficher. Le nom du formulaire est indiqué selon le format : fileName[formName].
EventFunction Gestionnaire d'événements chargé de traiter les événements générés par la fenêtre ou la boîte de dialogue. Si aucun traitement d'événement n'est requis, le mot clé $NullHandler peut être utilisé.

Remarques

Premiers messages reçus

Lorsqu'une boîte de dialogue est créée, les messages ci-après sont reçus dans l'ordre indiqué :

1. $MsgEnterField positionne le curseur sur le premier contrôle défini dans l'ordre

2. $MsgInitialize initialise les contrôles qui renferment des données. Un message $MsgInitialize distinct
est reçu pour chaque contrôle contenant les données de la boîte de dialogue.

3. $MsgCreate crée physiquement la boîte de dialogue.

Modalité

Pour créer une boîte de dialogue modale, utilisez l'instruction de création DlgBox. La propriété d'une boîte de dialogue modale revient à
à la fenêtre principale de l'application. Lorsqu'un appel est envoyé vers une boîte de dialogue modale, il n'est pas retourné tant que la boîte de dialogue
n'a pas été détruite. Si l'entité mère n'est pas le bureau et qu'aucun propriétaire n'est défini, la fenêtre mère est désactivée.
Lorsqu'une boîte de dialogue modale est active, l'utilisateur risque de ne pas pouvoir intervenir sur les fenêtres
mères ou filles.

Pour créer une boîte de dialogue non-modale, utilisez l'instruction DlgCreate. Lorsqu'un appel est envoyé vers une
boîte de dialogue non modale, il est renvoyé immédiatement. La fenêtre continue d'exister aussi longtemps qu'elle n'a pas été explicitement détruite.


Contrôles des boîtes de dialogue

La boîte de dialogue fournit un modèle permettant à l'utilisateur de saisir des données. Divers contrôles tels que des zones de texte sont
spécifiés dans le fichier de définition de boîte de dialogue. Chaque contrôle possède un nom unique. Chacun d'eux peut renvoyer
à des champs de base de données. La base de données fournit les données d'instance nécessaires à la boîte de dialogue. Les noms .df des
contrôles liés à la base de données doivent être les mêmes que ceux des champs de données d'instance.

Lorsqu'un contrôle de boîte e dialogue est mis à jour par l'action de l'utilisateur ou par l'application, le champ de données d'instance correspondant est également mis à jour.
Le système met en oeuvre une grande variété de conversions de types qui obligent les données de la boîte de dialogue à correspondre à celles des données
d'instance. Lorsqu'un gestionnaire d'événements est présent, l'application reçoit une notification des actions entreprises par l'utilisateur. Il lui est alors permis
de répondre et de les modifier.

Troncature des espaces

Les espaces sont tronqués dans un contrôle de boîte de dialogue lorsque tous les espaces du contrôle sont vides. Cette situation peut se produire si
l'utilisateur saisit une chaîne d'espaces vides dans le contrôle, ou que le fichier de définition de boîte de dialogue contient une chaîne vide
Dans les deux cas, si la valeur du contrôle vide est appelée, c'est la valeur $Unknown qui est renvoyée.

Messages de boîtes de dialogue : Paramètres

Sauf spécification contraire, les deux paramètres d'événement initiaux qui apparaissent dans tous les messages de boîte de dialogue sont les suivants :

Codes retour

Voir aussi :

Pour plus d'informations sur la création des fichiers de définition de boîtes de dialogue, reportez-vous au manuel

Tivoli Service Desk 6.0 Developer's Toolkit - Guide du concepteur d'interfaces (Interface Designer)

------------------------------------------------------------------------

DlgCreateSubForm

Description

Effectue le chargement d'un sous-formulaire à partir d'un fichier de formulaire, et affiche celui-ci dans le contexte d'un formulaire de dialogue existant.

Syntaxe

FUNCTION DlgCreateSubForm(VAL whdl:WINDOW,
REF SubFormHandle: WINDOW,
VAL formSpec: STRING,
                      VAL EventHandler: EVENT,
VAL xPos: INTEGER,
VAL yPos: INTEGER
                    ): INTEGER;
Remarques concernant les arguments Description du nom de l'argument
EventFunction Gestionnaire d'événements chargé de traiter les événements générés par la fenêtre ou la boîte de dialogue. Si aucun traitement d'événement n'est requis, le mot clé $NullHandler peut être utilisé.
EventHandler Gestionnaire d'événements chargé de traiter les événements générés par le nouveau sous-formulaire. Si aucun traitement d'événement n'est requis, le mot clé $NullHandler peut être utilisé.
formSpec Spécification de formulaire relative au sous-formulaire contenu dans le formulaire "FILE[FORM_NAME]".
SubFormHandle Le descripteur du nouveau sous-formulaire est renvoyé dans ce paramètre. En cas d'erreur, la variable prend la valeur $Unknown (inconnu).
whdl Formulaire de dialogue parent du nouveau sous-formulaire
xPos Abscisse (x) de l'angle supérieur gauche du nouveau sous-formulaire. Cette coordonnée est relative au coin supérieur gauche du formulaire de dialogue parent.
yPos Ordonnée (y) de l'angle supérieur gauche du nouveau sous-formulaire. Cette coordonnée est relative au coin supérieur gauche du formulaire de dialogue parent.

Exemple

     WHEN $Event IS $MsgCreate THEN
DlgCreateSubForm($Handle, instanceData.theSubForm, 'screens[theSubForm]', 
SubFormHandler, 3, 50);
 END;

Codes retour

Voir aussi :

Pour plus d'informations sur la création des fichiers de définition de boîtes de dialogue, reportez-vous au manuel Tivoli Service Desk 6.0 Developer's Toolkit - Guide du concepteur d'interface.

------------------------------------------------------------------------

DlgDeletePage

Description

Supprime une page d'un bloc-notes ou d'un formulaire existant.

Syntaxe

FUNCTION DlgDeletePage ( VAL PARENT : WINDOW,

VAL NOTEBOOKID : STRING,

VAL PAGEID : STRING ) : INTEGER;

Remarques concernant les arguments Description du nom de l'argument
Parent Descripteur de fenêtre qui correspond au formulaire contenant le bloc-notes.
NotebookID Identificateur du bloc-notes (à partir du fichier de définition .df)
PageID Identificateur de la page à supprimer (à partir du fichier de définition .df)


Exemple

KNOWLEDGEBASE dlgpage;
    ROUTINES
PROCEDURE Main;
(* ***** PERSONNEL ***** *)
PRIVATE
VARIABLES
(* Variable globale contenant le descripteur de fenêtre de la boîte de dialogue *)
 mainWindow : WINDOW;
    ROUTINES
PROCEDURE Main IS
VARIABLES
ACTIONS
(* Créez un dialogue à l'aide du formulaire PAGE_MAIN de dlgpage.df *)
(* PAGE_MAIN contient un sous-formulaire comportant le bloc-notes PAGE_NOTEBOOK en tant que formulaire de dépendance *)
(* PAGE_NOTEBOOK dispose de deux onglets *)
DlgCreate($Desktop, mainWindow, 'dlgpage[PAGE_MAIN]', $NullHandler);
(* Supprimez la deuxième page du bloc-notes. *)
(* Cette page contient ID FORM_TAB2 *)
DlgDeletePage(mainWindow, 'PAGE_NOTEBOOK', 'FORM_TAB2');
           WinWait(mainWindow);
 END;

Codes retour

Voir aussi :

DlgInsertPage

------------------------------------------------------------------------

DlgFieldValue

Description

Lance une requête sur la valeur d'un contrôle de boîte de dialogue.

Syntaxe

FUNCTION DlgFieldValue(VAL whdlDialog: WINDOW,
VAL fieldName: STRING,
REF fieldValue: ANY): INTEGER;
Remarques concernant les arguments Description du nom de l'argument
whdlDialog Descripteur de fenêtre de la boîte de dialogue contenant le contrôle sur lequel est effectuée l'opération. Si la commande est émise par un gestionnaire d'événements qui contient le contrôle, le paramètre pseudo $Handle peut être utilisé.
fieldName Nom du contrôle contenu dans la boîte de dialogue dirigée par la commande. Ce nom peut être spécifié dans le concepteur d'interface, ou dans l'instruction DEFINE du fichier de définition de boîte de dialogue. L'indication du nom n'impose pas le respect de la distinction majuscules-minuscules.
fieldValue Renvoie la valeur de contrôle demandée. Les données sont converties vers le type du paramètre, tandis que la valeur résultante est attribuée à ce dernier. Certaines conversions produisent parfois des résultats incohérents. Si le contrôle est du type SQLManage ou une boîte à liste, le paramètre complémentaire peut être un enregistrement ou une liste de valeurs entières. L'action est effectuée successivement pour chacun des contrôles contenus dans l'enregistrement. Si le contrôle permet d'effectuer des sélections multiples, comme dans le cas d'une boîte à liste ou d'une table, et que le paramètre complémentaire est une variable unique, c'est le premier élément qui est renvoyé. Tous les éléments sont renvoyés dans le cas ou ce paramètre est une liste de variables.

Remarques

Les espaces sont tronqués dans un contrôle de boîte de dialogue lorsque tous les espaces du contrôle sont vides. Cette situation peut se produire si
l'utilisateur saisit une chaîne d'espaces vides dans le contrôle, ou que le fichier de définition de boîte de dialogue contient une chaîne vide. Dans les deux cas, si la valeur du contrôle vide est appelée,
c'est la valeur $Unknown qui est renvoyée.

Exemple

KNOWLEDGEBASE DlgField;
TYPES
DLGDATA IS RECORD
sampleField: INTEGER;
 END;
SQLDATA IS RECORD
firstName: STRING;
lastName: STRING;
 END;
(* ******* PERSONNEL ******** *)
PRIVATE
    ROUTINES
(* ******** boîte de dialogue GESTIONNAIRE D'EVENEMENTS ******** *)
EVENT DlgEvent( REF fields: DLGDATA ) IS
VARIABLES
names: SQLDATA;
ACTIONS
(* Tous les messages de boîtes de dialogue comportent les paramètres pseudo
$FieldID, *)
(* et $FieldName *)
WHEN $Event IS $MsgSelect THEN
IF $FieldName = 'insertButton' THEN
DlgFieldValue ( $Handle, 'sql_data', names );
IF DlgBox( $Desktop,'addDlg', $NullHandler{names},
names ) > 0
THEN
DlgListBoxInsert( $Handle, 'namesTable', names );
SQLInsert( 'names', names );
 END;
 END;
 END;
 END;
PROCEDURE DialogExample IS
VARIABLES
fields: DLGDATA;
ACTIONS
DlgBox( $Desktop,'example[dialog1]', DlgEvent{ fields },fields );
 END;

Codes retour

Voir aussi :

------------------------------------------------------------------------

DlgGetButtonText

Description

Lance une requête sur le texte en vigueur dans un bouton.

Syntaxe

FUNCTION DlgGetButtonText (VAL whdlDialog: WINDOW,

VAL fieldName: String,

REF buttonText STRING): Integer;

Remarques concernant les arguments Description du nom de l'argument
whdlDialog Descripteur de fenêtre d'une boîte de dialogue.
FieldName Nom du contrôle relatif au bouton sur lequel est lancée la requête de texte.
ButtonText Texte renvoyé pour le bouton.

Exemple

KNOWLEDGEBASE GetButton;
TYPES
    ROUTINES
PROCEDURE Main;
PRIVATE
    ROUTINES
PROCEDURE Main IS
VARIABLES
handle : WINDOW;
text : STRING;
ACTIONS
DlgCreate($Desktop,
handle,
'sample.dfc[sample]',
$NullHandler);
DlgGetButtonText(handle, 'test_button', text);
WinMessageBox(handle, 'Texte du bouton', $MBOK,
text);
WinWait(handle);
 END;

Codes retour

Voir aussi :

DlgSetButtonText

------------------------------------------------------------------------

DlgGetSelectedText

Description

Extrait le texte sélectionné depuis une zone de texte contenue dans une boîte de dialogue.

Syntaxe

FUNCTION DlgGetSelectedText(REF whdlDialog: WINDOW, REF fieldName: STRING,
REF selectedText: STRING): INTEGER;
Remarques concernant les arguments Description du nom de l'argument
whdlDialog Descripteur de fenêtre de la boîte de dialogue contenant le contrôle sur lequel est effectuée l'opération. Si la commande est émise par un gestionnaire d'événements qui contient le contrôle, le paramètre pseudo $Handle peut être utilisé.
fieldName Nom du contrôle contenu dans la boîte de dialogue dirigée par la commande. Ce nom peut être spécifié dans le concepteur d'interface, ou dans l'instruction DEFINE du fichier de définition de boîte de dialogue. L'indication du nom n'impose pas le respect de la distinction majuscules-minuscules.
selectedText Cet argument renvoie le texte sélectionné dans une zone de texte. Si aucun texte n'est sélectionné, la valeur renvoyée est une chaîne de longueur nulle. En cas d'erreur, la chaîne renvoyée prend une valeur inconnue.


Exemple

KNOWLEDGEBASE dlgform;
    ROUTINES
PROCEDURE Main;
(* ***** PERSONNEL ***** *)
PRIVATE
VARIABLES
(* Variable globale contenant le descripteur de fenêtre de la boîte de dialogue *)
 mainWindow : WINDOW;
    ROUTINES
EVENT MainEvent is FORWARD;
PROCEDURE Main IS
ACTIONS
(* Créez la boîte de dialogue en utilisant FORM_DLG dans le fichier dlgform.df *)
(* FORM_DLG comporte un paramètre EntryField identifié par CONTROl_TEXT, *)
(* ainsi qu'un bouton désigné par BUTTON_TEXT *)
DlgCreate($Desktop, mainWindow, 'dlgform[FORM_DLG]', MainEvent);
           WinWait(mainWindow);
 END;
EVENT MainEvent IS
VARIABLES
selString : STRING;
ACTIONS
(* Lorsque l'utilisateur appuie sur le bouton, le texte sélectionné à partir de entryfield *)
(* s'affiche dans une boîte de message. *)
WHEN $Event IS $MsgSelect THEN
IF $fieldName = 'BUTTON_TEXT' THEN
DlgGetSelectedText(mainWindow, 'CONTROL_TEXT', sel String);
WinMessageBox(mainWindow, 'Texte sélectionné', $MBOK, selString);
 END;
 END;
 END;

Codes retour

Voir aussi :

DlgInsertString

------------------------------------------------------------------------

DlgInsertPage

Description

Insère une nouvelle page, issue d'un fichier .dfc, dans un bloc-notes ou un formulaire existant. Le gestionnaire d'événement et les données d'instance existants sont appliqués dans le nouveau formulaire.

Syntaxe

FUNCTION DlgInsertPage (VAL FORM : WINDOW
VAL NotebookId : STRING
VAL PageId : STRING
VAL FormSpec : STRING
VAL TabName : STRING
VAL Position : INTEGER
                    ): INTEGER;
Remarques concernant les arguments Description du nom de l'argument
Formulaire Formulaire à partir duquel la nouvelle page est insérée.
NotebookId Identifiant du bloc-notes dans lequel la page est insérée.
PageId Identifiant de la page qui est insérée.
FormSpec Spécification de formulaire relative au sous-formulaire contenu dans le formulaire "FILE[FORM_NAME].
TabName Texte de l'onglet correspondant à la page insérée.
Position Emplacement de l'onglet inséré, pris parmi les autres onglets.


Exemple

KNOWLEDGEBASE dlgpage;
    ROUTINES
PROCEDURE Main;
(* ***** PERSONNEL ***** *)
PRIVATE
VARIABLES
(* Variable globale contenant le descripteur de fenêtre de la boîte de dialogue *)
 mainWindow : WINDOW;
    ROUTINES
PROCEDURE Main IS
VARIABLES
ACTIONS
(* Créez un dialogue à l'aide du formulaire PAGE_MAIN de
dlgpage.df *)
(* PAGE_MAIN contient un sous-formulaire comportant le
bloc-notes PAGE_NOTEBOOK en tant que formulaire de dépendance *)
(* PAGE_NOTEBOOK dispose de deux onglets *)
DlgCreate($Desktop, mainWindow, 'dlgpage[PAGE_MAIN]', $NullHandler);
(* Insérez le formulaire FORM_TAB3, à partir de dlgpage.df, dans
le bloc-notes spécifié *)
(* avec l'ID PAGE_NOTEBOOK après la dernière page. L'identifiant de cet onglet *)
(* sera 'Onglet 3' *)
DlgInsertPage(mainWindow, 'PAGE_NOTEBOOK', '', 'dlgpage[FORM_TAB3]', 'Onglet 3', $After);
           WinWait(mainWindow);
 END;

Codes retour

Voir aussi :

DlgDeletePage

------------------------------------------------------------------------

DlgInsertString

Description

Insère une chaîne après le curseur, dans une zone de texte, une boîte à liste ou une boîte de dialogue mixte.

Syntaxe

FUNCTION DlgInsertString(VAL whdlDialog: WINDOW,
VAL fieldName: STRING,
VAL insertString: STRING): INTEGER;
Remarques concernant les arguments Description du nom de l'argument
whdlDialog Descripteur de fenêtre de la boîte de dialogue contenant le contrôle sur lequel est effectuée l'opération. Si la commande est émise par un gestionnaire d'événements qui contient le contrôle, le paramètre pseudo $Handle peut être utilisé.
fieldName Nom du contrôle contenu dans la boîte de dialogue dirigée par la commande. Ce nom peut être spécifié dans le concepteur d'interface, ou dans l'instruction DEFINE du fichier de définition de boîte de dialogue. L'indication du nom n'impose pas le respect de la distinction majuscules-minuscules.
insertString Chaîne à insérer dans le contrôle, à l'emplacement du curseur. Le texte sélectionné est remplacé par le texte inséré.

Remarques

Le texte sélectionné est remplacé par le texte inséré.

Exemple

KNOWLEDGEBASE DlgIns_text;
TYPES
DLGDATA IS RECORD
sampleField: INTEGER;
 END;
(* ******* PERSONNEL ******** *)
PRIVATE
    ROUTINES
(* ******** boîte de dialogue GESTIONNAIRE D'EVENEMENTS ******** *)
EVENT DlgEvent( REF fields: DLGDATA ) IS
VARIABLES
insertString: STRING;
ACTIONS
(* Tous les messages de boîtes de dialogue comportent les paramètres pseudo $FieldID *)
(* et $FieldName *)
WHEN $Event IS $MsgChar THEN
WHEN $KeyCode IS $KeyFn2 THEN
(* Recherchez la touche de raccourci F2 *)
(* Définissez l'invite de saisie du texte par l'utilisateur *)
IF WinEditField( $Desktop, insertString, 0, 0, 30,
'Veuillez saisir le texte à insérer',
$WinAutoPos + $WinBorder
+ $WinTitle ) > 0
THEN
(* Le champs doit être du type MultiLineEditor, Entry Field ou ComboBox *)
DlgInsertString( $Handle, 'text_field', insertString );
 END;
 END;
 END;
 END;
PROCEDURE DialogExample IS
VARIABLES
fields: DLGDATA;
ACTIONS
DlgBox( $Desktop,'example[dialog1]', DlgEvent{ fields },fields );
 END;

Codes retour

Voir aussi :

DlgGetSelectedText

------------------------------------------------------------------------

DlgIsItemEnabled

Description

Vous permet de préciser si un contrôle est activé ou non dans une boîte de dialogue.

Syntaxe

FUNCTION DlgIsItemEnabled (VAL whdlDialog: WINDOW,
VAL fieldName: STRING,
REF enabledState: BOOLEAN):
Integer;
Remarques concernant les arguments Description du nom de l'argument
whdlDialog Descripteur de fenêtre de la boîte de dialogue
fieldName Nom du contrôle soumis au test (état activé ou désactivé).
enabledState TRUE lorsque le contrôle est activé, FALSE dans le cas contraire.


Exemple

KNOWLEDGEBASE DlgEnabl;
    ROUTINES
PROCEDURE Main;
PRIVATE
    ROUTINES
PROCEDURE Main IS
VARIABLES
 Handle : WINDOW;
enabled : BOOLEAN;
ACTIONS
DlgCreate($Desktop,
                       Handle,
'dlgenabl[sample]',
$NullHandler);
(* Activer le bouton, vérifier le statut du bouton, afficher
le résultat. *)
DlgSetEnabled(Handle, 'test_button', TRUE);
DlgIsItemEnabled(Handle, 'test_button',
enabled);
WinMessageBox(Handle, 'Statut du bouton', $MBOK,
enabled);
(* Désactiver le bouton, vérifier le statut du bouton, afficher
le résultat. *)
DlgSetEnabled(Handle, 'test_button', FALSE);
DlgIsItemEnabled(Handle, 'test_button',
enabled);
WinMessageBox(Handle, 'Statut du bouton', $MBOK,
enabled);
 WinWait(Handle);
 END;

Codes retour

Voir aussi :

------------------------------------------------------------------------

DlgListBoxClear

Description

Efface toutes les valeurs contenues dans les zones de texte, contrôles SQLManage ou dans les tables.

Syntaxe

FUNCTION DlgListBoxClear(VAL whdlDialog: WINDOW,
VAL fieldName: STRING): INTEGER;
Remarques concernant les arguments Description du nom de l'argument
whdlDialog Descripteur de fenêtre de la boîte de dialogue contenant le contrôle sur lequel est effectuée l'opération. Si la commande est émise par un gestionnaire d'événements qui contient le contrôle, le paramètre pseudo $Handle peut être utilisé.
fieldName Liste des noms des contrôles contenus dans la boîte de dialogue concernée. Le nom du contrôle peut être spécifié dans le concepteur d'interface, ou dans l'instruction DEFINE du fichier de définition de boîte de dialogue. L'indication du nom n'impose pas le respect de la distinction majuscules-minuscules. L'exécution de la commande a lieu pour chacun des contrôles qui figurent dans la liste. La valeur correspondant au nombre de contrôles traités est renvoyée. En cas d'erreur, le traitement est interrompu. Si une erreur survient lors du traitement du premier contrôle, le code correspondant est renvoyé par l'instruction.

Remarques

Si une valeur est en cours de sélection lorsque la boîte à liste est effacée, le système envoie une instruction $MsgSelect (ou $MsgInitialize). Etant donné que la valeur sélectionnée
n'existe plus, le refus de ce message n'a aucune conséquence.

Exemple

KNOWLEDGEBASE dlglist;
TYPES
FIELDREC IS RECORD
test_list_box: STRING;
 END;
    ROUTINES
PROCEDURE ExampleDialog;
PRIVATE
CONSTANTS
itemList IS { 'nouvel élément 1', 'nouvel élément 2', 'nouvel élément 3' }: LIST OF STRING;
    ROUTINES
(* ******** boîte de dialogue GESTIONNAIRE D'EVENEMENTS ******** *)
EVENT DlgEvent( REF fields: FIELDREC ) IS
VARIABLES
index: INTEGER;
listEntry: STRING;
ACTIONS
     WHEN $Event IS $MsgCreate THEN
DlgListBoxInsert( $Handle, 'test_list_box',
'Valeur initiale'
ELSWHEN $MsgInitialize THEN
WinMessageBox( $Handle, 'Initialisation du message', $MBYesNo,
'Ancienne valeur = ' & $EventParm( 3, STRING ) &
'Nouvelle valeur = ' & $EventParm( 4, STRING ));
     ELSWHEN $MsgSelect THEN
WHEN $FieldName IS 'but_lb_clear' THEN
DlgListBoxClear( $Handle, 'test_list_box' );
ELSWHEN 'but_lb_insert' THEN
DlgListBoxInsert( $Handle, 'test_list_box',
'nouvel élément' );
DlgListBoxInsert( $Handle, 'test_list_box',
itemList );
ELSWHEN 'but_lb_delete' THEN
DlgListBoxDelete( $Handle, 'test_list_box' );
ELSWHEN 'but_lb_update' THEN
DlgFieldValue( $Handle, 'test_list_box',
listEntry );
WinEditField( $Desktop, listEntry, 0, 0, 30, 'Nouvelle
valeur ?',
$WinAutoPos + $WinBorder + $WinTitle );
DlgListBoxUpdate( $Handle, 'test_list_box',
listEntry );
ELSWHEN 'but_lb_set_index' THEN
WinEditField( $Desktop, index, 0, 0, 30,
'Nouvel index ?',
$WinAutoPos + $WinBorder
+ $WinTitle );
DlgSetListBoxIndex( $Handle,
'test_list_box', index );
ELSWHEN 'but_lb_index' THEN
WinMessageBox( $Handle, 'Index des boîtes à liste', $MBOK,
DlgListBoxIndex( $Handle,
'test_list_box' ) );
 END;
 END;
 END;
PROCEDURE ExampleDialog IS
VARIABLES
whdlDialog: WINDOW;
 result: INTEGER;
data: FIELDREC;
ACTIONS
result := DlgCreate( $Desktop, whdlDialog, 'dlglist', DlgEvent, {data});
                                 IF result < 1 THEN
WinMessageBox( $Desktop, 'Erreur', $MBOK + $MBIconError,
'Echec d''ouverture de la boîte de dialogue' & result );
 END;
WinWait( whdlDialog );
 END;

Codes retour

Voir aussi :

------------------------------------------------------------------------

DlgListBoxDelete

Description

Efface toutes les valeurs contenues dans les zones de texte, contrôles SQLManage ou dans les tables.

Syntaxe

FUNCTION DlgListBoxDelete(VAL whdlDialog: WINDOW,
VAL fieldName: STRING): INTEGER;
Remarques concernant les arguments Description du nom de l'argument
whdlDialog Descripteur de fenêtre de la boîte de dialogue contenant le contrôle sur lequel est effectuée l'opération. Si la commande est émise par un gestionnaire d'événements qui contient le contrôle, le paramètre pseudo $Handle peut être utilisé.
fieldName Nom du contrôle contenu dans la boîte de dialogue dirigée par la commande. Ce nom peut être spécifié dans le concepteur d'interface, ou dans l'instruction DEFINE du fichier de définition de boîte de dialogue. L'indication du nom n'impose pas le respect de la distinction majuscules-minuscules.

Remarques

Lorsque l'élément sélectionné est supprimé d'une boîte à liste, une instruction $MsgSelect (ou $MsgInitialize) est envoyée, accompagnée de la valeur
$Unknown. Du fait que la valeur sélectionnée précédemment n'existe plus, le refus de ce message n'a aucune conséquence.

Exemple

KNOWLEDGEBASE dlglist;
TYPES
FIELDREC IS RECORD
test_list_box: STRING;
 END;
    ROUTINES
EVENT DlgEvent( REF fields: FIELDREC );
PROCEDURE ExampleDialog;
PRIVATE
CONSTANTS
itemList IS { 'nouvel élément 1', 'nouvel élément 2', 'nouvel élément 3' }: LIST OF STRING;
    ROUTINES
(* ******** boîte de dialogue GESTIONNAIRE D'EVENEMENTS ******** *)
EVENT DlgEvent( REF fields: FIELDREC ) IS
VARIABLES
index: INTEGER;
listEntry: STRING;
ACTIONS
     WHEN $Event IS $MsgCreate THEN
DlgListBoxInsert( $Handle, 'test_list_box',
'Valeur initiale' )
ELSWHEN $MsgInitialize THEN
WinMessageBox( $Handle, 'Initialisation du message', $MBYesNo,
'Ancienne valeur = ' & $EventParm( 3, STRING )
& '' 'Nouvelle valeur = '
& $EventParm( 4, STRING ));
     ELSWHEN $MsgSelect THEN
WHEN $FieldName IS 'but_lb_clear' THEN
DlgListBoxClear( $Handle, 'test_list_box' );
ELSWHEN 'but_lb_insert' THEN
DlgListBoxInsert( $Handle, 'test_list_box',
'nouvel élément' );
DlgListBoxInsert( $Handle, 'test_list_box',
itemList );
ELSWHEN 'but_lb_delete' THEN
DlgListBoxDelete( $Handle, 'test_list_box' );
ELSWHEN 'but_lb_update' THEN
DlgFieldValue( $Handle, 'test_list_box', listEntry );
WinEditField( $Desktop, listEntry, 0, 0, 30,
'Nouvelle valeur ?',
$WinAutoPos + $WinBorder + $WinTitle );
DlgListBoxUpdate( $Handle, 'test_list_box',
listEntry );
ELSWHEN 'but_lb_set_index' THEN
WinEditField( $Desktop, index, 0, 0, 30,
'Nouvel index?', $WinAutoPos + $WinBorder
+ $WinTitle );
DlgSetListBoxIndex( $Handle, 'test_list_box', index );
ELSWHEN 'but_lb_index' THEN
WinMessageBox( $Handle, 'Listbox index', $MBOK,
DlgListBoxIndex( $Handle,
'test_list_box' ) );
 END;
 END;
 END;
PROCEDURE ExampleDialog IS
VARIABLES
whdlDialog: WINDOW;
 result: INTEGER;
data: FIELDREC
ACTIONS
result := DlgCreate( $Desktop, whdlDialog, 'dlglist',
DlgEvent, {data});
                                 IF result < 1 THEN
WinMessageBox( $Desktop, 'Erreur', $MBOK + $MBIconError,
'Echec d''ouverture de la boîte de dialogue' & result );
 END;
WinWait( whdlDialog );
 END;

Codes retour

Voir aussi :

------------------------------------------------------------------------

DlgListBoxIndex

Description

Lance une requête concernant l'index de l'élément sélectionné dans une boîte à liste, dans SQLManage ou dans un contrôle de table.

Syntaxe

FUNCTION DlgListBoxIndex(VAL whdlDialog : WINDOW,
VAL fieldName : STRING
                    ): INTEGER;
Remarques concernant les arguments Description du nom de l'argument
whdlDialog Descripteur de fenêtre de la boîte de dialogue contenant le contrôle sur lequel est effectuée l'opération. Si la commande est émise par un gestionnaire d'événements qui contient le contrôle, le paramètre pseudo $Handle peut être utilisé.
fieldName Nom du contrôle contenu dans la boîte de dialogue dirigée par la commande. Ce nom peut être spécifié dans le concepteur d'interface, ou dans l'instruction DEFINE du fichier de définition de boîte de dialogue. L'indication du nom n'impose pas le respect de la distinction majuscules-minuscules.

Exemple

KNOWLEDGEBASE dlglist;
TYPES
FIELDREC IS RECORD
test_list_box: STRING;
 END;
    ROUTINES
EVENT DlgEvent( REF fields: FIELDREC );
PROCEDURE ExampleDialog;
PRIVATE
CONSTANTS
itemList IS { 'nouvel élément 1', 'nouvel élément 2', 'nouvel élément 3' }: LIST OF STRING;
    ROUTINES
(* ******** boîte de dialogue GESTIONNAIRE D'EVENEMENTS ******** *)
EVENT DlgEvent( REF fields: FIELDREC ) IS
VARIABLES
index: INTEGER;
listEntry: STRING;
ACTIONS
     WHEN $Event IS $MsgCreate THEN
DlgListBoxInsert( $Handle, 'test_list_box', 'Init value' );
ELSWHEN $MsgInitialize THEN
WinMessageBox( $Handle, 'Initialisation du message',
$MBYesNo, 'Ancienne valeur' &
$EventParm( 3, STRING ) &
'' 'Nouvelle valeur = ' &
$EventParm( 4, STRING ));
     ELSWHEN $MsgSelect THEN
WHEN $FieldName IS 'but_lb_clear' THEN
DlgListBoxClear( $Handle, 'test_list_box' );
ELSWHEN 'but_lb_insert' THEN
DlgListBoxInsert( $Handle, 'test_list_box', 'nouvel élément' );
DlgListBoxInsert( $Handle, 'test_list_box', itemList );
ELSWHEN 'but_lb_delete' THEN
DlgListBoxDelete( $Handle, 'test_list_box' );
ELSWHEN 'but_lb_update' THEN
DlgFieldValue( $Handle, 'test_list_box',
listEntry );
WinEditField( $Desktop, listEntry, 0, 0, 30,'Nouvelle valeur ?',
$WinAutoPos + $WinBorder + $WinTitle );
DlgListBoxUpdate( $Handle, 'test_list_box', listEntry );
ELSWHEN 'but_lb_set_index' THEN
WinEditField( $Desktop, index, 0, 0, 30, 'Nouvel index ?',
$WinAutoPos + $WinBorder
+ $WinTitle );
DlgSetListBoxIndex( $Handle, 'test_list_box', index );
ELSWHEN 'but_lb_index' THEN
WinMessageBox( $Handle, 'Index de boîte à liste', $MBOK,
DlgListBoxIndex( $Handle, 'test_list_box' ) );
 END;
 END;
 END;
PROCEDURE ExampleDialog IS
VARIABLES
whdlDialog: WINDOW;
 result: INTEGER;
ACTIONS
result := DlgCreate( $Desktop, whdlDialog, 'dlglist',
DlgEvent );
                                 IF result < 1 THEN
WinMessageBox( $Desktop, 'Erreur', $MBOK + $MBIconError,
'Echec d''ouverture de la boîte de dialogue' & result );
 END;
WinWait( whdlDialog );
 END;

Codes retour

Voir aussi :

------------------------------------------------------------------------

DlgListBoxInsert

Description

Insère une valeur ****** a value into any text box, SQLManage, or table control.

Syntaxe

FUNCTION DlgListBoxInsert(VAL whdlDialog: WINDOW,
VAL fieldName: STRING,
VAL newValues: LIST OF ANY): INTEGER;

Remarques concernant les arguments Description du nom de l'argument
whdlDialog Descripteur de fenêtre de la boîte de dialogue contenant le contrôle sur lequel est effectuée l'opération. Si la commande est émise par un gestionnaire d'événements qui contient le contrôle, le paramètre pseudo $Handle peut être utilisé.
fieldName Nom du contrôle contenu dans la boîte de dialogue dirigée par la commande. Ce nom peut être spécifié dans le concepteur d'interface, ou dans l'instruction DEFINE du fichier de définition de boîte de dialogue. L'indication du nom n'impose pas le respect de la distinction majuscules-minuscules.
newValue Valeur ou liste de valeurs à insérer dans la boîte à liste. Chaque élément de la liste est converti sous forme de chaîne, puis inséré dans la boîte à liste. L'insertion commence après l'élément sélectionné. Lorsqu'aucun élément n'est sélectionné, la nouvelle valeur est insérée à la fin. Il est possible d'insérer un attribut relatif à l'ordre de tri. Cet attribut se substitue au point d'insertion.

OS/2 assure la prise en charge du tri par ordre croissant ou décroissant.
Windows prend en charge uniquement l'ordre croissant.
Les ordres de tri ne sont pas pris en charge dans le cas des contrôles de tables.

En effet, dans ces derniers cas, le paramètre peut prendre la forme d'un enregistrement ou d'une liste de chaînes. Les noms de champs d'enregistrement correspondent aux noms de champ des colonnes. Lorsqu'un nom de champ de colonne n'équivaut pas à celui d'un enregistrement, la colonne reste vide.


Exemple

KNOWLEDGEBASE dlglist;
TYPES
FIELDREC IS RECORD
test_list_box: STRING;
 END;
    ROUTINES
EVENT DlgEvent( REF fields: FIELDREC );
PROCEDURE ExampleDialog;
PRIVATE
CONSTANTS
itemList IS { 'nouvel élément 1', 'nouvel élément 2', 'nouvel élément 3' }: LIST OF STRING;
    ROUTINES
(* ******** boîte de dialogue GESTIONNAIRE D'EVENEMENTS ******** *)
EVENT DlgEvent( REF fields: FIELDREC ) IS
VARIABLES
index: INTEGER;
listEntry: STRING;
ACTIONS
     WHEN $Event IS $MsgCreate THEN
DlgListBoxInsert( $Handle, 'test_list_box',
'Valeur initiale' )
ELSWHEN $MsgInitialize THEN
WinMessageBox( $Handle, 'Initialisation du message',
$MBYesNo, 'Ancienne valeur = ' &
$EventParm( 3, STRING ) & ''
'Nouvelle valeur = ' &
$EventParm( 4, STRING ));
     ELSWHEN $MsgSelect THEN
WHEN $FieldName IS 'but_lb_clear' THEN
DlgListBoxClear( $Handle, 'test_list_box' );
ELSWHEN 'but_lb_insert' THEN
DlgListBoxInsert( $Handle, 'test_list_box',
'nouvel élément' );
DlgListBoxInsert( $Handle, 'test_list_box', itemList );
ELSWHEN 'but_lb_delete' THEN
DlgListBoxDelete( $Handle, 'test_list_box' );
ELSWHEN 'but_lb_update' THEN
DlgFieldValue( $Handle, 'test_list_box',
listEntry );
WinEditField( $Desktop, listEntry, 0, 0, 30, 'Nouvelle valeur ?',
$WinAutoPos +
$WinBorder + $WinTitle );
DlgListBoxUpdate( $Handle, 'test_list_box',
listEntry );
ELSWHEN 'but_lb_set_index' THEN
WinEditField( $Desktop, index, 0, 0, 30,
'Nouvel index ?',
$WinAutoPos + $WinBorder +
              $WinTitle);
DlgSetListBoxIndex( $Handle, 'test_list_box',
index );
ELSWHEN 'but_lb_index' THEN
WinMessageBox( $Handle, 'Listbox index', $MBOK,
DlgListBoxIndex( $Handle,
'test_list_box' ) );
 END;
 END;
 END;
PROCEDURE ExampleDialog IS
VARIABLES
whdlDialog: WINDOW;
 result: INTEGER;
ACTIONS
result := DlgCreate( $Desktop, whdlDialog, 'dlglist', DlgEvent );
                                 IF result < 1 THEN
WinMessageBox( $Desktop, 'Erreur', $MBOK + $MBIconError,
'Echec d''ouverture de la boîte de dialogue' & result );
 END;
WinWait( whdlDialog );
 END;

Codes retour

Voir aussi :

------------------------------------------------------------------------

DlgListBoxUpdate

Description

Met à jour la valeur sélectionnée pour un contrôle SQLManage ou un contrôle de table.

Syntaxe

FUNCTION DlgListBoxUpdate(VAL whdlDialog: WINDOW,
VAL fieldName: STRING, VAL
updateValue: ANY): INTEGER;
Remarques concernant les arguments Description du nom de l'argument
whdlDialog Descripteur de fenêtre de la boîte de dialogue contenant le contrôle sur lequel est effectuée l'opération. Si la commande est émise par un gestionnaire d'événements qui contient le contrôle, le paramètre pseudo $Handle peut être utilisé.
fieldName Nom du contrôle contenu dans la boîte de dialogue dirigée par la commande. Ce nom peut être spécifié dans le concepteur d'interface, ou dans l'instruction DEFINE du fichier de définition de boîte de dialogue. L'indication du nom n'impose pas le respect de la distinction majuscules-minuscules.
updateValue L'enregistrement ou la liste de chaînes contenu(e) dans un contrôle SQLManage ou un contrôle de table est remplacée par la valeur de ce paramètre. Les enregistrements de champs correspondent aux noms de colonne. Toute colonne qui ne correspond pas à un champ d'enregistrement est laissée vide. Si aucun enregistrement n'est sélectionné, une erreur est renvoyée pour indiquer que le champ est introuvable.

Exemple

KNOWLEDGEBASE dlglist;
TYPES
FIELDREC IS RECORD
test_list_box: STRING;
 END;
    ROUTINES
EVENT DlgEvent( REF fields: FIELDREC );
PROCEDURE ExampleDialog;
PRIVATE
CONSTANTS
itemList IS { 'nouvel élément 1', 'nouvel élément 2', 'nouvel élément 3' }: LIST OF STRING;
    ROUTINES
(* ******** boîte de dialogue GESTIONNAIRE D'EVENEMENTS ******** *)
EVENT DlgEvent( REF fields: FIELDREC ) IS
VARIABLES
index: INTEGER;
listEntry: STRING;
ACTIONS
     WHEN $Event IS $MsgCreate THEN
DlgListBoxInsert( $Handle, 'test_list_box', 'Valeur initiale' );
ELSWHEN $MsgInitialize THEN
WinMessageBox( $Handle, 'Initialisation du message', $MBYesNo,
'Ancienne valeur = ' & $EventParm( 3, STRING ) & ''
'Nouvelle valeur = ' & $EventParm( 4, STRING ));
     ELSWHEN $MsgSelect THEN
WHEN $FieldName IS 'but_lb_clear' THEN
DlgListBoxClear( $Handle, 'test_list_box' );
ELSWHEN 'but_lb_insert' THEN
DlgListBoxInsert( $Handle, 'test_list_box',
'nouvel élément' );
DlgListBoxInsert( $Handle, 'test_list_box', itemList );
ELSWHEN 'but_lb_delete' THEN
DlgListBoxDelete( $Handle, 'test_list_box' );
ELSWHEN 'but_lb_update' THEN
DlgFieldValue( $Handle, 'test_list_box', listEntry );
WinEditField( $Desktop, listEntry, 0, 0, 30,
'Nouvelle valeur ?',
$WinAutoPos + $WinBorder + $WinTitle );
DlgListBoxUpdate( $Handle, 'test_list_box',
listEntry );
ELSWHEN 'but_lb_set_index' THEN
WinEditField( $Desktop, index, 0, 0, 30,
'Nouvel index ?', $WinAutoPos
+ $WinBorder + $WinTitle );
DlgSetListBoxIndex( $Handle, 'test_list_box',
index );
ELSWHEN 'but_lb_index' THEN
WinMessageBox( $Handle, 'Index de boîte à liste', $MBOK,
DlgListBoxIndex( $Handle,
'test_list_box' ) );
 END;
 END;
 END;
PROCEDURE ExampleDialog IS
VARIABLES
whdlDialog: WINDOW;
 result: INTEGER;
ACTIONS
result := DlgCreate( $Desktop, whdlDialog, 'dlglist',
DlgEvent );
                                 IF result < 1 THEN
WinMessageBox( $Desktop, 'Erreur', $MBOK + $MBIconError,
'Echec d''ouverture de la boîte de dialogue' & result );
 END;
WinWait( whdlDialog box );
 END;

Codes retour

Voir aussi :

------------------------------------------------------------------------

DlgLoadSubForm

Description

Effectue le chargement à partir d'un fichier .df vers un contrôle de sous-formulaire existant. (Tout formulaire existant est remplacé.)

Syntaxe

FUNCTION DlgLoadSubForm( VAL dialog : WINDOW,
VAL subform : STRING,
VAL resource : STRING, ) : INTEGER;
Remarques concernant les arguments Description du nom de l'argument
subform Nom du contrôle de sous-formulaire dans lequel ne nouveau formulaire est chargé.
resource Référence à la chaîne de ressource au format standard.


Exemple

KNOWLEDGEBASE dlgsub;
    ROUTINES
PROCEDURE Main;
(* ***** PERSONNEL ***** *)
PRIVATE
VARIABLES
(* Variable globale contenant le descripteur de fenêtre de la boîte de dialogue *) mainWindow : WINDOW;
    ROUTINES
PROCEDURE Main IS
VARIABLES
ACTIONS
DlgCreate($Desktop, mainWindow, 'dlgsub[FORM_MAIN]', $NullHandler);
(* Charge le formulaire FORM_NEW depuis le fichier dlgsub.df vers le contrôle du sous-formulaire *)
(* CONTROL_SUBFORM situé sur le formulaire en cours *)
DlgLoadSubForm(mainWindow, 'CONTROL_SUBFORM', 'dlgsub[FORM_NEW]');
           WinWait(mainWindow);
 END;

Codes retour

Voir aussi :

------------------------------------------------------------------------

DlgQueryColumnNames

Description

Lance une requête sur les colonnes déclarées d'un contrôle SQLManage ou d'un contrôle de table.

Syntaxe

FUNCTION DlgQueryColumnNames(VAL whdlDialog: WINDOW,
VAL fieldName: STRING,
REF columnNames LIST OF STRING): INTEGER;
Remarques concernant les arguments Description du nom de l'argument
whdlDialog Descripteur de fenêtre de la boîte de dialogue contenant le contrôle sur lequel est effectuée l'opération. Si la commande est émise par un gestionnaire d'événements qui contient le contrôle, le paramètre pseudo $Handle peut être utilisé.
fieldName Nom du contrôle contenu dans la boîte de dialogue dirigée par la commande. Ce nom peut être spécifié dans le concepteur d'interface, ou dans l'instruction DEFINE du fichier de définition de boîte de dialogue. L'indication du nom n'impose pas le respect de la distinction majuscules-minuscules.
columnName Liste de chaînes dans laquelle sont renvoyés les noms de colonnes déclarées pour le contrôle SQLManage ou le contrôle de table. Les noms de colonne sont renvoyés dans le même ordre que celui où celles-ci ont été déclarées.

Remarques

Comme indiqué dans le présent exemple, WinWriteLN écrit de manière successive la liste intégrale des chaînes.

Exemple

KNOWLEDGEBASE DlgCols;
TYPES
DLGDATA IS RECORD
sampleField: INTEGER;
 END;
SQLDATA IS RECORD
firstName: STRING;
lastName: STRING;
 END;
(* ******* PERSONNEL *********)
PRIVATE
    ROUTINES
(* ******** boîte de dialogue GESTIONNAIRE D'EVENEMENTS ******** *)
EVENT DlgEvent( REF fields: DLGDATA ) IS
VARIABLES
columnNames: LIST OF STRING;
whdl: WINDOW;
ACTIONS
(* Tous les messages de boîtes de dialogue comportent les
paramètres pseudo $FieldID 
et $FieldName *)
     WHEN $Event IS $MsgCreate THEN
DlgQueryColumnNames( $Handle, 'sql_manage_field',
columnNames );
 WinCreateScrollWindow( $Desktop, whdl, $NullHandler,
0, 0, 30, 12,
Column Names', $TimesRoman, 12,
$WinBorder + $WinTitle +
WinResize + $WinMinMax +
$WinHScroll + $WinVScroll
+ $WinSysMenu + $WinAutoPos );
WinWriteLN( whdl, columnNames );
 END;
 END;
PROCEDURE DialogExample IS
VARIABLES
fields: DLGDATA;
ACTIONS
DlgBox( $Desktop,'example[dialog1]', DlgEvent{ fields },fields );
 END;

Codes retour

Voir aussi :

DlgSQLSelect

------------------------------------------------------------------------

DlgQueryItemCount

Description

Lance une requête sur le nombre d'éléments contenus dans une boîte à liste, une boîte de dialogue mixte, un contrôle de table ou dans SQLManage.

Syntaxe

FUNCTION DlgQueryItemCount (VAL whdlDialog: WINDOW,
VAL fieldName: STRING,
REF itemCount: INTEGER): Integer;
Remarques concernant les arguments Description du nom de l'argument
whdlDialog Descripteur de fenêtre d'une boîte de dialogue
fieldName Nom de champ du contrôle sur lequel est lancée la requête relative au nombre d'éléments.
itemCount Une fois l'appel de fonction effectué, itemCount conserve le nombre d'éléments contenus dans le contrôle.

Remarques

Cette fonction ne peut être activée que sur des contrôles contenant des listes de données (boîte à liste, boîte de dialogue mixte, contrôle de table ou SQLManage)

Exemple

KNOWLEDGEBASE QueryCnt;
    ROUTINES
PROCEDURE Main;
PRIVATE
    ROUTINES
PROCEDURE Main IS
VARIABLES
 Handle : WINDOW;
MyList : LIST OF STRING;
Count : INTEGER;
ACTIONS
DlgCreate($Desktop,
                       Handle,
'querycnt[sample]',
$NullHandler);
ListInsert(MyList, 'Elément n° 1');
DlgListBoxInsert(Handle, 'list_box', MyList);
DlgQueryItemCount(Handle, 'list_box', Count);
WinMessageBox(Handle, 'DlgQueryItemCount', $MBOK,
Comptage & ' élément(s).');
 WinWait(Handle);
 END;

Codes retour

Voir aussi :

------------------------------------------------------------------------

DlgQueryRowData

Description

Lance une requête sur le contenu d'une ligne incluse dans une boîte à liste, une boîte de dialogue mixte ou une table.

Syntaxe

FUNCTION DlgQueryRowData (VAL whdlDialog: WINDOW,
VAL fieldName: STRING,
VAL index: INTEGER,
REF rowData: ANY ) : INTEGER
Remarques concernant les arguments Description du nom de l'argument
whdlDialog Descripteur de fenêtre de la boîte de dialogue contenant le contrôle sur lequel est effectuée l'opération. Si la commande est émise par un gestionnaire d'événements qui contient le contrôle, le paramètre pseudo $Handle peut être utilisé.
fieldName Nom du contrôle contenu dans la boîte de dialogue dirigée par la commande.
index Index de la ligne dont les données doivent être connues.
rowData Conserve la valeur de contrôle demandée. Dans le cas des contrôles de type LISTBOX et COMBOBOX, il convient que ce paramètre adopte le type STRING. Dans le cas des contrôles de table et des contrôles SQLManage, il convient que ce paramètre soit du type RECORD.

Remarques

Cette fonction ne peut être activée que sur des contrôles contenant des listes de données (boîte à liste, boîte de dialogue mixte ou table).

Exemple

KNOWLEDGEBASE MCLB;
TYPES
TABLEREC IS RECORD
System : STRING;
Component : STRING;
Item : STRING;
Module : STRING;
 END;
EVENT DlgEvent(REF form : FORMREC) IS
VARIABLES
rowdata : TABLEREC;
 retval : INTEGER;
ACTIONS
WHEN $Event IS $MsgSelect THEN
IF $Fieldname = 'GetRow' THEN
-- Extraire les données de la ligne numéro 5
retval := DlgQueryRowData($handle, 'TABLE1', 5, rowda ta);
IF (retval = 1) THEN
WinMessageBox($handle, 'Données de la ligne&', $MBOK,
'La valeur système pour la ligne 5 est ' &
rowdata.System);
 END;
 END;
 END;
 END;

Codes retour

Voir aussi :

------------------------------------------------------------------------

DlgSelectField

Description

Déplace le curseur vers un contrôle spécifié.

Syntaxe

FUNCTION DlgSelectField(VAL whdlDialog: WINDOW,
VAL fieldName: STRING): INTEGER;
Remarques concernant les arguments Description du nom de l'argument
whdlDialog Descripteur de fenêtre de la boîte de dialogue contenant le contrôle sur lequel est effectuée l'opération. Si la commande est émise par un gestionnaire d'événements qui contient le contrôle, le paramètre pseudo $Handle peut être utilisé.
fieldName Nom du contrôle contenu dans la boîte de dialogue dirigée par la commande. Ce nom peut être spécifié dans le concepteur d'interface, ou dans l'instruction DEFINE du fichier de définition de boîte de dialogue. L'indication du nom n'impose pas le respect de la distinction majuscules-minuscules.

Remarques

Lorsque l'utilisateur déplace le curseur vers un nouveau contrôle, des instructions $MsgExitField et $MsgEnterField sont générées. Le gestionnaire d'événements
de la boîte de dialogue peut refuser l'un de ces messages et provoquer l'échec de l'opération.

Exemple

KNOWLEDGEBASE DlgSLCT;
TYPES
DLGDATA IS RECORD
sampleField: INTEGER;
 END;
(* ******* PERSONNEL *********)
PRIVATE
    ROUTINES
(* ******** boîte de dialogue GESTIONNAIRE D'EVENEMENTS ******** *)
EVENT DlgEvent( REF fields: DLGDATA ) IS
ACTIONS
(* Tous les messages de boîtes de dialogue comportent les
paramètres pseudo $FieldID et $FieldName *)
     WHEN $Event IS $MsgCreate THEN
(* Sélectionnez le champ initial pour le curseur *)
DlgSelectField( $Handle, 'startField' );
 END;
 END;
PROCEDURE DialogExample IS
VARIABLES
fields: DLGDATA;
ACTIONS
DlgBox( $Desktop,'example[dialog1]', DlgEvent{ fields },fields );
 END;

Codes retour

------------------------------------------------------------------------

DlgSetButtonText

Description

Change le libellé d'un bouton.

Syntaxe

FUNCTION DlgSetButtonText(VAL whdlDialog: WINDOW,
VAL fieldName: STRING,
VAL ButtonText: STRING): INTEGER;
Remarques concernant les arguments Description du nom de l'argument
whdlDialog Descripteur de fenêtre de la boîte de dialogue contenant le contrôle sur lequel est effectuée l'opération. Si la commande est émise par un gestionnaire d'événements qui contient le contrôle, le paramètre pseudo $Handle peut être utilisé.
fieldName Nom du contrôle contenu dans la boîte de dialogue dirigée par la commande. Ce nom peut être spécifié dans le concepteur d'interface, ou dans l'instruction DEFINE du fichier de définition de boîte de dialogue. L'indication du nom n'impose pas le respect de la distinction majuscules-minuscules.
ButtonText Nouveau libellé du bouton. Le contrôle doit être matérialisé par un bouton.


Exemple

KNOWLEDGEBASE DlgButton;
TYPES
DlgData IS RECORD
allowEdit: BOOLEAN;
sampleField: INTEGER;
 END;
    ROUTINES
PROCEDURE DialogExample;
PRIVATE
    ROUTINES
EVENT DlgEvent(REF fields: DlgData) IS
ACTIONS
     WHEN $Event IS $MsgCreate THEN
IF NOT fields.allowEdit THEN
DlgSetButtonText($Handle,'editButton','Afficher');
(* SAMPLEFIELD doit être du type MultiLineEditor, champ de saisie ou boîte de dialogue mixte *)
DlgSetReadonly($Handle,'SAMPLEFIELD',TRUE);
 END;
 END;
END (* Dlg Event *);
PROCEDURE DialogExample IS
VARIABLES
fields: DlgData;
ACTIONS
fields.allowEdit := FALSE;
DlgBox ($Desktop,'example[dialog1]',
DlgEvent{fields},fields);
END (* Exemple de boîte de dialogue *);

Codes retour

Voir aussi :

------------------------------------------------------------------------

DlgSetEnabled

Description

Définit l'état activé ou désactivé d'un contrôle.

Syntaxe

FUNCTION DlgSetEnabled(VAL whdlDialog: WINDOW,
VAL fieldNames: LIST OF STRING [,
VAL newState: BOOLEAN ]): INTEGER;
Remarques concernant les arguments Description du nom de l'argument
whdlDialog Descripteur de fenêtre de la boîte de dialogue contenant le contrôle sur lequel est effectuée l'opération. Si la commande est émise par un gestionnaire d'événements qui contient le contrôle, le paramètre pseudo $Handle peut être utilisé.
fieldName Nom du contrôle contenu dans la boîte de dialogue dirigée par la commande. Ce nom peut être spécifié dans le concepteur d'interface, ou dans l'instruction DEFINE du fichier de définition de boîte de dialogue. L'indication du nom n'impose pas le respect de la distinction majuscules-minuscules. L'exécution de la commande a lieu pour chaque contrôle dont le nom figure dans la liste. La valeur correspondant au nombre de contrôles traités est renvoyée. La fin du traitement a lieu lorsqu'une erreur est enregistrée. La variable de système
$DlgError est fixée sur le code de l'erreur. Si une erreur survient lors du traitement du premier contrôle, le code correspondant est renvoyé par l'instruction.
newState Nouveau statut du contrôle. Ce paramètre est facultatif. Lorsqu'il est omis, la valeur TRUE est considérée par défaut.

Exemple

KNOWLEDGEBASE dlg_set;
TYPES
FIELDREC IS RECORD
field_entry: STRING;
field_radio: STRING;
field_slide: STRING;
field_list: STRING;
field_button: STRING;
field_check_box: STRING;
field_mle: STRING;
field_combo: STRING;
field_pattern: STRING;
test_list_box: STRING;
test_combo_box: STRING;
 END;
    ROUTINES
EVENT DlgEvent( REF fields: FIELDREC );
PROCEDURE ExampleDialog;
PRIVATE
CONSTANTS
fieldList IS { 'attrib_field_entry',
'attrib_field_radio',
'attrib_field_slide',
'attrib_field_list',
'attrib_field_button',
'attrib_field_check_box',
'attrib_field_mle',
'attrib_field_combo',
'attrib_field_pattern'
   }: LIST OF STRING;
textFieldList IS { 'attrib_field_entry',
'attrib_field_mle',
'attrib_field_combo',
'attrib_field_pattern'
   }: LIST OF STRING;
    ROUTINES
(* ******** boîte de dialogue GESTIONNAIRE D'EVENEMENTS ******** *)
EVENT DlgEvent( REF fields: FIELDREC ) IS
ACTIONS
WHEN $Event IS $MsgSelect THEN
WHEN $FieldName IS 'but_disabled_on' THEN
DlgSetEnabled( $Handle, fieldList, FALSE );
ELSWHEN 'but_disabled_off' THEN
DlgSetEnabled( $Handle, fieldList, TRUE );
ELSWHEN 'but_hidden_on' THEN
DlgSetHidden( $Handle, fieldList, TRUE );
ELSWHEN 'but_hidden_off' THEN
DlgSetHidden( $Handle, fieldList, FALSE );
ELSWHEN 'but_mandatory_on' THEN
DlgSetMandatory( $Handle, textFieldList, TRUE );
ELSWHEN 'but_mandatory_off' THEN
DlgSetMandatory( $Handle, textFieldList, FALSE );
ELSWHEN 'but_read_only_on' THEN
DlgSetReadOnly( $Handle, textFieldList, TRUE );
ELSWHEN 'but_read_only_off' THEN
DlgSetReadOnly( $Handle, textFieldList, FALSE );
 END;
 END;
 END;
PROCEDURE ExampleDialog IS
VARIABLES
whdlDialog: WINDOW;
 result: INTEGER;
ACTIONS
result := DlgCreate( $Desktop, whdlDialog, 'dlg_set',
DlgEvent );
                                 IF result < 1 THEN
WinMessageBox( $Desktop, 'Erreur', $mbok +
                              $MBIconError,
'Echec d''ouverture de la boîte de dialogue' & result );
 END;
WinWait( whdlDialog box );
 END;

Codes retour

Voir aussi :

------------------------------------------------------------------------

DlgSetFieldValue

Description

Détermine la valeur d'un contrôle de boîte de dialogue et de toute autre donnée d'instance associée.

Syntaxe

FUNCTION DlgSetFieldValue(VAL whdlDialog: WINDOW,
VAL fieldName: STRING,
VAL newValue: ANY): INTEGER;
Remarques concernant les arguments Description du nom de l'argument
whdlDialog Descripteur de fenêtre de la boîte de dialogue contenant le contrôle sur lequel est effectuée l'opération. Si la commande est émise par un gestionnaire d'événements qui contient le contrôle, le paramètre pseudo $Handle peut être utilisé.
fieldName Nom du contrôle contenu dans la boîte de dialogue dirigée par la commande. Ce nom peut être spécifié dans le concepteur d'interface, ou dans l'instruction DEFINE du fichier de définition de boîte de dialogue. L'indication du nom n'impose pas le respect de la distinction majuscules-minuscules.
newValue Le contrôle concerné est défini comme ayant la valeur du paramètre :

Lorsque le contrôle est matérialisé par une case à cocher, un bouton d'option ou un curseur de défilement, la nouvelle valeur est convertie en nombre entier et devient égale à la valeur résultante. En cas d'échec de la conversion, le résultat est normalement égal à zéro.

Dans le cas des cases à cocher, la valeur zéro ne subit aucune vérification. Toutes les autres valeurs, en revanche, sont vérifiées.

Dans le cas des autres types de contrôles, la valeur est convertie sous forme de chaîne.

Dans le cas des zones de texte, boîtes de dialogue mixtes, boîtes à liste et des messages, le contrôle est défini sur la base de la nouvelle chaîne indiquée.

En ce qui concerne les boîtes à liste, la recherche de la liste consiste à repérer une correspondance avec une chaîne. Lorsque cette correspondance a été trouvée, elle est sélectionnée.

Les contrôles SQLManage et de table sont ignorés. Lorsque la mise à jour d'un contrôle aboutit et qu'un champ des données d'instance est relié à un contrôle de boîte de dialogue, une mise à jour a lieu sur les données d'instance. Lorsqu'une valeur est définie, une sélection de message est effectuée pour le champ concerné.

Remarques

La définition d'une valeur de contrôle génère une instruction $MsgSelect. Si la valeur du contrôle est modifiée, l'instruction générée est $MsgInitialize.
$MsgSelect peut être refusé par le gestionnaire d'événements de la boîte de dialogue.

Troncature des espaces

Les espaces sont tronqués dans un contrôle de boîte de dialogue lorsque tous les espaces du contrôle sont vides. Cette situation peut se produire si
l'utilisateur saisit une chaîne d'espaces vides dans le contrôle, ou que le fichier de définition de boîte de dialogue contient
une chaîne vide pour le contrôle. Dans les deux cas, si la valeur du contrôle vide est appelée, c'est la valeur $Unknown qui est renvoyée.

Exemple

KNOWLEDGEBASE DlgSet_f;
TYPES
DLGDATA IS RECORD
sampleField: INTEGER;
 END;
(* ******* PERSONNEL *********)
PRIVATE
    ROUTINES
(* ******** boîte de dialogue GESTIONNAIRE D'EVENEMENTS ******** *)
EVENT DlgEvent( REF fields: DLGDATA ) IS
ACTIONS
(* Tous les messages de boîtes de dialogue comportent les
paramètres pseudo $FieldID et $FieldName *)
     WHEN $Event IS $MsgCreate THEN
(* Sélectionnez le champ initial pour le curseur *)
DlgSetFieldValue( $Handle, 'messageField',
'Nouveau texte' );
 END;
 END;
PROCEDURE DialogExample IS
VARIABLES
fields: DLGDATA;
ACTIONS
DlgBox( $Desktop,'example[dialog1]', DlgEvent{ fields },fields );
 END;

Codes retour

Voir aussi :

DlgFieldValue

------------------------------------------------------------------------

DlgSetHidden

Description

Détermine si un contrôle se trouve à l'état visible ou caché.

Syntaxe

FUNCTION DlgSetHidden(VAL whdlDialog: WINDOW,
VAL fieldNames: LIST OF STRING [,
VAL newState: BOOLEAN ]): INTEGER;
Remarques concernant les arguments Description du nom de l'argument
whdlDialog Descripteur de fenêtre de la boîte de dialogue contenant le contrôle sur lequel est effectuée l'opération. Si la commande est émise par un gestionnaire d'événements qui contient le contrôle, le paramètre pseudo $Handle peut être utilisé.
fieldName Nom du contrôle contenu dans la boîte de dialogue dirigée par la commande. Ce nom peut être spécifié dans le concepteur d'interface, ou dans l'instruction DEFINE du fichier de définition de boîte de dialogue. L'indication du nom n'impose pas le respect de la distinction majuscules-minuscules. L'exécution de la commande a lieu pour chaque contrôle dont le nom figure dans la liste. La valeur correspondant au nombre de contrôles traités est renvoyée. La fin du traitement a lieu lorsqu'une erreur est enregistrée. La variable de système $DlgError est fixée sur le code de l'erreur. Si une erreur survient lors du traitement du premier contrôle, le code correspondant est renvoyé par l'instruction.
newState Nouveau statut du contrôle. Ce paramètre est facultatif. Lorsqu'il est omis, la valeur TRUE est considérée par défaut.


Exemple

KNOWLEDGEBASE dlg_set;
TYPES
FIELDREC IS RECORD
field_entry: STRING;
field_radio: STRING;
field_slide: STRING;
field_list: STRING;
field_button: STRING;
field_check_box: STRING;
field_mle: STRING;
field_combo: STRING;
field_pattern: STRING;
test_list_box: STRING;
test_combo_box: STRING;
 END;
    ROUTINES
EVENT DlgEvent( REF fields: FIELDREC );
PROCEDURE ExampleDialog;
PRIVATE
CONSTANTS
fieldList IS
{ 'attrib_field_entry',
'attrib_field_radio',
'attrib_field_slide',
'attrib_field_list',
'attrib_field_button',
'attrib_field_check_box',
'attrib_field_mle',
'attrib_field_combo',
'attrib_field_pattern'
   }: LIST OF STRING;
textFieldList IS { 'attrib_field_entry',
'attrib_field_mle',
'attrib_field_combo',
'attrib_field_pattern'
   }: LIST OF STRING;
    ROUTINES
(* ******** boîte de dialogue GESTIONNAIRE D'EVENEMENTS ******** *)
EVENT DlgEvent( REF fields: FIELDREC ) IS
ACTIONS
WHEN $Event IS $MsgSelect THEN
WHEN $FieldName IS 'but_disabled_on' THEN
DlgSetEnabled( $Handle, fieldList, FALSE );
ELSWHEN 'but_disabled_off' THEN
DlgSetEnabled( $Handle, fieldList, TRUE );
ELSWHEN 'but_hidden_on' THEN
DlgSetHidden( $Handle, fieldList, TRUE );
ELSWHEN 'but_hidden_off' THEN
DlgSetHidden( $Handle, fieldList, FALSE );
ELSWHEN 'but_mandatory_on' THEN
DlgSetMandatory( $Handle, textFieldList, TRUE );
ELSWHEN 'but_mandatory_off' THEN
DlgSetMandatory( $Handle, textFieldList, FALSE );
ELSWHEN 'but_read_only_on' THEN
DlgSetReadOnly( $Handle, textFieldList, TRUE );
ELSWHEN 'but_read_only_off' THEN
DlgSetReadOnly( $Handle, textFieldList, FALSE );
 END;
 END;
 END;
PROCEDURE ExampleDialog IS
VARIABLES
whdlDialog: WINDOW;
 result: INTEGER;
ACTIONS
result := DlgCreate( $Desktop, whdlDialog, 'dlg_set',
DlgEvent );
                                 IF result < 1 THEN
                                 WinMessageBox( $Desktop, 'Erreur', $mbok + $MBIconError,
'Echec d''ouverture de la boîte de dialogue' & result );
 END;
WinWait( whdlDialog );
 END;

Codes retour

Voir aussi :

------------------------------------------------------------------------

DlgSetListBoxIndex

Description

Sélectionne un ou plusieurs éléments dans une boîte à liste ou dans un contrôle de table, en considérant le ou les indices fournis par ceux-ci.

Syntaxe

FUNCTION DlgSetListBoxIndex(VAL whdlDialog: WINDOW,
VAL fieldName: STRING,
VAL newIndex:INTEGER | INTEGER
Remarques concernant les arguments Description du nom de l'argument
whdlDialog Descripteur de fenêtre de la boîte de dialogue contenant le contrôle sur lequel est effectuée l'opération. Si la commande est émise par un gestionnaire d'événements qui contient le contrôle, le paramètre pseudo $Handle peut être utilisé.
fieldName Nom du contrôle contenu dans la boîte de dialogue dirigée par la commande. Ce nom peut être spécifié dans le concepteur d'interface, ou dans l'instruction DEFINE du fichier de définition de boîte de dialogue. L'indication du nom n'impose pas le respect de la distinction majuscules-minuscules.
newIndex Index basé sur 1 du premier caractère à sélectionner. La valeur 0 est renvoyée si l'index n'est pas compris dans la plage de valeurs admise. Tous les éléments de la liste sont sélectionnés lorsqu'une liste de valeurs entières est indiquée, et dans le cas où le contrôle permet les sélections multiples.


Remarques

L'attribution d'une nouvelle valeur dans une boîte à liste déclenche l'émission d'une fonction $MsgSelect (ou $MsgInitialize). L'envoi du message a lieu même lorsque
la valeur transmise au nouvel index est identique à celle de l'ancien index.

Remarque : Si la valeur attribuée à l'index est 0, tous les éléments sont dé-sélectionnés dans une liste standard, mais pas dans un contrôle de table.

Exemple

DlgSetListBoxIndex($Handle,'USER_LIST',5);

Codes retour

Voir aussi :

------------------------------------------------------------------------

DlgSetMandatory

Description

Détermine le caractère obligatoire de l'état d'un contrôle.

Syntaxe

FUNCTION DlgSetMandatory(VAL whdlDialog: WINDOW,
VAL fieldNames: LIST OF STRING,
                           VAL newState: BOOLEAN): INTEGER;
Remarques concernant les arguments Description du nom de l'argument
whdlDialog Descripteur de fenêtre de la boîte de dialogue contenant le contrôle sur lequel est effectuée l'opération. Si la commande est émise par un gestionnaire d'événements qui contient le contrôle, le paramètre pseudo $Handle peut être utilisé.
fieldName Nom du contrôle contenu dans la boîte de dialogue dirigée par la commande. Ce nom peut être spécifié dans le concepteur d'interface, ou dans l'instruction DEFINE du fichier de définition de boîte de dialogue. L'indication du nom n'impose pas le respect de la distinction majuscules-minuscules. L'exécution de la commande a lieu pour chaque contrôle dont le nom figure dans la liste. La valeur correspondant au nombre de contrôles traités est renvoyée. La fin du traitement a lieu lorsqu'une erreur est enregistrée. La variable de système $DlgError est fixée sur le code de l'erreur. Si une erreur survient lors du traitement du premier contrôle, le code correspondant est renvoyé par l'instruction.
newState Nouveau statut du contrôle. Ce paramètre est facultatif. Lorsqu'il est omis, la valeur TRUE est considérée par défaut.


Remarques

Pour modifier l'état obligatoire d'un contrôle de boîte de dialogue, vous pouvez faire appel à la fonction DlgSetMandatory. Si par exemple un contrôle
n'est pas obligatoire mais est sujet à des circonstances particulières, vous pouvez utiliser l'instruction DlgSetMandatory ($Handle,'THAT_FIELD',TRUE);
dans le gestionnaire d'événements de la boîte de dialogue. De cette manière, le contrôle revêt un caractère obligatoire. Le système de boîtes de dialogue de la boîte à outils du développeur de Tivoli Service Desk
ne permet pas de valider une boîte de dialogue dont les champs obligatoires ne sont pas renseignés. Dans de tels cas, un message d'erreur
s'affiche et le curseur est placé sur le premier contrôle obligatoire non renseigné.

Exemple

DlgSetMandatory ($Handle,'SOCIAL_SECURITY_NUMBER',TRUE);

Codes retour

Voir aussi :

------------------------------------------------------------------------

DlgSetReadOnly

Description

Définit l'état selon lequel un contrôle de boîte de dialogue reste en lecture seule.

Syntaxe

FUNCTION DlgSetReadOnly(VAL whdlDialog: WINDOW, VAL
fieldNames: LIST OF STRING [,
VAL newState: BOOLEAN ]): INTEGER;
Remarques concernant les arguments Description du nom de l'argument
whdlDialog Descripteur de fenêtre de la boîte de dialogue contenant le contrôle sur lequel est effectuée l'opération. Si la commande est émise par un gestionnaire d'événements qui contient le contrôle, le paramètre pseudo $Handle peut être utilisé.
fieldName Nom du contrôle contenu dans la boîte de dialogue dirigée par la commande. Ce nom peut être spécifié dans le concepteur d'interface, ou dans l'instruction DEFINE du fichier de définition de boîte de dialogue. L'indication du nom n'impose pas le respect de la distinction majuscules-minuscules. L'exécution de la commande a lieu pour chaque contrôle dont le nom figure dans la liste. La valeur correspondant au nombre de contrôles traités est renvoyée. La fin du traitement a lieu lorsqu'une erreur est enregistrée. La variable de système $DlgError est fixée sur le code de l'erreur. Si une erreur survient lors du traitement du premier contrôle, le code correspondant est renvoyé par l'instruction.
newState Nouveau statut du contrôle. Ce paramètre est facultatif. Lorsqu'il est omis, la valeur TRUE est considérée par défaut.


Remarques

Pour modifier l'état de mise en lecture seule d'un contrôle de boîte de dialogue, vous pouvez faire appel à la fonction DlgSetReadOnly. Vous pouvez par exemple
attribuer à un contrôle l'attribut de lecture seule lorsque l'utilisateur courant ne possède pas les droits nécessaires pour modifier la valeur de ce contrôle.

Remarque : Les types de champs pouvant être affectés de l'attribut de lecture seule sont : les boîtes à liste, les zones de texte et les boîtes de dialogue mixtes.

Exemple

KNOWLEDGEBASE Dlg_But;
TYPES
DlgData IS RECORD
allowEdit: BOOLEAN;
sampleField: INTEGER;
 END;
    ROUTINES
PROCEDURE DialogExample;
PRIVATE
    ROUTINES
EVENT DlgEvent(REF fields: DlgData) IS
ACTIONS
     WHEN $Event IS $MsgCreate THEN
IF NOT fields.allowEdit THEN
DlgSetButtonText($Handle,'editButton','Afficher');
(* SAMPLEFIELD doit être du type MLE, champ de saisie ou
boîte de dialogue mixte *)
DlgSetReadonly($Handle,'SAMPLEFIELD',TRUE);
 END;
 END;
END (* Dlg Event *);
PROCEDURE DialogExample IS
VARIABLES
fields: DlgData;
ACTIONS
fields.allowEdit := FALSE;
DlgBox ($Desktop,'example[dialog1]',
DlgEvent{fields},fields);
END (* Exemple de boîte de dialogue *);

Codes retour

Voir aussi :

------------------------------------------------------------------------

DlgSQLSelect

Description

Lance une instruction SQL Select et alimente SQLManage avec la table résultante.

Syntaxe

FUNCTION DlgSqlSelect(VAL whdlDialog: WINDOW,
VAL fieldName: STRING,
VAL selectString: STRING, VAL
StripHyperlinks: BOOLEAN): INTEGER;
Remarques concernant les arguments Description du nom de l'argument
whdlDialog Descripteur de fenêtre de la boîte de dialogue contenant le contrôle sur lequel est effectuée l'opération. Si la commande est émise par un gestionnaire d'événements qui contient le contrôle, le paramètre pseudo $Handle peut être utilisé.
fieldName Nom du contrôle contenu dans la boîte de dialogue dirigée par la commande. Ce nom peut être spécifié dans le concepteur d'interface, ou dans l'instruction DEFINE du fichier de définition de boîte de dialogue. L'indication du nom n'impose pas le respect de la distinction majuscules-minuscules. Le contrôle doit être du type SQLManage.
selectString Le paramètre doit correspondre à une instruction SQL Select correctement formatée. L'instruction SQL Select est transmise au gestionnaire de base de données SQL. Si Select aboutit, les données SQLManage sont effacées et tous les enregistrements issus de la sélection sont ensuite insérés dans le champ.
StringHyperlinks Réduit une chaîne hypertexte à un simple nom de bouton indiqué entre parenthèses. Tout texte situé avant ou après la chaîne hypertexte demeure inchangé.
UseHypertextFilter La documentation relative à DlgSqlSelect fournit des renseignements sur trois variables d'entrée seulement. Toutefois, les différentes utilisations de cette commande dans l'application EA indiquent qu'il existe 4 variables. Cette quatrième variable est de type booléen. Une documentation adéquate devra être rédigée pour préciser la nature et l'utilisation de cette variable.


Remarques

En environnement OS/2, SQLManage peut contenir jusqu'à 65 535 enregistrements. Sous Windows, SQLManage contient le nombre d'enregistrements suivant :

* 64 ko de données par ligne

* 256 octets par colonne et par ligne

* 256 colonnes par ligne.

Si l'instruction DlgSQLSelect génère une erreur SQL, cette dernière est renvoyée.

Exemple

KNOWLEDGEBASE DlgSQL;
TYPES
DLGDATA IS RECORD
sampleField: INTEGER;
 END;
(* ******* PERSONNEL ******** *)
PRIVATE
    ROUTINES
(* ******** boîte de dialogue GESTIONNAIRE D'EVENEMENTS ******** *)
EVENT DlgEvent( REF fields: DLGDATA ) IS
VARIABLES
selectString: STRING;
ACTIONS
(* Tous les messages de boîtes de dialogue comportent les
paramètres pseudo $FieldID et $FieldName *)
WHEN $Event IS $MsgChar THEN
WHEN $KeyCode IS $KeyAltS THEN (* Recherchez Alt-S *)
(* Définissez l'invite de saisie du texte par l'utilisateur *)
IF WinEditField( $Desktop, selectString, 0, 0, 30,
'Entrez la nouvelle instruction de sélection SQL',
$WinAutoPos + $WinBorder +
$WinTitle ) > 0
THEN
DlgSQLSelect( $Handle, 'sql_manage_field',
selectString );
 END;
 END;
 END;
 END;
PROCEDURE DialogExample IS
VARIABLES
fields: DLGDATA;
ACTIONS
DlgBox ($Desktop,'example[dialog1]',
DlgEvent{ fields }, fields );
 END;

Codes retour

Voir aussi :

------------------------------------------------------------------------

DlgTurnToPage

Description

Modifie l'onglet en vigueur dans un boîte de dialogue à onglets, en lui conférant une nouvelle valeur sélectionnée.

Syntaxe

FUNCTION DlgTurnToPage( VAL whdlDialog: WINDOW,
VAL Notebook : STRING,
VAL page: INTEGER ): INTEGER;
Remarques concernant les arguments Description du nom de l'argument
whdlDialog Descripteur de la fenêtre de la boîte de dialogue contenant le bloc-notes
notebook Nom de la boîte de dialogue à onglets dans laquelle l'action est accomplie. Ce nom est défini au moment où le formulaire est créé à l'aide de l'utilitaire Interface Designer (concepteur d'interfaces).
page Nombre entier symbolisant le numéro de l'onglet que l'on souhaite atteindre. Le premier onglet porte le numéro 1; le deuxième porte le numéro 2, et ainsi de suite.

Exemple

(* Dans cet exemple, une boîte de dialogue à onglets est créée puis, à mesure que la création progresse, l'onglet passe au numéro 2. Cet onglet numéro 2 est le premier que l'utilisateur voit s'afficher. *)

KNOWLEDGEBASE Notebook;
    ROUTINES
PROCEDURE MainProgram;
TYPES
record1 is RECORD
MLE1: String;
 END;
PRIVATE
    ROUTINES
EVENT WinEvent(REF rec: record1) IS
ACTIONS
WHEN $Event IS $MsgAccept THEN
   Nothing;
ELSWHEN $MsgCreate THEN
DlgTurnToPage( $Handle, 'MyNotebook', 2);
 END;
 END;
PROCEDURE MainProgram IS
VARIABLES
rec: record1;
ACTIONS
DlgBox($Desktop, 'notebook[nbForm]',
WinEvent{rec}, rec);
 END;
 END;

------------------------------------------------------------------------

DlgWinCreate

Description

Crée une fenêtre générique ou une fenêtre défilante à l'intérieur d'un sous-formulaire existant. Les messages destinés à la fenêtre sont transmis
au gestionnaire d'événement désigné, et non au gestionnaire d'événements du dialogue (en effet, le gestionnaire d'événements est susceptible de filtrer certains messages
clés générés par la routine transmise par le clavier.) Si l'appel de DlgWinCreate a lieu dans un sous-formulaire "non vide", le sous-formulaire existant se trouve remplacé.

Syntaxe

FUNCTION DlgWinCreate( VAL form : WINDOW,
VAL subform : STRING,
REF win : WINDOW,
VAL eventHandler : EVENT,
VAL style : INTEGER
VAL scrollWindow : BOOLEAN
                    ): INTEGER;
Remarques concernant les arguments Description du nom de l'argument
form Nom du formulaire.
subform Identifiant du contrôle de sous-formulaire.
win Fenêtre contenue dans le sous-formulaire existant.
eventHandler Gestionnaire d'événements chargé de traiter les événements générés par la fenêtre ou la boîte de dialogue. Si aucun traitement d'événement n'est requis, le mot clé $NullHandle peut être utilisé.
style Masque de contrôle des données entières représentant un ensemble d'indicateurs de style permettant de contrôler l'aspect de la fenêtre. Pour obtenir une liste des indicateurs de style disponibles, reportez-vous à Styles de fenêtre.
scrollwindow Si la valeur de ce paramètre est TRUE, une fenêtre défilante est créée.


Remarques

Il n'est pas assuré que toutes les fonctions puissent être exécutées sur le descripteur renvoyé par cet appel. Les fonctions non supportées échouent en raison d'une erreur de gestionnaire
ou suite à une défaillance générale. Les fonctions suivantes ne fonctionnent pas avec les fenêtres créées par DlgWinCreate:

Codes retour

Voir aussi :

Retour à la page principale


Tivoli Service Desk 6.0 Developer's Toolkit Script - Manuel de référence du langage TSD Script

Retour à la page principale

Copyright