Vous consultez une page technique concernant le logiciel de gestion Mercator. Celle-ci contient des informations spécifiques destinées aux professionnels de Mercator. Souhaitez-vous être redirigés vers des informations plus générales ?


   Ne plus poser cette question

Gestion des tables libres

0000003077     -      20/07/2022

Mercator 10.10 ou ultérieur permet une gestion des tables libres. L'objectif est d'offrir des écrans standards pour gérer, par exemple, des tables personnalisées de paramètres supplémentaires. Cette fonctionnalité est idéale, entre autre, pour stocker les enregistrements qui vont déterminer les valeurs dans une liste déroulante (combo).

Pour créer une table libre, il faut se rendre dans le menu "Outils > Outils Avancés > Base de Données SQL > Tables Libres > Ajouter Table Libre". Cet écran est alors présenté :

Il doit être complété comme suit :

  • Le nom de la table tel qu'il sera vu par l'utilisateur dans Mercator. Dans la base de données, ce nom sera précédé de FREE_TABLE_ et les espaces seront remplacés par des underscores.
  • ID : le type de clé primaire. La clé primaire s'appellera toujours ID. Il est possible de choisir entre ces différents types (dans le cas d'un déroulant, il est essentiel que ce type corresponde à celui de la source de ce déroulant) :
    • char(10)
    • tinyint
    • smallint
    • int
  • La case à cocher "Invisible" permet de déterminer si la colonne ID devra être visible ou non dans la grille de saisie.
  • La case à cocher "Ordonnable" permet de déterminer si, dans la grille de saisie, les lignes seront triables par drag & drop dans l'entête de ligne.

Une fois cette boîte de dialogue validée, la table sera créée avec ces colonnes :

  • ID
  • NOM char(50)
  • ORDRE smallint si "Ordonnable"  a été coché.

Elle peut ensuite être modifiée sans aucune limite, hormis ceci :

  • la colonne ID ne peut être modifiée ou supprimée, puisqu'il s'agit de la clé primaire
  • la colonne NOM ne peut être retirée si la case à cocher "Ordonnable" n'a pas été cochée, car ce sera le tri par défaut. Toutefois, sa longueur peut toujours être modifiée.

Si la table, dont le nom a été fixé à "Ma table" a été créée, alors elle est aisément modifiable avec un script SQL tel que celui-ci :

alter table FREE_TABLE_MA_TABLE add MA_COLONNE bit not null default 0

Une fois une table libre installée, elle devient disponible aux utilisateurs dans le menu "Outils > Paramètres > Tables Libres". Chaque table libre fait l'objet d'un sous-menu qui reprend son nom ("Ma table"). Ces sous-menus sont gérés dynamiquement en fonction des tables libres existant dans la base de données.

Dans ces écrans, les colonnes de la grille sont créées dynamiquement selon les colonnes trouvées dans la table. Les types de colonne s'adaptent automatiquement en fonction de la nature de la colonne dans la table SQL. Ainsi, une colonne de type bit affichera une colonne de cases à cocher.

La taille de la fenêtre ainsi que l'agencement des colonnes sont sauvegardés dans les préférences de l'utilisateur. Par défaut, le nom des colonnes de la grille correspond au nom des colonnes dans la table. Il est toutefois possible de déroger à cela en spécifiant une description dans la définition de la colonne (voir cette page). Pour rendre une colonne invisible, il suffit de lui mettre ce caractère dans sa description : ~

Il est aussi possible de personnaliser la grille correspondante via le menu "Outils > Outils Avancés > Base de Données SQL > Tables Libres > Customizer".

La sauvegarde des données est effectuée sous la forme de requêtes d'insertion, de modification et de suppression (pas de suppression globale et de recréation de tous les enregistrements). En conséquence, la clé primaire peut être engagée dans une contrainte de clé étrangère avec une autre table.

Ces écrans exploitent le customizer Params.


Pour retirer une table libre, il suffit d'exécuter un script tel que celui-ci :

drop table FREE_TABLE_MA_TABLE