MUIbase Support This Project
programmable relational database
with graphical user interface
This page is also available in Deutsch English

Documentation

La documentation ci-dessous fait partie de la distribution de MUIbase. Elle est également disponible sous forme de PDF.


[ << ] [ >> ]           [Sommaire] [Table des matières] [Index] [ ? ]

15. Éditeur de structure

MUIbase dispose de deux modes de fonctionnement différents : le mode édition d'enregistrement où il est possible de saisir et parcourir les enregistrements, et le mode édition de structure où se définit la structure de la base, c'est à dire les tables, les champs et l'apparence d'un projet. Ce chapitre décrit l'éditeur de structure et explique comment gérer la structure d'un projet.

Pour basculer du mode édition d'enregistrement à celui d'édition de structure, il faut sélectionner l'élément `Éditeur de structure' dans le menu `Projet', ce qui ferme toutes les fenêtres et ouvre la fenêtre de l'éditeur de structure. Pour revenir au mode édition d'enregistrement, il faut sélectionner le menu `Projet - Fermer l'éditeur de structure' ou simplement fermer l'éditeur de structure en cliquant sur le gadget de fermeture dans la barre de titre de la fenêtre.

La fenêtre de l'éditeur de structure est divisée en trois parties : la partie supérieure gauche composée du groupe `Tables' servant à gérer les tables du projet, la partie inférieure gauche quant à elle occupée par le groupe `Champs' permet de gérer les champs d'une table, et pour finir la partie droite est occupée par un groupe `Affichage' pour gérer les éléments graphiques du projet (interface).


15.1 Gestion des tables

Depuis le groupe `Tables' de l'éditeur de structure, vous pouvez créer, changer, supprimer et trier les tables.


15.1.1 Création de tables

Pour créer une nouvelle table, appuyez sur le bouton `Nouveau' du groupe `Tables' ce qui ouvrira la fenêtre `Nouvelle table' contenant :

  • un champ de texte pour nommer la table. Chaque table doit avoir un nom unique commençant par une lettre majuscule suivie d'autres lettres, de chiffres ou de tirets bas. Les caractères non-ASCII (tréma, double point) ne sont pas autorisés. En revanche, il est tout à fait possible d'utiliser des caractères non-ASCII dans l'interface utilisateur de la table.

  • un groupe `Nombre d'enregistrements' dans lequel vous définissez combien d'enregistrements comportera la table. `Illimité' signifie que la table peut contenir un nombre infini d'enregistrements, `Exactement un' signifie que la table ne peut comporter qu'un seul enregistrement. Ce champ est utile pour contrôler le projet (voir Tables).

  • un groupe `Déclencheurs' dans lequel vous pouvez définir le nom de deux fonctions. Dans le champ `Nouveau' vous entrez le nom de la fonction à appeler à chaque fois que l'on veut créer un nouvel enregistrement, alors que le champ `Suppression' contient le nom de la fonction à appeler à chaque suppression d'enregistrement. Vous pouvez également utiliser les boutons déroulants situés à droite des champs de texte pour choisir à partir d'une liste de toutes les fonctions celle à appeler. Si vous laissez ces champs vides, alors ce sont les actions par défaut qui seront exécutées (les enregistrements sont crées automatiquement et les enregistrements sont effacés après une éventuelle requête de confirmation). Pour de plus amples informations concernant l'utilisation de ces déclencheurs, ainsi que le passage d'arguments, voir Déclencheur de création et Déclencheur de suppression.

  • a check-mark field `Count changes' that, if selected, makes any creation or deletion of a record count as a change to the project. If not selected then any change in the table (or in any of the table's attributes) is ignored.

  • a check-mark field `Log changes'. If selected, any creation or deletion of a record is recorded in the project log. Otherwise, no change in the table (or in any of the table's attributes) is ever logged.

  • deux boutons `Ok' et `Annuler' pour fermer la fenêtre.

Une fois que vous avez effectué tous les réglages, pressez le bouton `Ok' pour créer la nouvelle table. Si vous avez fait une erreur comme entrer un nom invalide, un message s'affichera et vous donnera des informations sur l'erreur. À l'inverse si tout se passe correctement, la fenêtre `Nouvelle table' se fermera et la nouvelle table s'affichera dans la liste des tables de l'éditeur de structure.


15.1.2 Modification de tables

Après avoir créé une table, vous pouvez toujours la modifier. Il vous suffit de double cliquer sur le nom de la table et la fenêtre `Modifier la table' apparaîtra. Cette fenêtre est similaire à celle de création de table (voir Création de tables) et vous permet de modifier les champs en saisissant une nouvelle valeur.

Quand vous avez effectué toutes vos modifications, appuyez sur le bouton `Ok' pour fermer la fenêtre.

Vous ne pouvez changer le nombre d'enregistrements d'`Illimité' en `Exactement un' si la table contient déjà plus d'un enregistrement.


15.1.3 Suppression de tables

Pour supprimer une table, sélectionnez son nom dans la liste de l'éditeur de structure, puis cliquez sur le bouton `Supprimer' sous la liste. Avant de supprimer définitivement la table, une requête de confirmation sera ouverte. Si vous confirmez en appuyant sur le bouton `Supprimer', la table sera irrémédiablement supprimée.

Un problème se pose si la table est utilisée ailleurs dans un projet. Dans ce cas, la table ne peut pas être supprimée simplement, mais toutes les références à cette table doivent être éliminées du programme. Si la table à supprimer est utilisée dans un projet, l'éditeur apparaîtra et affichera la première référence de la table. Vous devez alors modifier le programme de manière à éliminer toute référence à la table. Après avoir éliminé une référence, vous pouvez aller à la prochaine en appuyant sur le bouton `Compiler'. Vous pouvez à tout moment annuler l'opération en appuyant sur le bouton `Rétablir' et fermer l'éditeur.


15.1.4 Tri des tables

Vous pouvez trier les tables dans le groupe `Tables' de l'éditeur de structure de plusieurs façons. Vous pouvez les arranger manuellement par glisser/déposer ou vous pouvez utiliser le bouton `Tri' sous la liste pour les classer par ordre alphabétique (`Tri A-Z') ou bien encore en fonction de l'ordre de la liste d'affichage (`Tri Z-A').


15.2 Gestion des champs

Avec le groupe `Champs' de l'éditeur de structure, vous pouvez créer, copier, modifier, effacer et trier les champs de la table sélectionnée dans `Tables'.


15.2.1 Création de champs

Pour créer un nouveau champ dans la table active, cliquez sur le bouton `Nouveau' dans le groupe `Champs'. Cette action ouvrira la fenêtre `Nouveau champ' qui contient les éléments suivants :

  • un champ de texte pour entrer le nom du champ. Chaque champ d'une table doit avoir un nom unique et commencer par une lettre majuscule suivie d'autres lettres ou chiffres ou tiret bas. Les caractères non-ASCII (les trémas par exemple) ne sont pas autorisés. Cependant il est toujours possible d'utiliser pour les champs (dans l'interface utilisateur) n'importe quel caractère y compris non-ASCII.

  • une liste `Type' dans laquelle vous précisez le type de champ. Pour plus de précision sur les types de champ, consultez voir Types de champ.

  • une section sous le champ `Type' pour préciser les réglages spécifiques au type de champ choisi. Pour plus de précisions sur cette section, consultez voir Réglages liés au type de champ.

  • un champ `Déclencheur' dans lequel vous donnez le nom d'une fonction qui sera appelée chaque fois que l'utilisateur voudra modifier le contenu du champ dans un enregistrement. Vous pouvez utiliser le bouton contextuel (ou bouton déroulant) à droite du champ de texte pour sélectionner un nom parmi une liste de noms de fonction. Si vous laissez ce champ vide, alors l'action par défaut sera exécutée, ce qui veut dire que la valeur entrée sera simplement stockée dans le champ. Pour plus de précision sur le déclenchement de fonction, y compris comment passer des arguments, consultez voir Déclencheur de champ.

  • une case à cocher `Tenir compte des modifications'. Si elle est cochée, toute modification dans un champ d'un enregistrement, sera considérée comme une modification du projet. Décochez cette case si vous voulez ignorer les modifications de champ.

  • a field `Log changes', that, if checked, logs any change made to the attribute in a record. Note that this item is only enabled when also the `Log changes' item in the table has been set (voir Creating tables).

  • deux boutons `Ok' et `Annuler' pour fermer la fenêtre.

Lorsque vous avez effectué vos réglages, appuyez sur le bouton `Ok' pour créer le nouveau champ. Si vous avez fait une erreur tel qu'un nom invalide, un message s'affichera et vous donnera des informations sur l'erreur. À l'inverse si tout se passe correctement, la fenêtre `Nouveau champ' se fermera et le nouveau champ s'affichera dans la liste des champs de l'éditeur de structure.


15.2.2 Réglages liés au type de champ

Voici les modifications spécifiques aux types de champ que l'on peut effectuer:

  • Les réglages spécifiques aux champs de type Texte sont les suivants

    • un champ de type Entier `Max length' pour définir la longueur maximale pour ce champ.

    • un champ de type Texte `Valeur par défaut' pour définir la valeur par défaut de ce champ. On peut entrer n'importe quel texte dans la limite de la longueur maximale.

  • Les réglages spécifiques aux champs de type Entier, Réel, Date et Heure sont les suivants :

    • un champ `Valeur par défaut' dans lequel vous définissez la valeur par défaut de ce champ. Vous avez le choix entre `NIL' et `Autre'. Si vous utilisez `Autre' vous devez spécifier une valeur initiale dans le champ de texte à droite.

    • un champ de type Texte `chaîne NIL' dans lequel vous définissez le texte qui sera affiché lorsque le champ contiendra la valeur NIL.

  • Le réglage spécifique aux champs de type Booléen comprend un champ `Valeur par défaut' dans lequel vous entrez la valeur par défaut : soit `NIL' soit `TRUE'.

  • Les réglages spécifiques aux champs de type Choix sont les suivants :

    • un bouton `Édution des entrées' pour ouvrir la fenêtre `Édution des entrées' et donnez un nom au champ de type Choix (voir Label editor).

    • un champ `Valeur par défaut' dans lequel vous entrez la valeur par défaut.

  • Les réglages spécifiques aux champs de type Référence sont les suivants :

    • une liste de toutes les tables pour sélectionner celle vers laquelle pointera le champ. En cliquant sur la table, le champ ira vers la référence.

    • un champ `Affichage auto ?'. S'il est coché, la table de référence sera mise à jour automatiquement en fonction de l'enregistrement de référence, chaque fois que l'utilisateur passera à un autre enregistrement.

    • un champ `Filtrer ?'. S'il est coché, le filtre de référence de ce champ sera activé. Pour plus de précision, consultez Voir Reference filter.

    Les champs de type Référence ont toujours NIL comme valeur par défaut.

  • Le réglage spécifique aux champs de type Virtuel concerne le champ de texte `Calculer' dans lequel vous donnez le nom de la fonction à lancer pour calculer la valeur du champ. Vous pouvez vous servir du bouton déroulant pour sélectionner un nom parmi une liste de tous les noms de fonctions. Veuillez consulter voir Programming virtual attributes pour en savoir plus sur l'utilisation de cette fonction.

  • Les champs de type Mémo et Bouton n'ont pas de réglages propres. La valeur par défaut des champs de type Mémo est une ligne de texte vierge.


15.2.3 Éditeur d'entrée

L'éditeur d'entrées intervient à chaque fois que vous devez définir une liste comme par exemple une liste de noms pour un champ de type Choix. L'éditeur se compose d'une fenêtre qui contient :

  • une liste montrant les entrées existantes. Cliquer sur une entrée la sélectionne et elle sera visible dans le champ de texte sous la liste. Vous pouvez utiliser le glisser/déposer pour réarranger les entrées.

  • un champ de texte `Entrée' qui montre l'entrée sélectionnée et permet également de la modifier. Les modifications ne seront prises en compte que lorsque vous appuyez sur la touche Entrée. S'il n'y a aucune entrée de sélectionner, la pression sur Entrée ajoutera une nouvelle entrée à la liste.

  • un bouton `Nouveau' qui désélectionne l'entrée courante, ce qui permet d'ajouter de nouvelles entrées dans le champ de texte `Entrée'.

  • un bouton `Supprimer' qui efface l'entrée sélectionnée de la liste.

  • un bouton `Trier' pour trier par ordre alphabétique la liste d'entrées.

  • deux boutons `Ok' et `Annuler' pour quitter l'éditeur d'entrées.

Après avoir ajouté toutes les entrées ou les avoir changées, pressez le bouton `Ok' pour fermer la fenêtre.


15.2.4 Copie de champs

Dans le cas où vous avez besoin de plusieurs champs similaires, il vous est possible de copier un champ. Pour cela, sélectionnez le champ à dupliquer et cliquez sur le bouton `Copier' sous la liste de champ. Cette action ouvre une requête `Copier le champ' montrant les options du champ sélectionné. Modifiez certaines parties comme le nom puis cliquez sur `Ok' pour générer une copie du champ.


15.2.5 Modification de champs

Après la création d'un nouveau champ, il est toujours encore possible de modifier ses réglages. Pour cela, double-cliquez sur le nom du champ ce qui laissera apparaître la requête `Modifier le champ'. Cette requête est semblable à celle de création d'un champ (voir Creating attributes) et permet de modifier certains paramètres. Les paramètres ne pouvant être modifiées, comme le type de champ, apparaissent grisés.

Les choses à prendre en compte lors d'un changement de champ sont les suivantes :

  • Le type de champ ne peut être changé. Si vous devez changer le type d'un champ, il est préférable d'en créer un nouveau du type voulu et de copier les enregistrements du champ à remplacer vers le nouveau champ en entrant un programme MUIbase simple dans l'éditeur de requête (voir Query editor).

  • Si vous modifiez la valeur par défaut d'un champ, alors uniquement les nouveaux enregistrements auront cette nouvelle valeur d'initialisation d'enregistrement.

  • Certaines précautions sont à prendre pour les champs de type Choix lors de changement d'entrées. Les entrées sont uniquement utilisées pour visualiser le contenu du champ, mais en interne, ce sont des numéros qui sont stockés et utilisés comme index dans la liste d'entrées. Donc si vous modifiez l'ordre des entrées, vous ne modifiez pas le numéro en interne mais sa visualisation sous forme d'entrées ! Par conséquent, vous ne devriez pas changer l'ordre des entrées après avoir crée un champ de type Choix. Par contre l'ajout de nouvelles entrées à la fin de la liste ne pose pas ce genre de problème. Pour une plus grande flexibilité avec possibilité de changer l'ordre des entrées, utilisez plutôt un champ de type Texte associé à un `Listview déroulant' (voir Attribute object editor).

  • La table de référence d'un champ Référence ne peut pas être modifiée

Si vous en avez terminé avec les modifications, pressez le bouton `Ok' pour fermer la requête.


15.2.6 Suppression de champs

Pour effacer un champ, cliquez sur son nom dans la liste des champs de l'éditeur de structure et appuyez sur le bouton `Supprimer' situé sous la liste. Une requête de confirmation apparaîtra et si vous confirmez en appuyant à nouveau sur `Supprimer', le champ sera définitivement effacer.

Un problème peut se poser lorsque le champ est utilisé ailleurs dans le projet. Dans ce cas, le champ ne peut être simplement effacé mais toutes les références à celui-ci doivent impérativement disparaître du programme. Si le champ à effacer est utilisé ailleurs, l'éditeur de programme apparaîtra et affichera la première occurrence de ce champ. Vous devrez alors modifier le programme de manière à ce qu'il ne contienne plus aucune référence à ce champ. Après chaque suppression d'une référence, vous passez à la suivante en appuyant sur le bouton `Compiler'. À tout moment vous pouvez annuler toute l'opération en appuyant sur `Rétablir' et en refermant l'éditeur de programmes.


15.2.7 Tri des champs

Le classement des champs dans la partie `Champs' de l'éditeur de structure peut se faire de plusieurs façons. Vous pouvez le faire à la main par glisser/déposer, ou utiliser le bouton `Tri' sous la liste qui permet un tri par ordre alphabétique (`Tri A-Z'), ou encore un tri suivant l'ordre de l'affichage de la liste (`Tri Z-A').


15.3 Gestion de l'affichage

Dans la partie `Affichage' de l'éditeur de structure, vous définissez l'agencement des éléments de la base de données dans l'interface utilisateur. Cette section comporte une partie choix, une partie liste et plusieurs boutons.


15.3.1 Champ d'affichage

Le champ d'affichage contient les éléments suivants :

  • un élément de sélection avec deux réglages, `Fiche de table' et `Fenêtre principale'. Dans `Fiche de table' vous définissez l'agencement des champs de la table active dans l'interface utilisateur. Dans `Fenêtre principale' vous définissez l'arrangement des tables.

  • une liste montrant la caractéristique actuelle de l'interface utilisateur. La liste se présente sous forme d'arborescence. Les éléments ayant une flèche à leur gauche sont des objets d'IG composés pouvant être ouverts ou fermés en (double-) cliquant sur le symbole de la flèche. Un double clic sur l'élément lui-même ouvre une fenêtre permettant l'édition de ses réglages. Tous les objets d'IG issus du même objet parent sont placés de manière identique (horizontalement ou verticalement). La représentation est déterminée par l'objet d'IG parent : les éléments des tableaux, onglets et fenêtres sont placés verticalement alors que les éléments des groupes sont placés en fonction des réglages définis par l'éditeur de groupe (voir Group editor).

  • un bouton `+' (`Ajouter') pour ajouter la table sélectionnée ou le champ sélectionné (suivant ce qui est affiché dans la partie choix) à la liste. En général, les tables et les champs sont ajoutés à la liste automatiquement après leur création.

  • un bouton `-' (`Supprimer') pour retirer de la liste ce qui est sélectionné. Si vous retirez une table, la totalité du formulaire de la table sera enlevé de l'interface utilisateur. De ce fait, vous ne pourrez plus voir la table dans l'interface projet et pourrez cacher des tables entières. Idem pour les champs : retirez un champ équivaut à le cacher de l'interface projet.

  • deux boutons `Haut' et `Bas' pour déplacer l'élément sélectionné vers le haut ou vers la bas dans la liste.

  • deux boutons `Entrée' et `Sortie' pour déplacer l'élément sélectionné vers un niveau hiérarchique plus élevé ou plus bas dans la liste.

  • un bouton `Onglet' pour ajouter un onglet à la table. Voir Table object editor, pour plus de précisions concernant la mise en place d'un onglet.

  • un bouton `Texte' pour ajouter un objet texte dans la liste (voir Text editor).

  • un bouton `Image' pour ajouter un objet image (voir Image editor).

  • un bouton `Séparateur' pour insérer un espace entre les autres objets (voir Space editor).

  • un bouton `Balance' pour ajouter un objet balance dans la liste. Cet objet est très utile pour contrôler la taille des autres objets graphiques.

  • un bouton `Groupe' pour ajouter un objet groupe dans la liste. Avant d'appuyer sur ce bouton, vous pouvez sélectionner plusieurs éléments dans la liste pour les déplacer dans un nouveau groupe. Voir Group editor, pour plus de précisions concernant la mise en place d'un groupe.

  • un bouton `Registre' pour ajouter un groupe enregistré dans la liste. Comme pour l'objet groupe, il est possible de sélectionner plusieurs objets graphiques afin de les déplacer vers le nouveau groupe enregistré. Pour plus de précisions concernant la mise en place d'un groupe enregistré, consultez voir Register group editor.

  • un bouton `Fenêtre' pour ajouter une nouvelle fenêtre dans la liste. Comme précédemment, il est possible de sélectionner plusieurs objets graphiques pour les déplacer dans la nouvelle fenêtre. Pour plus de précisions concernant la mise en place d'une fenêtre, consultez voir Window editor.

Pour plus de précisions concernant les éléments graphiques ainsi que la façon de les utiliser, consultez voir User interface.


15.3.2 Éditeur de table

When adding a table a default display object is created. To change the settings of the table object, double click the table in the `Display' list and the `Display table'' window appears. The window has three sections that are separated into the tabs `General', `Panel' and `Record'.

The `General' section contains the following items:

  • a numerical field `Poids' for specifying the weight of the object. The value of this field determines how much space, relative to the other objects, the table gets in the final window layout.

  • a field `Arrière-plan' with a check-mark field `Défaut' for specifying how the background of the table should look like. If you check the `Défaut' field then a default background is used, otherwise you can click on the `Arrière-plan' field to open a window for specifying a custom background.

  • a check-mark field `Has panel' that specifies whether a panel should be displayed at the top of the table. Uncheck this field for hiding the panel. For more information about panels, voir Panels.

The `Panel' section is only enabled if the `Has panel' field has been checked. It contains the following items:

  • un champ de texte `Titre' pour donner un titre à l'entête de l'onglet.

  • un champ de texte `Police de caractères' avec un bouton déroulant pour choisir la police du titre. Si vous laissez le champ vide, la police par défaut sera utilisée.

  • un champ `Arrière-plan' avec une case à cocher `Défaut' pour définir l'image de fond de l'entête du panel. Si le champ `Défaut' est coché, alors l'image de fond par défaut sera utilisée. Sinon vous pouvez cliquer sur `Arrière-plan' pour ouvrir une requête et en sélectionner une.

  • un champ `Num/All'. S'il est coché, le numéro de l'enregistrement en cours et le nombre total d'enregistrements apparaîtront dans la partie droite de l'entête du panel.

  • un champ `Filtre' qui, si coché, ajoute un bouton de filtrage à l'entête du panel et permet d'activer ou non le filtrage d'enregistrement de la table. S'il n'est pas coché, l'élément du menu `Table - Change filter' sera aussi désactivé pour cette table et vous ne pourrez plus ajouter de filtre pour la table. Pour plus d'informations sur le filtrage des enregistrements, consultez voir Record filter.

  • un champ `Arrows' pour ajouter deux boutons flèches au masque de la table. Ces flèches permettent la navigation entre les enregistrements de la table. S'il n'est pas coché, vous ne pourrez pas naviguer dans les enregistrements et tous les sous-menus du menu `Goto record' ainsi que les éléments `Search for', `Search forward', et `Search backward' du menu `Table' seront désactivés.

  • deux boutons `Ok' et `Annuler' pour fermer la fenêtre.

Si vous en avez terminé avec les modifications, pressez le bouton `Ok' pour fermer la fenêtre.


15.3.3 Éditeur de champ

Lorsque vous ajoutez un champ à la liste, un objet graphique par défaut lui sera attribué. Pour modifier les réglages de cet objet, un double clic ouvre la fenêtre `Display attribute'. Le contenu de cette fenêtre dépend du type de champ. Les éléments suivants sont disponibles pour la plupart des types de champ :

  • une partie texte `Titre' pour le titre qui sera affiché à côté de l'objet champ (ou à l'intérieur de l'objet si c'est un bouton). Si vous laissez cette partie vide, aucun titre ne sera affiché.

  • une partie choix `Position' pour définir la position du titre (s'il y en a un) par rapport un champ objet. Vous avez le choix entre `Gauche', `Droite', `Haut' et `Bas'.

  • une partie de texte `Raccourci' pour la saisie d'une lettre qui sera utilisée conjointement avec la touche Alt (pour Linux et Windows) ou la touche Amiga (pour AmigaOS) pour activer l'objet.

  • une case `Home'. Si elle est cochée, l'objet de champ correspondant sera l'objet "home". Cet objet sera le placement du curseur à chaque fois qu'un enregistrement sera entré. C'est très pratique dans le cas où vous entrez vos données en commençant toujours par le même champ. Lorsque vous définissez un champ en tant qu'objet "home", tous les autres objets de champ de cette table perdront cette propriété.

  • une case `Navigation cyclique'. Si elle est cochée, l'objet fera partie de la chaîne focalisée (focus chain) qui utilise la touche Tab pour faire défiler les objets. Ne cochez pas cette cas si vous ne voulez pas inclure cet élément.

  • une case `Read only' qui, si elle est cochée, attribuera l'état +lecture seule à l'objet. Le signe "+" signifie que vous pouvez lire le contenu mais pas le modifier. À noter cependant que l'ajout d'un bouton popup à l'objet permet de changer son contenu pour l'un des choix proposés dans la liste déroulante.

  • une partie choix `Alignment' pour fixer la representation du contenu d'un objet. Vous avez le choix entre `Center', `Gauche' et `Droite' pour respectivement afficher au centre, à gauche ou à droite.

  • une zone `Activé/désactivé'. Si `Toujours activé' est sélectionné alors l'objet est toujours activé indépendamment de l'enregistrement affiché. `Désactivé sur initial' désactive l'objet pour l'enregistrement initial mais l'active dans tous les autres cas. Si `Calculer activation' est choisi alors une fonction pour calculer l'état d'activation de l'objet peut être spécifiée sur la droite. La fonction ne requiert aucun argument. Si elle renvoie NIL alors l'objet est désactivé, sinon il est activé. Dans le cas où le déclencheur est laissé vide ou ne peut as être trouvé, l'objet est désactivé. Pour plus d'informations sur la façon d'utiliser ce déclencheur, voir Fonction de calcul d'activation.

  • une partie numérique `Poids' pour définir le poids de l'objet. Cette valeur définie la place occupée par cette objet dans la représentation finale par rapport aux autres objets. Pour la plupart des types de champs, cela n'affectera que la taille horizontale parce que la plupart des objets ont une taille prédéfinie. Pour un champ de type Memo, cela affectera également la taille verticale.

  • une partie `Police de caractères' pour choisir la police utilisée pour l'affichage du contenu du champ. La police par défaut sera utilisée si vous laissez ce champ vide.

  • une partie `Arrière-plan' avec une case à cocher `Défaut' pour définir la représentation du fond du champ. Si la case `Défaut' est cochée, un fond par défaut sera utilisé. Sinon vous cliquez sur `Arrière-plan' pour ouvrir une fenêtre de sélection pour le fond.

  • une partie édition `Infobulle' pour définir le texte qui sera affiché dans la bulle d'aide pour l'objet de champ.

  • deux boutons `Ok' et `Annuler' pour fermer et quitter la fenêtre.

Une fois les réglages effectués, appuyez sur le bouton `Ok' pour fermer la fenêtre.


15.3.4 Réglages liés au type

Parmi les éléments ci-dessus, ceux qui suivent sont spécifiques au type de champ :

  • Pour les champs de type texte, il existe une page `Extras' qui contient :

    • une case `Afficher l'image' qui, si elle est cochée, joint une partie image au champ de type texte pour afficher une image dont le nom provient du contenu du champ. La partie image est mise au dessus du champ de texte. Si vous ne cochez pas cette case, les réglages des éléments `Title at string field', `Masquer le champ texte' et `Taille' sont superflus.

    • une case `Titre du champ texte'. Si elle est cochée, le titre de l'objet de champ est placé à gauche de la partie texte pour ménager un espace plus important pour la partie image. Sinon, le titre sera placé à côté de la partie image.

    • une case `Masquer le champ texte' pour dissimuler la partie texte dans l'interface utilisateur. Si elle est cochée, seule la partie image sera visible.

    • une partie `Taille' pour définir le redimensionnement de la partie image. Si `Redimensionnable' est sélectionné, l'objet peut être redimensionné et pourrait devenir plus grand que la taille de l'image. `Fixé' adapte la taille de l'objet à la taille de l'image. Si la taille de l'image change en fonction des enregistrements, alors l'objet est également redimensionné à chaque fois. `Défilable' ajoute deux barres de déplacement à l'objet pour voir les images qui seraient plus grandes que la zone visible. Si `Ajusté' est sélectionné, la taille de l'image est redimensionnée de façon à s'adapter à la taille de l'objet affiché. `Homothétique' permet également le redimenssionnement mais en préservant les proportions originales.

    • une case `Sélecteur de fichier' qui, si elle est cochée, rajoute un bouton déroulant du côté droit de la partie texte. Ce bouton permet d'afficher une requête pour sélectionner un nom de fichier.

    • une partie `Sélecteur de polices de caractères' pour ajouter un bouton déroulant permettant l'ouverture d'une requête de sélection d'une police de caractères.

    • une case `Sélecteur de liste'. Si elle est cochée, un bouton déroulant sera ajouté à la droite de la partie texte permettant de choisir le texte parmi une liste. Le texte des entrées pour la liste déroulante est défini à droite du champ. Les éléments peuvent être soit `Statiques', soit `Calculés'. Si `Statique' est choisi alors la liste de chaînes peut être saisie dans l'éditeur d'entrées qui s'ouvre aprés un clic sur le bouton `Edit labels'. Pour plus de renseignements sur l'éditeur d'entrées, consultez voir Éditeur d'entrées. Si `Calculé' est sélectionné alors un déclencheur peut être désigné dans le champ `Compute', il sera exécuté à chaque fois que le bouton déroulant sera cliqué. Cette fonction doit retourner un mémo contenant une entrée par ligne ou NIL pour une liste vide (voir Calculer les entrées des listes). Seulement une seule des cases `Sélecteur de fichier', `Sélecteur de polices de caractères' et `Sélecteur de liste' peut être sélectionnée à la fois.

    • une case `Vue' qui, si elle est cochée, rajoute un bouton à droite de la partie texte permettant de lancer un programme de visualisation externe avec le contenu du champ comme argument. C'est très pratique dans le cas où vous stockez les noms de fichiers dans le champ et voudriez voir le contenu d'un fichier via un programme de visualisation externe. Ce programme de visualisation est défini dans le menu `Preferences - External viewer' (voir External viewer).

  • pour les champs de type Choix, il existe une partie `Type' qui vous permet de choisir si le contenu du champ sera affiché par un `Cycle button' ou bien par un groupe de `Boutons radio'. Si vous choisissez `Cycle button' alors vous pouvez définir la position du titre parmi `Gauche', `Droite', `Haut', ou `Bouton'. Si vous choisissez `Boutons radio' alors les deux éléments `Cadre' et `Horizontal' permettent d'avoir une bordure autour des boutons et de définir l'aspect horizontal.

  • pour les champs de type Real il existe une partie integer `Num decimals' dans laquelle vous définissez le nombre de chiffres après la virgule qui seront affichés.

  • pour les champs de type Time il existe une partie choix `Format' pour définir l'aspect visuel. Vous avez le choix entre `HH:MM:SS', `MM:SS' et `HH:MM'. Si vous choisissez `HH:MM', les secondes ne seront pas affichées et les valeurs d'entrées seront considérées comme des minutes.

  • pour les champs de type Reference il existe une page `Extras' qui comportent les éléments suivants :

    • une liste `Affichage' dans laquelle vous définissez la visualisation du contenu d'un enregistrement référencé. Il est possible de sélectionner simultanément plusieurs éléments de cette liste. Si vous choisissez `Record number' alors le numéro de l'enregistrement sera inclu dans la visualisation. Les autres éléments sont les noms des champs dans la table de référence. Vous pouvez changer l'ordre par simple glisser/déposer.

    • une zone `Déroulante' dans laquelle vous pouvez spécifier quels enregistrements de la table référencée doivent être disponibles dans la liste déroulante du champ Référence et comment ils doivent être affichés. Si `Enregistrements' est positionné sur `Tous' alors tous les enregistrements sont disponibles. Si `Enregistrements' est positionné sur `Correspondant au filtre' alors seuls les enregistrements de la table référencée correspondant au filtre installé sont disponibles. Si `Enregistrements' est positionné sur `Calculé' alors une fonction pour calculer l'ensemble d'enregistrements peut être saisie dans le champ `Calculer'.

      Cette fonction déclencheur doit retourner une liste qui est parcourue à la recherche d'enregistrements de la table référencée.

      Ces enregistrements identifiés sont affichés dans la liste déroulante. Les éléments qui ne sont pas des enregistrements sont ignorés. Voir Calculer les enregistrements référencés, pour plus d'informations sur cette fonction.

      En plus de ces enregistrements spécifiés par le réglage `Enregistrements', l'enregistrement initial et l'enregistrement courant de la table référencée peuvent être ajoutés à la liste déroulante en cochant respectivement les options `Enregistrement initial' et `Enregistrement courant'.

    • une case `Affichage'. Si elle est cochée, la création de l'objet graphique représentant la référence sera un bouton. En cliquant sur celui-ci, vous verrez l'enregistrement référencé dans le masque de la table de référence. Pour cela, la fenêtre contenant la table de référence s'ouvrira et sera amenée vers l'avant si nécessaire.

    • une case `Affichage automatique' qui, si elle est cochée, ajoute un bouton à droite de la partie référence pour une visualisation automatique ou non du champ. En l'activant, la table de référence sera mise à jour automatiquement avec l'enregistrement référencé à chaque fois que l'utilisateur passera à un autre enregistrement.

    • une case `Filtre' qui, si elle est cochée, ajoute un bouton à droite de la partie référence pour appliquer ou non une filtration de référence sur le champ. Voir Reference filter, pour plus d'informations sur les filtres de référence.

  • pour les champs de type Virtuel, l'éditeur d'objet de champ contient une page `Extras' avec les options suivantes :

    • une liste de choix `Type' dans laquelle vous définissez comment le contenu du champ devra être affiché. Vous pouvez opter pour `Booléen' qui utilise une zone à cocher pour afficher les valeurs booléennes, ou pour `Texte' qui utilise une zone de texte pour afficher une ligne de texte (y compris la date, l'heure et les valeurs numériques), ou encore `Liste' qui utilise une liste pour afficher une liste de lignes (exemple : le resultat d'une requête genre select-from-where).

    • en réglant l'élément `Type' sur `Texte', deux nouveaux champs feront leur apparition : `Alignement' pour définir comment sera présenter le contenu du champ, et `Nombres décimaux' pour fixer le nombre de chiffres affiché après la virgule pour le contenu un champ de type Réel.

    • if the `Type' field has been set to `List' then further fields `Show titles', `Tab chain' and `On double click' are available. If `Show titles' is checked, the first line of the attribute contents is displayed as a title row in the list-view. Otherwise no title row is displayed and the first line is ignored. If `Tab chain' is checked, the object is part of the focus chain that can be cycled through by pressing the Tab key. Uncheck this item if you want to skip over the element. In `On double click' you can specify which action should take place when the user double-clicks a list item. `Do nothing' ignores the double click. `Show record' displays the record corresponding to the clicked item in the corresponding table view. If you select `Call trigger' then the name of a trigger function can be entered to the right. This trigger function is called on each double click. For more information about the trigger function, including the arguments that are passed to it, voir Double click trigger.

    • une case `Mise à jour automatique'. Si elle cochée, le champ Virtuel est recalculé automatiquement à chaque changement d'un élément dépendant. Cela inclut le changement d'enregistrement dans une table dépendante, la modification d'un champ dépendant, l'ajout ou la suppression d'un enregistrement dans une table dépendante, basculer le mode utilisateur/administrateur du projet ou recompiler le programme du projet. Les dépendances d'un champ Virtuel sont obtenues automatiquement depuis la fonction de calcul du champ Virtuel. Utilisez le menu `Projet - Exporter la structure' pour visualiser toutes les dépendances obtenues (il peut être nécessaire de recompiler le programme du projet afin de mettre à jour les dépendances lors de l'activation de cette fonction). Veuillez noter que le champ Virtuel est recalculé quelque soit l'enregistrement dans lequel un champ dépendant est modifié et sans tenir compte si la valeur du champ dépendant est modifiée depuis l'interface utilisateur ou au cours de l'exécution du programme. Toutefois, la mise à jour automatique des champs virtuels se déroule généralement seulement après que toutes les autres exécutions du programme sont terminées. Si `Mise à jour automatique' est décoché, la valeur du champ Virtuel n'est calculée que lorsque cela est explicitement demandé ou qu'elle est modifiée dans une fonction du programme.

  • Voici les options supplémentaires pour les boutons :

    • une partie choix `Type' dans laquelle vous choisissez entre `Bouton texte' et `Bouton image'.

    • si vous choisissez le type `Bouton texte' les options suivantes seront disponibles : `Titre', `Police de caractères', `Arrière-plan' et `Défaut' pour respectivement donner un titre au bouton, choisir sa police d'affichage et les réglages pour le fond.

    • si vous choisissezle type `Bouton image' les options suivantes seront disponibles : `Image' pour choisir l'image et `Taille' pour définir sa taille.


15.3.5 Éditeur de texte

Lorsque vous ajoutez un objet de texte dans la liste d'affichage ou lorsque vous en modifiez un par double clic, la fenêtre `Texte' apparaîtra et proposera les options suivantes :

  • une partie texte `Titre' pour définir le texte à afficher.

  • une partie numérique `Poids' pour définir la largeur de l'objet de texte.

  • une partie choix `Police de caractères' pour définir la police du texte. Si vous laissez le champ vide, la police par défaut sera utilisée.

  • une partie `Arrière-plan' et une partie `Défaut' pour définir les réglages du fond de l'objet de texte.

  • deux boutons `Ok' et `Annuler' pour fermer la fenêtre.

Quand vous en avez terminé avec les réglages, cliquez sur le bouton `Ok' pour fermer la fenêtre.


15.3.6 Éditeur d'image

L'éditeur d'images apparaît lorsque vous ajoutez un nouvel objet image ou lorsque vous double cliquez sur une image existante.Il contient les options suivantes :

  • une partie `Poids' dans laquelle vous définissez la largeur de l'objet image dans la representation finale.

  • une partie `Image' dans laquelle vous choisissez l'image à afficher.

  • une partie `Taille' dans laquelle vous définissez le type de redimensionnement. Si vous choisissez `Redimensionnable' l'objet image sera redimensionnable, alors que si vous choisissez `Fixé', la taille sera fixe.

  • deux boutons `Ok' et `Annuler' pour fermer la fenêtre.

Quand vous en avez terminé avec les réglages, cliquez sur le bouton `Ok' pour fermer la fenêtre.


15.3.7 Éditeur d'espacement

Après avoir ajouté un objet d'espacement à la liste d'affichage, vous pourrez modifier ses paramètres en double cliquant sur celui-ci, ce qui ouvrira la fenêtre `Séparateur' comportant les options suivantes :

  • un champ `Délimiteur' qui, s'il est sélectionné, affiche une barre horizontale ou verticale (en fonction de la représentation de l'objet parent) au milieu de l'objet d'espacement. Ceci est très utile pour séparer les différents éléments dans la fenêtre de représentation.

  • un champ numérique `Poids' pour fixer la largeur de l'objet.

  • deux champs `Arrière-plan' et `Défaut' pour les réglages de fond.

  • deux boutons `Ok' et `Annuler' pour fermer la fenêtre.

Quand vous en avez terminé avec les réglages, cliquez sur le bouton `Ok' pour fermer la fenêtre.


15.3.8 Éditeur de groupe

Après avoir ajouté un objet de groupe à la liste d'affichage, vous pourrez modifier ses paramètres en double cliquant sur celui-ci, ce qui ouvrira la fenêtre `Groupe' comportant les options suivantes :

  • une partie texte `Titre' pour donner un titre, centré au-dessus du groupe. Si vous laissez ce champ vide, aucun titre ne sera affiché.

  • une partie numérique `Poids' pour fixer la largeur de l'objet.

  • deux champs `Arrière-plan' et `Défaut' pour les réglages de fond.

  • une case `Bordure' qui, si elle est sélectionnée, affichera un cadre autour du groupe.

  • une case `Horizontal' qui, si elle est cochée, affichera le groupe de façon horizontale et sera défini comme `HGroup' dans la liste d'affichage. Sinon, le groupe sera organisé de façon verticale et sera défini comme `VGroup' dans la liste d'affichage.

  • une case `Espacement' qui, si elle est sélectionnée, ajoute de l'espace entre les objets child du groupe. Sinon aucun espace supplémentaire ne sera ajouté entre les objets.

  • deux boutons `Ok' et `Annuler' pour fermer la fenêtre.

Quand vous en avez terminé avec les réglages, cliquez sur le bouton `Ok' pour fermer la fenêtre.


15.3.9 Éditeur de registre

Vous pouvez modifier les réglages d'un objet groupe enregistré en double-cliquant dessus, ce qui ouvrira la fenêtre `Groupe registre' proposant les options suivantes :

  • une partie numérique `Poids' pour fixer la largeur de cet objet.

  • une partie `Entrée' pour donner un nom à chaque page enregistrée. Il est recommandé d'avoir précisément le même nombre d'entrées que d'éléments présents dans le groupe enregistré. Pour en savoir plus sur l'édition des entrées, consultez voir Label editor.

  • deux boutons `Ok' et `Annuler' pour fermer la fenêtre.

Quand vous en avez terminé avec les réglages, cliquez sur le bouton `Ok' pour fermer la fenêtre.


15.3.10 Éditeur de fenêtre

Vous pouvez modifier les réglages d'un objet fenêtre en double-cliquant dessus, ce qui ouvrira l'éditeur de fenêtre et proposera les options suivantes :

  • une partie texte `Titre' dans laquelle vous entrez le texte qui sera affiché dans la barre de titre de la fenêtre ainsi que dans le bouton de fenêtre optionel.

  • une partie texte `Id' (seulement sur Amiga) qui peut contenir jusqu'à quatre caractères correspondant à l'id d'une fenêtre MUI. Si vous ajoutez un id, alors la taille et la position de la fenêtre pourront être sauvegardés grâce à l'option "figer" de MUI. Notez que chaque id défini dans MUIbase devra être unique. Si par accident vous utilisez un id existant, les fenêtres partageront les mêmes réglages. Les identifiants commençant par un souligné `_' sont réservés à un usage interne à MUIbase. Si vous laissez le champ vide, aucun id ne sera défini et les dimensions de la fenêtre seront stockés dans le fichier du projet. La fenêtre principale a toujours comme id les quatre premiers caractères du nom du projet. Définir un id pour une fenêtre est utile dans le cas où l'édition d'un projet se fait sous différentes configurations, parce que les coordonnées de la fenêtre sont mémorisées individuellement pour chaque configuration.

  • une case `Bouton' qui, si elle est cochée, ajoute un bouton pour ouvrir la fenêtre dans la fenêtre parent. Si cette case n'est pas cochée, la fenêtre ne peut être ouverte qu'à partir d'un programme MUIbase, via la fonction SETWINDOWOPEN (voir SETWINDOWOPEN). Les options suivantes définissent l'affichage du bouton de fenêtre :

  • une partie texte `Raccourci' dans laquelle vous définissez le raccourci permettant d'activer le bouton de fenêtre.

  • une zone `Activé/Désactivé'. Si `Toujours activé' est sélectionné, alors le bouton de fenêtre est toujours actif. `Désactivé par défaut' désactive le bouton s'il est dans une table et que celle-ci affiche son enregistrement initial, sinon le bouton est activé. Si `Calcul actif' est choisi alors une fonction pour calculer l'état d'activation du bouton de fenêtre peut être spécifiée sur la droite. La fonction ne requiert aucun argument. Si elle renvoie NIL alors le bouton est désactivé, sinon il est activé. Dans le cas où le déclencheur n'est pas renseigné ou ne peut pas être trouvé, le bouton de fenêtre est désactivé. Pour plus d'informations sur la façon d'utiliser ce déclencheur, voir Fonction de calcul d'activation. De plus si la case `Fermer la fenêtre si désactivé' est cochée alors la fenêtre est automatiquement fermée lorsque le bouton est désactivé.

  • une partie numérique `Poids' dans laquelle vous définissez la largeur du bouton de fenêtre.

  • une partie `Police de caractères' pour définir la police du bouton de fenêtre. Si vous laissez ce champ vide, la police par défaut sera utilisée.

  • deux champs `Arrière-plan' et `Défaut' pour définir les réglages de fond du bouton de fenêtre.

  • deux boutons `Ok' et `Annuler' pour fermer la fenêtre.

Quand vous en avez terminé avec les réglages, cliquez sur le bouton `Ok' pour fermer la fenêtre.


15.4 Exporter une structure

Parfois, il peut être utile d'avoir une vue d'ensemble de toutes les tables et champs d'un projet, par exemple lorsque vous voulez écrire un programme MUIbase. Pour cela, vous sélectionnez l'option du menu `Project - Exporter la structure', ce qui vous demandera un nom de fichier dans lequel sera stocké la liste des tables et des champs. Vous obtiendrez en sortie le nom du projet suivi de toutes les tables qui y sont associées. Pour chaque table, vous aurez le détail de tous les champs avec leurs types et les fonctions optionnelles qu'elles lancent. Pour les champs de type Virtuel, vous aurez également les dépendances permettant la mise à jour automatique de la valeur des champs.


[ << ] [ >> ]           [Sommaire] [Table des matières] [Index] [ ? ]

Ce document a été généré le 10 Octobre 2017 par texi2html