Chronique du débutant – Première partie
L'interface de dBASE
un environnement de développement intégré (EDI)
par Jean-Pierre Martel, rédacteur en chef du dBulletin

Introduction

Le présent document est le premier d'une série destinée à aider le néophyte à prendre en main dBASE à des fins de programmation. Cette série vous aidera à réaliser à quel point dBASE est une technologie à la fois remarquablement puissante et conviviale, vous permettant d'inscrire, de classer et de trouver l'information dont vous avez besoin. De plus, dBASE vous permet de créer des logiciels sous Windows et de les distribuer sans avoir à payer de royautés.

Les documents de cette série concerneront les versions les plus récentes de dBASE. Celles-ci se distinguent essentiellement des versions précédentes par une nouvelle manière d'accéder aux données conforme à la programmation orientée objet.  Toutefois, puisque toutes les versions de dBASE sous Windows sont d'aspect à peu près identique, plusieurs de nos chapitres seront également valables pour les utilisateurs de Visual dBASE 5.x (dans la mesure du possible, nous essayerons d'indiquer là où les versions diffèrent). Il est à noter que dans le présent document, toutes les illustrations se rapportent à la version anglaise de ce logiciel puisqu'il n'existe pas de traduction française de la version 7 (la dernière traduction française remonte à la version 5.5).

Le but de la présente série n'est pas de constituer la bible de dBASE mais plutôt de vous présenter l'essentiel de ce que le novice devrait savoir afin d'utiliser efficacement ce logiciel.

L'interface de dBASE

dBASE est d'abord et avant tout un langage programmation sur lequel se greffe une interface. Cette dernière facilite l'apprentissage et l'utilisation du logiciel mais, à l'exclusion de l'Éditeur de code (que nous verrons plus loin), elle ne permet pas de réaliser toute l'étendue des possibilités offertes par le dBL (le langage de programmation des logiciels à 32 bits de dBASE Inc.). Une fois cette réserve exprimée, on doit admettre (sans doute pour ne pas vous décourager) qu'il est possible de créer des applications simples avec une connaissance rudimentaire du dBL, comme nous le verrons dans le chapitre consacré au concepteur d'interface utilisateur (appelé Concepteur de formulaire).

Au lancement de dBASE, l'interface de ce dernier comprend les éléments suivants :

Les menus

L'exploration des menus est une bonne manière à la fois de découvrir la richesse de leur contenu et d'apprendre leurs raccourcis. Ce logiciel réserve toutefois quelques surprises puisque ses menus diffèrent selon le contexte. Par exemple, lorsque qu'on utilise le concepteur d'interface utilisateur, des items spécifiques apparaissent aux menus et des palettes flottantes appropriées surgissent. Par conséquent, lorsque vous serez devenus familiers avec dBASE, ne vous surprenez de découvrir des items aux menus qui n'auront pas attiré votre attention jusque là.

À part quelques macros, les applications sous Windows (traitements de texte, les chiffriers, les utilitaires, etc.) créent généralement peu de sortes de fichiers. Au contraire, les logiciels de programmation, dont dBASE, se distinguent par la grande variété de types de fichiers qu'ils créent. Ainsi dBASE crée des tables, des programmes, des requêtes, des fenêtres et des états, soit des éléments qui ont peu de choses en commun. Cette variété explique les dix-neuf sortes de fichiers parmi lesquels il faut choisir dans File|Open et les quatorze choix qui sont offerts à la sauvegarde d'un document dans l'Éditeur de code de dBASE.

La Barre d'outils

Les symboles qui apparaissent sur les boutons de la Barre d'outils sont suffisamment explicites pour que je ne m'y attarde pas. Lorsque vous ignorez la fonction d'un de ces boutons, il suffit de placer quelques instants le curseur de la souris au-dessus de ce bouton pour qu'une info-bulle vous en précise le rôle. Tout comme les menus, de nouveaux outils complètent cette Barre d'outils selon le contexte.

Pour décider quels seront les outils à votre disposition dans les divers modules de dBASE, choisissez dans le menu l'item View|ToolWindows|Customize ToolWindows… Sous le premier onglet de la boîte à onglets qui apparaîtra, des cases à cocher vous permettent d'effectuer ce choix et de décider de l'aspect des boutons. On accède directement à cette boîte de dialogue en cliquant sur la Barre d'outils avec le bouton droit de la souris.

La Barre d'outils peut être transformée en palette flottante : à l'aide de la souris, il suffit de la saisir par son extrême gauche, les séparateurs ou la surface sous ses boutons, puis la déposer n'importe où sur la surface de travail. Une fois transformée en palette flottante, on peut la remettre à sa place ou la faire disparaître en cliquant le «x» dans son coin supérieur droit. On la fait réapparaître (ou disparaître, selon le cas) à volonté par le biais du menu View|ToolWindows|Standard Toolbar (voir l'illustration ci-dessus).

Le Navigateur

Le Navigateur de dBASE joue le même rôle que l'Explorateur de Windows. Tout comme avec ce dernier, l'utilisateur peut choisir, par le biais du menu View (qui signifie «Vois»), de modifier l'apparence et l'ordre des fichiers qui y sont représentés.

NavigatorÀ gauche, nous avons numéroté les parties du Navigateur afin de faciliter la compréhension du texte. Ainsi le bouton Ž du Navigateur permet de changer de répertoire de travail (affiché en Œ). Lorsqu'on clique le bouton , on ouvre la liste déroulante des derniers répertoires de travail (déplacez le curseur de votre souris au-dessus de l'image pour ouvrir cette liste déroulante) : il suffit de cliquer sur le nom de l'un des répertoires en pour y retourner. Les onglets en affichent sélectivement certain types de fichiers présents dans ce répertoire afin d'aider à trouver ce que vous y cherchez. L'onglet Other (ce qui signifie «Autre») est le seul qui vous permet de choisir les types de fichiers affichés dans le Navigateur. Lorsque le curseur est à l'intérieur de cette liste de fichiers (numérotée ), on n'a qu'à taper une lettre pour que soit sélectionné le premier fichier dont le nom commence par cette lettre.

On remarquera que le premier item dans cette liste de fichiers est toujours Untitled (qui signifie «Sans nom»). Il vous offre un moyen pratique de créer un nouvel item. Il suffit de double cliquer sur Untitled (ou de le sélectionner puis d'appuyer sur la touche Entrée) pour que l'Éditeur de code (dans le cas d'un programme) ou qu'un assistant (dans la plupart des autres cas) apparaisse.

Lorsque double-click sur un item autre qu'Untitled, on provoque plutôt l'exécution de cet item. Deux exceptions à cette règle : on ouvre la visionneuse dans le cas d'une image et on fait jouer les fichiers wave. Cliquer avec le bouton droit de la souris fait apparaître un menu contextuel.

Lorsque le Navigateur n'est pas visible à l'écran, cela peut être dû à l'une ou l'autre parmi les causes suivantes. Premièrement, on peut avoir fermé la fenêtre du Navigateur. Si tel est le cas, son nom n'apparaît pas dans la liste numérotée des fenêtres ouvertes, au bas de l'item Window du menu : on ouvre alors le Navigateur en choisissant l'item View|Navigator. Deuxièmement, le Navigateur peut être ouvert mais être masqué par une autre fenêtre  : en pareil cas, utilisez soit View|Navigator ou Window|Navigator pour le ramener au premier-plan (note : le raccourci Ctrl–F6 peut aussi faire l'affaire, à la différence près qu'il ne rétablit pas la taille du Navigateur s'il est minimisé). Troisièmement, le Navigateur peut être quelque part, hors de vue, dans la zone de travail : il faut alors utiliser les barres de défilement pour le trouver. En désespoir de cause, fermez dBASE, détruisez le fichier vdb.ini ou db2k.ini (dans le sous-répertoire /BIN de dBASE) et chargez dBASE : ce dernier créera un fichier .ini par défaut, ce qui disposera le Navigateur comme au premier chargement.

Pour le bénéfice de ceux qui ne comprennent pas l'anglais, de gauche à droite, les onglets du Navigateur sont successivement : Tous, Registres d'application, Fenêtres, États, Programmes, Tables, SQL, Modules de données, Images, Autres.

La Fenêtre de commande

La Fenêtre de commande se divise en deux parties : le panneau de commande (en haut) et le panneau des résultats (en bas). Cette Fenêtre de commande est un des nombreux avantages de dBASE (et de ses clones) sur d'autres logiciels de programmation. En effet, il suffit d'y dactylographier n'importe quel ordre pour l'exécuter immédiatement, sans avoir donc à créer un programme, à le compiler et à l'exécuter. On peut donc tester une ligne de code et savoir immédiatement si elle donne le résultat recherché.

On peut changer la police de caractère utilisée dans le panneau des résultats par le biais du menu Properties|Command Window Properties (si ce choix n'apparaît pas au menu, c'est que le curseur n'est pas dans la Fenêtre de commande). On accède également à la boîte à onglets Command Window Properties en cliquant la Fenêtre de commande avec le bouton droit de la souris. Le premier onglet à gauche vous permet aussi de choisir la disposition du panneau des résultats. On efface le contenu du panneau des résulats par la commande clear tapée dans la Fenêtre de comande, ou par l'item Edit|Clear All Results, ce qui signifie «Éditer|Effacer tous les résulats» (cet item est disponible quand le curseur est dans la Fenêtre de commande).

Je vous invite immédiatement à faire l'exercice suivant. Nous allons modifier le texte qui apparaît dans la barre de titre : nous allons y inscrire votre nom. N'ayez crainte, ce changement ne durera que le temps de la présente séance de travail sous dBASE; il aura disparu la prochaine fois que vous y reviendrez. D'abord cliquez n'importe où dans la fenêtre de commande pour y placer le curseur. Puis dactylographiez le texte suivant, en y remplaçant mon nom par le vôtre entre les guillemets anglais (n'oubliez ni les guillemets, ni le souligné à gauche de app : il s'agit de _app et non d'app). Au lieu des guillemets anglais, le dBL accepte également des apostrophes ' ', des crochets [ ], mais pas des guillemets français « ». Les accolades {  }, quant à elles, ont un sens particulier. Nous y reviendrons. Si vous craignez de vous tromper en tapant le code, vous pouvez capter le texte à l'aide de la souris et faire du couper-coller à partir du dBulletin vers la Fenêtre de commande.
 
 
_app.frameWin.text = "Jean-Pierre Martel"
   

Votre nom (ou le texte que vous aurez choisi d'y mettre) apparaît maintenant dans la Barre de titre. Ceux parmi vous qui connaissez déjà d'autres langages de programmation, remarquerez qu'on n'a pas besoin de terminer une ligne de commande par un signe (par exemple un point-virgule). En effet, pour dBASE, le retour du chariot suffit à comprendre que la ligne de commande est terminée et qu'il lui faut l'exécuter. On n'a pas besoin non plus de mots (ex. :  sub/end sub) ou des signes (ex. : des accolades, {}) pour indiquer là où débute et là où se termine le code à exécuter, comme c'est le cas avec d'autres langages de programmation. Le dBL se distingue donc par son peu de formalité, et dBASE, par sa perspicacité.

Maintenant nous allons faire mieux : nous allons donner l'ordre à dBASE de se minimiser, c'est-à-dire de disparaître à l'écran pour se loger simplement dans la barre des tâches de Windows :
 
 
_app.frameWin.windowState = 1
   

Cliquez sur le rectangle portant votre nom dans la barre des tâches (rappelez-vous  : vous avez changé le nom de dBASE pour le vôtre) pour que l'application retrouve sa taille originelle.

Vous remarquerez dans l'exemple précédent, que la valeur à attribuer à _app.frameWin.windowState, soit 1 n'a pas besoin d'être entre guillemets. Pourquoi ? Parce que nous avons affaire ici à un nombre. Les valeurs numériques n'en prennent pas. Alors pourquoi la première partie de l'équation ne prend-elle pas de guillemets puisqu'il s'agit d'un texte ? Parce que seules les valeurs textuelles en prennent. dBASE distingue le nom des variables et des propriétés sur lesquelles il agit, de leurs valeurs respectives par les guillemets que prennent ces dernières lorsqu'elles contiennent du texte.

Prenons l'exemple illustré dans la zone grise, plus bas. Dans la Fenêtre de commande, créons une variable x et attribuons-lui une valeur de 2. Si vous tapez ? x (c'est à dire si vous demandez quelle est la valeur de x), le panneau des résultats affichera évidemment 2. Si vous tapez ensuite x = x + 1 (x vaut sa valeur antérieure majorée de 1 — en d'autres mots, on ajoute 1 à la valeur existante de x), ? x donnera maintenant 3. C'est évident. Par ailleurs, si on écrit x = "2", puis x = x + "1", la valeur de x sera de "21". Non pas le chiffre 21 mais l'alliage de deux signes alphanumériques dont dBASE ne cherche même pas à connaître la signification. Pour dBASE, ajouter un "1" au bout d'un "2", c'est comme ajouter "2001" à "année " (ce qui donne "année 2001"). Cette distinction est essentielle.

Note : il y a plusieurs moyens d'ajouter des remarques au code dBL. Lorsqu'on place deux barres obliques successives, celles-ci, de même que tout texte à leur droite, sont ignorés par les versions récentes de dBASE.  Au niveau de Visual dBASE 5.x, on utilisera plutôt deux esperluettes (&&, appelées également «Et commercial»).
 
 
x = 2
? x           // résultat : 2
x = x + 1
? x           // résultat : 3

x = '2'
? x           // résultat : '2'
x = x + '1'
? x           // résultat : '21'
 

Si cette distinction vous semble compliquée, consolez-vous à la pensée que dans beaucoup d'autres langages de programmation, c'est pire. En effet, il est impossible de transformer à la volée une variable numérique en variable alphanumérique (c'est à dire contenant du texte) comme nous venons de le faire. Non seulement ces langages auraient-ils exigé que nous leur déclarions à l'avance notre intention d'utiliser une variable numérique, mais nous aurions à la détruire avant de leur déclarer de nouveau notre intention d'utiliser une autre variable (portant le même nom) de type alphanumérique. Ce recyclage de variables à la volée et cette souplesse sont typiques du dBL.

Par ailleurs, dBASE insiste sur un minimum de formalités destinées à éviter les ambiguïtés. Ainsi dans l'exemple qui suit, la deuxième ligne crée une variable appelée achats et lui attribue, non pas le texte “inventaire”, mais plutôt la valeur contenue dans la variable de ce nom, créée précédemment.
 
 
inventaire = 5
achats = inventaire
? achats       // résultat : 5
   

Nous allons profiter de cette présentation de la Fenêtre de commande pour vous permettre de réaliser votre premier «vrai» programme sous Windows. Vous allez créer une boîte de dialogue comprenant un titre, un message, de même qu'un bouton. Il suffit de dactylographier (note : ne pas insérer d'espace entre MsgBox et l'ouverture de la parenthèse) :
 
 
MsgBox("Je programme maintenant sous Windows", " Bravo !")
   

Vous rendez-nous compte comment il est facile de programmer en dBL ? Une seule ligne de code suffit pour faire tout cela.

Notre dernier exemple est une série d'instructions qu'on ne peut exécuter dans la Fenêtre de comande mais qui s'exécutent parfaitement bien à l'intérieur d'un programme. Ici nous avons numéroté les lignes de code afin d'en faciliter l'explication.

La ligne 01 crée une variable x et lui attribue une valeur de deux. Comme vous le savez déjà (enseigner est l'art de répéter), si nous avions voulu que cette variable contienne du texte, il aurait fallu mettre ce texte entre des guillemets anglais, par exemple x = "dix, en chiffre romain". La ligne 02 sera lue mais permettra l'exécution de la ligne suivante que dans l'éventualité (if signifie «si») où x vaut deux, ce qui est le cas. La ligne 04 (else signifie «sinon»)  aurait permis l'exécution de la ligne 05 si la variable avait eu toute autre valeur que deux. La ligne 06 avise dBASE de la fin du bloc d'instructions conditionnelles.
 
 
01  x = 2
02  if x = 2
03    msgBox("x vaut bien 2")
04  else
05   msgBox("x ne vaut pas 2")
06  endif
   

La Fenêtre de commande arrêtera l'exécution de ce code à la ligne 02 et provoquera l'apparition du message Error : missing ENDIF (ce qui signifie littéralement «Erreur : FIN_DE_SI manquante»). Pourquoi ? Parce que dBASE analyse toujours la syntaxe des instructions qu'il doit exécuter avant de procéder. Lorsqu'il s'agit d'un programme, dBASE analyse l'ensemble du programme et s'arrête à la première erreur décelée, le cas échéant. Dans la Fenêtre de commande chaque ligne de code est exécutée immédiatement, dès qu'on appuie sur la touche Entrée. Puisque ENDIF doit toujours suivre IF sans faire partie de la même commande, alors que faire ?

Pour obtenir le même résultat à partir de la Fenêtre de commande, on peut taper chaque instruction (en ignorant les messages d'erreur qui pourraient apparaître), sélectionner le tout et appuyer sur la touche Entrée. Une autre solution consiste à taper bout à bout les lignes de code en prenant soin de les séparer par un point-virgule. On utilise entre autres ce signe de ponctuation pour combiner plusieurs instructions en une seule ligne de code. Ainsi, le code à taper sera donc le suivant :
 
 
x = 2; if x = 2; msgBox("x vaut bien 2"); else; msgBox("x ne vaut pas 2"); endif
   

Vous conviendrez avec moi que ce code est plus facile à défricher dans le premier exemple que dans le deuxième. De plus, il est ennuyeux que la Fenêtre de commande n'offre pas de moyen de conserver le code qui y est dactylographié. Voilà donc deux bonnes raisons de recourir à l'Éditeur de code, spécialement conçu à cette fin.

Puisque les origines de dBASE remonte au millénaire précédant, il traîne une longue histoire, alors que Windows n'existait pas encore. Afin de satisfaire les habitudes des utilisateurs de dBASE pour le DOS, ce logiciel reconnaît des raccourcis faisant appel aux touches de fonctions F3 à F9. Elles ne fonctionnent que lorsque le curseur est dans Fenêtre de commande. Personnellement, je ne me sers que de F6 et F7. Les autres touches de fonctions, soit  F2, F11 et F12, sont inactives dans la Fenêtre de commande.
 
     
  F1  Help // l'aide en ligne
  F3  list // affiche la liste des enregistements (une table doit être ouverte)
  F4  dir // affiche la liste les tables présentes dans le répertoire courant
  F5  display structure // affiche la structure (une table doit être ouverte)
  F6  display status // affiche les paramètres de dBASE
  F7  display memory // affiche les variables de dBASE en mémoire
  F8  display // affiche l'enregistrement courant (une table doit être ouverte)
  F9  append // ajoute un nouvel enregistrement (une table doit être ouverte)
     

Note : On peut répéter un ordre dans la Fenêtre de commande en appuyant sur la flèche du haut et sur la touche Entrée. Cela est très utile lorsqu'on a commis une faute de frappe. Faites l'essai suivant. Appuyez d'abord sur F6, puis dans la Fenêtre de commande, appuyez sur la flèche du haut. Le curseur se déplacera au début de la ligne de code Display Status. Toutefois, avant d'appuyer sur Entrée, allez à la fin de cette ligne et ajoutez « to printer», de manière à ce que la ligne de code se lise maintenant comme suit : display status to printer. Puis maintenant appuyez sur Entrée : le texte sera imprimé en plus d'apparaître dans le panneau des résultats.

L'Éditeur de code

Certains logiciels de programmation créent des fichiers binaires qui ne peuvent être lus que par ces logiciels. Ce n'est pas le cas de dBASE. À l'exclusion des tables et du code compilé, tous ses fichiers créés par dBASE sont des fichiers texte (de type ASCII ou ANSI) dotés de suffixes particuliers qui n'ont pour but que d'identifier ce à quoi il servent : les états (*.rep), les fenêtres (*.wfm), les modules de données (*.dmd), les programmes (*.prg), tous sont des fichiers textes. À toutes fins pratiques, la seule différence entre un texte de format ASCII et un autre de type ANSI concerne les voyelles accentuées. Ces dernières ne sont reconnues correctement par les traîtements de texte sous Windows que lorsqu'il s'agit d'un texte de format ANSI. Par défaut, dBASE crée des fichiers ANSI.

En principe, on appelle l'Éditeur de code afin de créer ou de modifier un programme, c'est-à-dire un fichier .prg. Dans les faits, l'utilisateur expérimenté l'appelle également pour retoucher le code d'autres types de fichiers dBASE (ce que je déconseille aux néophytes). Par le biais du menu, on fait apparaître l'Éditeur de code en choisissant l'item File|New|Program. Si vous choisissez File|New|Form ou tout autre choix, c'est un concepteur graphique spécifique qui apparaîtrait plutôt que l'Éditeur de code.

Par ailleurs, si vous ouvrez un programme par le biais de l'item File|Open du menu (ou de son raccourci Ctrl–o, ou encore en appuyant sur le bouton équivalent de la Barre d'outils), au bas de la boîte de dialogue qui s'ouvrira, assurez-vous que le bouton radio Open in Source Editor (ci-dessous) soit bien sélectionné sinon vous exécuterez ce programme au lieu de le charger dans l'Éditeur. Lorsque le curseur était dans la Fenêtre de commande immédiatement avant l'ouverture de la Fenêtre Open File, cette dernière vous proposera d'ouvrir des fichiers .wfm. Lorsque le curseur était plutôt dans la Fenêtre du Navigateur, la Fenêtre Open File vous proposera alors d'ouvrir le type de fichiers affiché dans le Navigateur.

Dans la boîte de dialogue ci-dessus, vous remarquerez la coexistence du français et de l'anglais. Ce bilinguisme caractérise l'utilisation d'une version anglaise de dBASE sous une version française de Windows, et révèle les ressources du système d'exploitation auxquelles dBASE fait appel.

On peut également charger un fichier dBASE dans l'Éditeur de code en choisissant le nom de ce fichier dans le Navigateur et en appuyant soit sur F12, ou soit sur le bouton droit de la souris et en choisissant l'option Open in Source Editor dans le menu contextuel qui apparaît alors. Lorsqu'aucun nom de fichier n'est sélectionné dans le Navigateur, ou lorsque le mot Untitled est un surbrillance, la touche F12 ouvre une fenêtre vide de l'Éditeur. Rappelez-vous du raccourci F12; c'est un de ceux que vous utiliserez le plus souvent.

Truc : Lorsque plusieurs fenêtres sont ouvertes (Navigateur, Fenêtre de commande, Éditeur de code, etc), on peut passer successivement de l'une à l'autre par le raccourci Ctrl–F6.

Pour terminer, on appelle aussi l'Éditeur en dactylographiant dans la Fenêtre de commande :
 
 
Modify command Mon_programme
// ou
Modify command "Mon programme"
// ou
Modify command // pour ouvrir une fenêtre vide de l'Éditeur de code
   

Truc : dBASE ne lit que les quatre premières lettres de ses commandes. Ce qui signifie que «modify commandMon_programme» équivaut à «modi comm Mon_programme». Évidemment, à la suite de la commande abrégée, il faut dactylographier au long le nom du programme à exécuter.

Dans le cas des fichiers .prg, il n'est pas nécessaire de préciser leur extension puisqu'ils sont chargés par défaut. Par contre, on doit préciser l'extension de tout autre type que l'on voudrait charger dans l'Éditeur de code. Si Mon_programme n'existe pas, l'Éditeur de code présume que vous désirez créer un nouveau programme. Lorsque le nom du programme contient un espace, comme c'est le cas dans le deuxième exemple, ce nom doit être mis entre guillemets. Il est à noter que les utilisateurs de Visual dBASE 5.x doivent choisir un nom de programme ayant un maximum de huit lettres puisque, comme toutes les applications à 16 bits, cette version ne reconnaît pas les noms plus longs.

Puisque les fichiers dBASE (sauf, rappelons-le, les tables et le code compilé) sont des fichiers textes, ceux-ci peuvent être lus et modifiés par n'importe quel éditeur de texte (même par l'humble Notepad de Windows), à la condition expresse que le texte sauvegardé par cet éditeur demeure en format texte. C'est ce qui explique que dBASE vous propose son Éditeur de code mais ne vous l'impose pas. Vous pouvez en choisir un autre à votre goût par le biais du menu, à l'item Properties|Desktop Properties. À noter : lorsque vous choisissez cet item, la Fenêtre de commande écrit SET pour vous indiquer le raccourci qui mène directement à la boîte à onglets Desktop Properties.

Avant d'opter pour un autre éditeur de texte, pensez-y bien. L'Éditeur de code de dBASE possède plusieurs avantages. L'un d'eux est la coloration syntaxique. Pour l'amour du Ciel, me direz-vous, que signifie cette expression ? Elle signifie que l'Éditeur reconnaît la syntaxe du dBL et colore le code que vous écrivez, de manière à en faciliter la lecture. On accède aux propriétés de l'Éditeur de code par le biais du menu, à l'item Properties|Source Editor Properties (voir l'image plus bas). Si cet item n'apparaît pas au menu, c'est que le curseur s'est pas dans le panneau de droite de l'Éditeur de code.

Lorsque cet éditeur est déjà ouvert, il suffit de cliquer sur celui-ci avec le bouton droit de la souris pour accéder directement à cette boîte à onglets. Sous le premier d'entre eux, cochez la case Use syntax highlighting si elle ne l'est pas déjà. À noter également, en bas, à gauche, les boutons radio qui feront que l'Éditeur sauvegardera le code sous forme de texte ASCII (DOS text) ou ANSI (Windows text). C'est seulement lorsque cette dernière option est choisie que les caractères accentués présents dans votre code peuvent être lus correctement par les autres éditeurs de texte sous Windows.

Les choix disponibles sous le deuxième onglet (non représentés ci-dessous) concernent, entre autres, la police de caractères du code affiché dans l'Éditeur. Le troisième onglet vous permet de choisir la palette de couleurs de la coloration syntaxique.

Cette coloration syntaxique donne le résultat ci-dessous. À noter, un deuxième avantage de l'Éditeur de code de dBASE est ce panneau de gauche qui donne l'arborescence du code. Cet arborescence est particulièrement utile lorsqu'on édite le code d'une fenêtre; tous les objets qu'elle renferme y apparaissent, représentés par un icône (boîte de saisie, grilles, images, textes, etc.). Contrairement au panneau de droite, qui respecte votre code, l'arborescence à gauche liste vos objets par ordre alphabétique sous l'item objects, puis les fonctions, également par ordre alphabétiques, sous l'item methods). La seule exception à cette règle concerne un type spécial d'objet appelés contenants (car ils contiennent d'autres objets) : ces objets disposent de leur propre embranchement dans lequel se retrouvent les objets qu'ils renferment (voir le «+» ci-dessous).

Si vous modifiez le nom que dBASE attribue par défaut aux objets que vous placez dans une fenêtre, il est peut-être souhaitable de conserver des premières lettres afin d'identifier le type d'objet dont il s'agit (un conseil que je n'ai pas respecté parfaitement ici, comme vous pouvez le constater).

On fait disparaître et réapparaître ce panneau de gauche par le raccourci Ctrl–F9 ou en cliquant dans le panneau de droite avec le bouton droit de la souris et en choisissant l'item Open|Close TreeView (qui signifie «Ouvre|Ferme l'arborescence»).

Après avoir cliqué quelque part dans le panneau de gauche, il suffit d'appuyer sur une lettre du clavier pour se rendre au premier objet dont le nom commence par cette lettre et d'afficher son code dans le panneau de droite. Si vous dactylographiez rapidement, cette recherche sera incrémentielle, c'est à dire quelle tiendra compte non seulement de la première lettre, mais également des suivantes. La touche de retour en arrière saute à un niveau plus haut dans l'arborescence alors que la flèche de gauche, aura un comportement simulaire sauf qu'elle fermera l'embranchement s'il est ouvert. Le flèche de droite fera le contraire. Les flèches du bas et du haut déplacent le curseur à l'objet suivant ou précédent. La touche «+» du pavé numérique ouvre un embranchement tandis que la touche «-» fait l'inverse (leurs équivalents en haut du clavier ordinaire ne font rien). On peut passer du panneau de gauche à celui de droite en appuyant une seule fois sur la touche de tabulation. Si vous appuyez une seconde fois, vous ajouterez une indentation à votre code.

Le panneau de droite possède les raccourcis communs à tous les éditeurs de Windows et sur lesquels je n'insisterai pas. Je précise ci-dessous quelques raccourcis particuliers.
 
 
Ctrl–r                  Remplace le texte...
Ctrl–t                  Détruit le mot ou la partie de mot à droite
Ctrl–retour en arrière  Détruit le mot ou la partie de mot à gauche
Ctrl–y                  Détruit la ligne
Ctrl–g                  Saut à la ligne...
   

On peut charger plusieurs fichiers simultanément dans l'Éditeur : ils apparaissent alors sous leurs onglets respectifs. Chaque fois que vous y chargez un fichier autrement que par l'intermédiaire de la Fenêtre de commande, celle-ci affiche la commande équivalente, soit modify command suivi du nom du fichier.

On rédige un programme en dactylographiant successivement les ordres que l'on veut donner à dBASE. Ceux qui ont connu les fichiers de commandes (batch files) sous le DOS y verront à juste titre une ressemblance. En fait, c'est pareil, sauf que le dBL est considérablement plus puissant.

Lorsque le programme est terminé, on le sauvegarde en choisissant File|Save au menu (ou en appuyant sur Ctrl–s ou encore sur le bouton approprié de la Barre d'outils).

Pour fermer cet éditeur, vous avez le choix entre :

Si vous choisissez l'une ou l'autre des quatre premières méthodes, une boîte de dialogue vous demandra si vous désirez conserver les changements apportés. Si vous utilisez Ctrl–w, dBASE fermera l'Éditeur et sauvegardera le document par la même occasion.

On exécute un programme en cliquant sur son nom dans le Navigateur (sous l'onglet des programmes) et en appuyant soit sur la touche F2 ou sur le bouton run (ce qui signifie «exécute») dans la Barre d'outils. De la fenêtre de commande, on exécute un programme appelé «Mon_programme» en dactylographiant :
 
 
do Mon_Programme
   

En anglais, do signifie «fais» (comme dans «Fais tes devoirs !»). Le dBL utilise très souvent des mots et des verbes de l'anglais courant, ce qui le rend particulièrement facile à comprendre pour ceux qui connaissent cette langue.

Il est à noter qu'une application ne démarre pas nécessairement en exécutant un .prg (un programme). Révolue est l'époque où un programme constituait le moteur d'une application tandis que les écrans étaient de simples façades. De nos jours, un fichier .wfm  (une fenêtre) est un authentique programme. On peut donc démarrer une application par :
 
 
do Ma_fenêtre.wfm
   

On peut quitter dBASE comme on peut le faire pour n'importe quelle application sous Windows. Toutefois, le dBL possède, en plus, une manière qui lui est propre : en tapant quit dans la Fenêtre de commande.

L'aide

Face à l'absence totale de manuel disponible en librairie relativement au Visual dBASE 7 (le seul manuel anglais s'achète directement de l'éditeur ou accompagne l'achat de Visual dBASE 7.5), dBASE compense par une abondante documentation électronique gratuite. Cette documentation est disponible sous l'item Help du menu.

Une première manière d'obtenir de l'aide est de sélectionner un mot (c'est-à-dire le mettre en surbrillance) et d'appuyer sur la touche F1 : on accède directement à la rubrique de ce mot dans l'aide on ligne. Personnellement, il n'y a pas une journée sans que je consulte l'aide en ligne de dBASE. Comment s'épelle exactement telle propriété ? Quelle sont les fonctions disponibles pour telle classe d'objet ? J'utilise surtout l'index de l'aide en ligne par son raccourci Maj–F1. Cet index dispose de ce j'appelle un limier (par analogie au canin) et qu'on appelle seeker en anglais : il suffit de taper les premières lettres (pas seulement la première comme c'est le cas pour les listes déroulantes), pour que soit trouvée la rubrique dont le nom commence par ces lettres. De la Fenêtre de commande, on peut invoquer une rubrique d'aide en tapant le mot help (qui signifie «aide») suivi du nom de la rubrique que l'on désire consulter.
 
 
help if
   

La Banque de connaissance (Knowledgebase) est une mine d'or pour ceux qui parlent anglais. On la trouve sur le CD-ROM de Visual dBASE 7.5, de même que sur le site Web de dBASE Inc. Dans sa section destinée aux débutants (Beginners), j'attire votre attention sur deux documents indispensables  : premièrement OODML.how écrit par le Président de dBASE Inc., et deuxièmement le didacticiel intitulé An Application tutorial, rédigé par M. Ken Mayer, un expert de réputation mondiale.

À mon humble avis, la manière idéale d'apprendre dBASE passe successivement par les étapes suivantes :
— cette série d'articles pour débutants;
— le didacticiel de M. Ken Mayer;
— le manuel Getting Started de Ted Blue;
— le guide du programmeur (accessible à partir du menu);
— les cours du professeur Mike Nuwer ou de Ted Blue;
— les fiches techniques (How documents) de M. Ken Mayer, disponibles dans la Banque de connaissance (dans les sections Beginner, Intermediate et Advanced);
— les articles du dBulletin qui ne font pas partie de la série pour débutants;
— l'abonnement aux forums de discussion de dBASE Inc. (news.dbase2000.com)

Avec l'achat de Visual dBASE, vous devriez avoir reçu un volumineux cartable renfermant le Guide de référence. Sa version électronique est disponible au menu.

In the Knowledgebase (in the General section), you will find the dUFLP Code Library. It is full of utilities, many of whom are essential to experienced developers. The form Library.wfm is its index.

Si vous êtes néophyte sous dBASE mais êtes familier avec d'autres logiciels xBASE (Clipper, par exemple), vous trouverez dans The Xbase Files Magazine beaucoup de renseignements utiles.

De plus, dans le répertoire où vous avez installé le Borland Database Engine (BDE), se trouvent le fichier d'aide Localsql.hlp (relatif au langage SQL), de même que BDE32.hlp (relatif au BDE). Dans le répertoire où vous avez installé dBASE, un sous-répertoire appelé MSHelp devrait contenir plusieurs fichiers d'aide relatif à Windows destinés aux programmeurs chevronnés.

Pour terminer, une fois que vous aurez apprivoisé dBASE, je vous invite à prendre connaissance des ressources disponibles sur le réseau des sites qui lui sont consacrés (dBASE Web Ring).

À retenir


L'auteur désire remercier Mme José Faux, Mme Agathe Shooner et M. François Ghoche pour leurs suggestions.

Visual dBASE™ et dBASE™ sont des marques de commerce de dBASE Inc. Windows™ est une marque de commerce de Microsoft.

© 2001 — MGA Communications. Le présent document peut être reproduit librement à la condition expresse que le texte et ses illustrations ne subissent aucune modification sans le consentement de l'auteur.


Bibliographie
  1. Anonyme. Developer's Guide. Scotts Valley: Borland International. 1997.
  2. Anonyme. Guide de référence - Visual dBASE. Scotts Valley: Borland International. 1995: 1228.
  3. Anonyme. Guide du programmeur - Visual dBASE pour Windows. Scotts Valley: Borland International. 1995: 458.
  4. Anonyme. Language Reference. Vestal (New York): dBASE, Inc. 2000.
  5. Blue T. The dBASE Developer: Book 1 - Getting Started. San Diego: Blue Star Press. 1999.
  6. Coombs T and Coombs J. dBASE 5 for Windows Programming for DUMMIES. San Mateo: IDG Books Worldwide, Inc. 1994: 383.
  7. Green CR. Crash Course in dBASE 5.0 for Windows Programming. Indianapolis: Que Corporation. 1994: 283.
  8. Groh M et al. Killer dBASE 5 for Windows. Indianapolis: Que Corporation. 1994: 1019.
  9. Hovis T. dBASE 5 for Windows Developer's Guide.  Indianapolis: Sams Publishing. 1994: 568.
  10. Irwin MR. Visual dBASE programming. Upper Saddle River (New Jersey): Prentice Hall PTR. 1996: 725.
  11. Johnson Y et  al. Using Visual dBASE 5.5. Second edition. Indianapolis: Que Corporation. 1995: 750.
  12. Mahar P and Escobar E. Visual dBASE 5.5 Unleashed. 2nd edition.  Indianapolis: Sams Publishing. 1996: 963.
  13. Palmer S. dBASE for Windows for DUMMIES. San Mateo: IDG Books Worldwide, Inc. 1994: 316.
  14. Parsons J et al. Inside dBASE 5 for Windows. Indianapolis: New Riders Publishing. 1994: 1189.
  15. Rinehart ML. Learn Visual dBASE Programming: a hands-on guide to object-oriented database programming. Reading (Massachusetts): Addison-Wesley Publishing Company. 1995: 383.