|
||||||||||||||||||||||||||||||||||||||||||||
|
Nous avons vu le mois dernier les différents types de variables que gère CanDo. Nous allons encore parler de variables et plus particulièrement des variables de type Array et Record. Pourquoi donc ? Pour utiliser CanDo afin de créer ses propres bases de données. Bien sûr, CanDo n'a pas pour vocation de générer uniquement des applications de ce type mais tout de même les résultats que l'on peut obtenir sont à mon avis très satisfaisants pour toutes les bases de données courantes (gestion des adresses, de ses disquettes, etc.). Comme il nous faut un exemple (et après réflexion !), j'en suis arrivé à la conclusion que je ne pouvais pas éviter de vous proposer de créer un gestionnaire d'adresses ! Et pour rendre à INOVAtronics ce qui leur appartient, je signale aux possesseurs de CanDo que le Deck "DBaseDeck" qui suit est l'adaptation française du "DBaseDeck" fourni en exemple avec CanDo. Ce Deck a une fonction toute simple : fournir l'ossature de vos futures bases de données. C'est ainsi qu'a été créé "MaBaseDeck" qui ne contient que ce qui a été rajouté à "DBaseDeck". Une base de données, c'est quoi ? C'est une collection d'informations, regroupées dans un enregistrement. Dans notre exemple, les informations sont : nom, prénom, adresse, code postal, ville, numéro de téléphone et de fax, et un commentaire. Ces informations qui constituent tous les éléments d'une adresse sont donc stockées dans un enregistrement. Il est évident qu'il va y avoir un nombre indéterminé (et variable) d'enregistrements en fonction de votre gestion des données, ajout ou retrait d'adresses. Dans un deuxième temps, la base de données devra pouvoir permettre d'utiliser les informations qu'elle contient, par exemple recherche d'une adresse à partir d'un nom, impression d'une série d'adresses, tri. Réponse de CanDo Les variables de type "Record" vont servir à regrouper ces informations. Et ceci avec un minimum de programmation. Comme CanDo est un langage orienté objet, chaque information de notre enregistrement va être un objet (ce n'est pas obligatoire). Le nom, le prénom, etc. sont des objets - champs de saisie - créés à partir de leur éditeur. La zone commentaire est un objet document de type mémo. On peut dire que l'enregistrement (la variable de type Record) ressemble à ceci : enregistrement = contenu du champ "nom" + contenu du champ "prénom" + contenu du champ "adresse" + ... + contenu du document "commentaire". Pour faire cela, une seule instruction suffit :
"GetDBaseOhject" va placer le contenu de chaque objet de la carte associé à la base de données dans "MaVariable" qui devient une variable de type "Record". Pour qu'un objet soit associé à une variable "Record", il suffit que le nom de cet objet commence par un "." (un point) ! C'est donc très facile à mettre en place. "GetDBaseObject" va prendre le contenu de tous les objets qui se trouvent sur la fenêtre de l'application et dont le nom commence par un point et les assemble dans la variable de type "Record". Si nous nous limitions aux objets nom, prénom et adresse, notre variable suite à "GetDBaseObject MaVariable serait" : MaVariable.Nom.Prénom.Adresse. D'un point de vue programmation, elle serait exploitable soit en entier, soit par éléments...
Mieux encore, vous pouvez combiner à volonté. Par exemple si vous désirez mettre les membres d'une même famille dans un même enregistrement, donc saisir plusieurs prénoms, vous pouvez créer la variable "Prénom[Index2]"...
Tous les objets que permet de créer CanDo ne peuvent pas être associés à une base de données. Ceux qui le peuvent sont les champs de saisie texte et nombre entier, les documents de type mémo, les boutons. Dans le cas des boutons (il n'y a pas de contenu), c'est l'état du bouton qui va être pris en compte, soit "On" si le bouton est sélectionné ou "Off" s'il ne l'est pas. Les instructions CanDo offre un ensemble d'instructions spécifiquement destinées à manipuler ces variables et donc à gérer la programmation de nos bases. Commandes agissant sur les variables "Record" : "GetDBaseObject" placer le contenu des objets dans une variable "Record", "SetDBaseObject" placer les informations d'une variable "Record" dans les objets correspondants. Commandes agissant sur les variables "Array" : "FirstArrayIndex" donne le plus petit index, "LastArrayIndex" donne le plus grand index, "NextArrayIndex" donne l'index suivant, "PreviousArrayIndex" donne l'index précédent, "NumberOfArrayEntries" donne le nombre d'entrées, "InsertArrayEntry" insère une entrée, "DeleteArrayEntry" efface une entrée. "SortArray" effectuer un tri, "SearchArray" faire une recherche, "SetSearchArrayFlags" fixer les critères de recherche. Commandes globales : "SaveVariable" sauver une variable, "LoadVariable" ouvrir (charger) une variable. Comment créer sa base à partir du Deck "DBaseDeck" Ouvrez le Deck "DBaseDeck", ajoutez-y les objets qui vont permettre de saisir les informations. Prenez juste soin que chaque nom d'objet commence par un "." (un point) ! Et c'est tout ! Améliorer ces deux exemples Le Deck "DBaseDeck" est une application minimum. Pour l'améliorer, vous pourriez ajouter une fonction de tri, une fonction de recherche (les routines sont déjà là), un script pour déplacer le curseur sur le champ suivant à chaque fin de saisie, un menu "Imprimer", un bouton "Début de Fichier" et un autre "Fin de Fichier", un menu "Sauver ASCII" afin d'exporter vos enregistrements vers un traitement de texte... Deck "DBaseDeck" ![]() ![]() ![]() ![]() ![]() ![]()
|