Ajouter Objets avec ID

 

 

MBX version 4

 

Jacques Paris

Septembre 2006

 

 

Il s’agit d’ajouter des objets (limités aux types Point, Ligne, Polyligne et Polygone) à une table existante tout en créant automatiquement un nouvel identificateur. La table doit contenir une colonne appropriée pour recevoir ces identificateurs.

 

Types d’identificateurs

 

Entier (integer) nombre de 1 à 2 147 483 647

 

Petit entier (smallint) nombre de 1 à 32 767

 

Alpha (string) formé de 2 parties de longueur fixe, une première traitée comme des lettres suivie d’une dont les caractères sont traités comme un nombre.

 

Nous sommes conscients que le format d’un identificateur alphanu­mérique est loin d’être universel. La solution que nous proposons est un compromis qui pourrait ne pas satisfaire bien des utilisateurs. Si un certain consensus pouvait émerger, il pourrait facilement être intégré dans cette application.

 

Assignation des identificateurs

 

Entier et petit entier : le nouvel objet reçoit comme identificateur le nombre suivant la valeur la plus élevée déjà assignée.

 

Alpha : le nouvel objet reçoit comme identificateur une chaîne formée de la partie « littérale » et du nombre converti en chaîne suivant celui trouvé dans le dernier enregistrement de la table.

 

Si l’assignation automatique d’identificateurs numériques permet d’éviter toute duplication du même nombre, il n’y a aucune garantie de la sorte pour les alpha car dans la même table il peut y avoir mélangés des identificateurs en partie identiques (ex. pour les lettres). L’utilisateur devra « gérer » lui-même cette situation.

 

Identificateurs manquant

 

Avant de permettre l’ajout d’objets, le programme vérifie si tout objet existant a bien un identificateur. En cas d’ID manquant, le programme demande s’il faut en assigner, l’utilisateur pouvant accepter ou refuser. La procédure est légèrement différente selon le type de l’identificateur.

 

Entier et petit entier : le programme offre comme premier identificateur le nombre suivant la valeur la plus élevée déjà assignée. L’utilisateur peut conserver cette valeur ou en choisir une plus élevée.

 

Alpha : l’identificateur du premier objet manquant est automatiquement formé par la chaîne de la partie « littérale » suivi du nombre converti en chaîne tels que entrés par l’utilisateur.

 

 

Installation et réglage

 

 

Installation

 

Le fichier .INI doit être placé dans le même répertoire que le MBX. Sinon, un nouveau fichier y sera créé mais avec le français comme seule langue.

 

Si les fichiers de documentation …_doc.txt et …_doc.htm et le répertoire d’images pour le htm …_files existent dans l’archive, ils doivent aussi être placés dans le répertoire de l’application. Il devrait y en avoir pour chaque langue.

 

Lancement

 

Le programme installe un sous-menu dans le menu OUTILS et crée une barre d’outils.

 

 

 

 

 

Réglage

 

Deux items du menu permettent d’ajuster la présentation de l’application :

 

Langue d’affichage permet de changer la langue utilisée dans l’application même (pas celle de MI ou de Windows !!!)

 

Barre d’outils permet de retenir la position préférée de la barre soit ancrée (la rangée de haut=0, la première position=0) soit flottante (X et Y en pouces à partir du coin supérieur gauche de l’écran)

 

 

Utilisation

 

 

La table à laquelle on doit ajouter des objets doit être ouverte.

 

1 – Menu « Définir table et colonne » ou Icône « Tableau »

 

1 - Choisir une table ouverte

2 – Type de la colonne ID

 

Identificateur Alphanumérique seulement

3 – Choisir colonne des ID

 

ID numériques : Si aucune colonne du type voulu (Integer ou smallint) n’existe, la procédure est interrompue.

 

ID alpha : Si aucune colonne de type char et de largeur = ou > à la somme des caractères des 2 parties n’existe, la procédure est interrompue.

 

 

Les icônes d’ajout deviennent actives

 

2 – Identificateurs manquant

 

 

Entiers : assignation automatique en augmentant de 1 la plus haute valeur trouvée dans la table.

 

 

 

 

 

 

 

 

Alpha :

L’utilisateur entre en respectant les nombres qu’il a

déjà choisis les caractères fixes et le nombre

(chiffres variables) de base.

 

Les nouveaux ID sont définis par la combinaison des caractères fixes et du nombre variable augmenté d’une unité pour chaque assignation. La procédure est arrêtée si la partie numérique dépasse la capacité imposée par le nombre de chiffres donné

 

 

3 – Ajout d’objets

 

Avant tout ajout avec ID alpha, l’application vérifie si la structure de l’ID du dernier enregistrement correspond à la définition (largeur totale et largeur de la partie numérique)

 

Avant tout ajout, l’application vérifie si table spécifiée est toujours accessible (ouverte), si non l’utilisateur devra redéfinir ses choix de table/colonne.

 

Les objets étant insérés dans la table spécifiée (insert into …) celle-ci n’a pas besoin d’être éditable. De plus, les données graphiques recueillies par l’outil de dessin sont converties au système de coordonnées de la table d’ajout. Rien n’empêche donc d’utiliser l’outil dans une autre fenêtre carte que celle dans laquelle la table d’ajout est affichée pour saisir les coordonnées. Rien n’oblige non plus que cette table soit visible, il lui suffit d’être ouverte.

 

 

Utiliser l’une des 4 icônes disponibles. Le style des objets ajoutés est celui des valeurs courantes et peut être changé par les boutons standards.

 

Vérifications en cours d’ajout :

 

Entiers : aucune. Il y a aura une erreur de système si la valeur de l’ID dépasse le maximum.

 

Petits entiers : procédure d’ajout interrompue par le programme si la valeur de l’ID dépasse le maximum permis

 

Alpha : si la valeur de l’ID dépasse le maximum possible dans la partie définie comme variable la procédure est interrompue.

 

4 – Fin des ajouts

 

L’utilisateur doit sauvegarder la table modifiée par lui-même

 

Les icônes restent accessibles jusqu’à ce que l’utilisateur commence la procédure de définition d’une nouvelle table (menu ou icône) et interrompe cette procédure.

 

Le menu et la barre d’outils peuvent être retirés par « Terminer … » du menu.