Chronique du débutant Première partie
Linterface 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 dune 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 dinscrire, de classer et de trouver linformation 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 daccéder aux données conforme à la programmation orientée objet.  Toutefois, puisque toutes les versions de dBASE sous Windows sont daspect à 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 dindiquer 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 puisquil nexiste 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 nest pas de constituer la bible de dBASE mais plutôt de vous présenter lessentiel de ce que le novice devrait savoir afin dutiliser efficacement ce logiciel.

Linterface de dBASE

dBASE est dabord et avant tout un langage programmation sur lequel se greffe une interface. Cette dernière facilite lapprentissage et lutilisation du logiciel mais, à lexclusion 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 dataBased Intelligence Inc.). Une fois cette réserve exprimée, on doit admettre (sans doute pour ne pas vous décourager) quil est possible de créer des applications simples avec une connaissance rudimentaire du dBL, comme nous le verrons dans le chapitre consacré au concepteur dinterface utilisateur (appelé Concepteur de formulaire).

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

Les menus

Lexploration des menus est une bonne manière à la fois de découvrir la richesse de leur contenu et dapprendre leurs raccourcis. Ce logiciel réserve toutefois quelques surprises puisque ses menus diffèrent selon le contexte. Par exemple, lorsque quon utilise le concepteur dinterface 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 nauront 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 quils 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 dun document dans lÉditeur de code de dBASE.

Note : La boîte de dialogue Open File (illustrée ci-dessus) possède un aspect différent selon la version et la langue du Système dexploitation.

La Barre doutils

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

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

La Barre doutils peut être transformée en palette flottante : à laide 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 nimporte 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 lillustration ci-dessus).

Le Navigateur

Le Navigateur de dBASE joue le même rôle que lExplorateur de Windows. Tout comme avec ce dernier, lutilisateur peut choisir, par le biais du menu View (qui signifie «Vois»), de modifier lapparence et lordre 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 ). Lorsquon 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 limage pour ouvrir cette liste déroulante) : il suffit de cliquer sur le nom de lun des répertoires en pour y retourner. Les onglets en affichent sélectivement certain types de fichiers présents dans ce répertoire afin daider à trouver ce que vous y cherchez. Longlet 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 à lintérieur de cette liste de fichiers (numérotée ), on na 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 dappuyer sur la touche Entrée) pour que lÉditeur de code (dans le cas dun programme) ou quun assistant (dans la plupart des autres cas) apparaisse.

Lorsque double-click sur un item autre quUntitled, on provoque plutôt lexécution de cet item. Deux exceptions à cette règle : on ouvre la visionneuse dans le cas dune 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 nest pas visible à lécran, cela peut être dû à lune ou lautre parmi les causes suivantes. Premièrement, on peut avoir fermé la fenêtre du Navigateur. Si tel est le cas, son nom napparaît pas dans la liste numérotée des fenêtres ouvertes, au bas de litem Window du menu : on ouvre alors le Navigateur en choisissant litem 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 CtrlF6 peut aussi faire laffaire, à la différence près quil ne rétablit pas la taille du Navigateur sil 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 langlais, de gauche à droite, les onglets du Navigateur sont successivement : Tous, Registres dapplication, 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 dautres logiciels de programmation. En effet, il suffit dy dactylographier nimporte quel ordre pour lexécuter immédiatement, sans avoir donc à créer un programme, à le compiler et à lexé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 napparaît pas au menu, cest que le curseur nest 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 litem 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 lexercice suivant. Nous allons modifier le texte qui apparaît dans la barre de titre : nous allons y inscrire votre nom. Nayez 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. Dabord cliquez nimporte 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 (noubliez ni les guillemets, ni le souligné à gauche de app : il sagit de _app et non dapp). 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 à laide 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 dy mettre) apparaît maintenant dans la Barre de titre. Ceux parmi vous qui connaissez déjà dautres langages de programmation, remarquerez quon na 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 quil lui faut lexécuter. On na 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 cest le cas avec dautres 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 lordre à dBASE de se minimiser, cest-à-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 lapplication retrouve sa taille originelle.

Vous remarquerez dans lexemple précédent, que la valeur à attribuer à _app.frameWin.windowState, soit 1 na pas besoin dêtre entre guillemets. Pourquoi ? Parce que nous avons affaire ici à un nombre. Les valeurs numériques nen prennent pas. Alors pourquoi la première partie de léquation ne prend-elle pas de guillemets puisquil sagit dun 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 lorsquelles contiennent du texte.

Prenons lexemple 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 (cest à 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 dautres mots, on ajoute 1 à la valeur existante de x), ? x donnera maintenant 3. Cest é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 lalliage de deux signes alphanumériques dont dBASE ne cherche même pas à connaître la signification. Pour dBASE, ajouter un "1" au bout dun "2", cest comme ajouter "2001" à "année " (ce qui donne "année 2001"). Cette distinction est essentielle.

Note : il y a plusieurs moyens dajouter des remarques au code dBL. Lorsquon 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 dautres langages de programmation, cest pire. En effet, il est impossible de transformer à la volée une variable numérique en variable alphanumérique (cest à dire contenant du texte) comme nous venons de le faire. Non seulement ces langages auraient-ils exigé que nous leur déclarions à lavance notre intention dutiliser une variable numérique, mais nous aurions à la détruire avant de leur déclarer de nouveau notre intention dutiliser 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 lexemple 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 quun bouton. Il suffit de dactylographier (note : ne pas insérer despace entre MsgBox et louverture 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 dinstructions quon ne peut exécuter dans la Fenêtre de comande mais qui sexécutent parfaitement bien à lintérieur dun programme. Ici nous avons numéroté les lignes de code afin den faciliter lexplication.

La ligne 01 crée une variable x et lui attribue une valeur de deux. Comme vous le savez déjà (enseigner est lart 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 lexé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 lexé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 dinstructions 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 lexécution de ce code à la ligne 02 et provoquera lapparition 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 quil doit exécuter avant de procéder. Lorsquil sagit dun programme, dBASE analyse lensemble du programme et sarrê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 quon 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 derreur 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 noffre 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 nexistait 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 lorsquon a commis une faute de frappe. Faites lessai suivant. Appuyez dabord 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 dappuyer 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 dapparaî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 nest pas le cas de dBASE. À lexclusion 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 nont pour but que didentifier 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 lorsquil sagit dun 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, cest-à-dire un fichier .prg. Dans les faits, lutilisateur expérimenté lappelle également pour retoucher le code dautres 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 litem File|New|Program. Si vous choisissez File|New|Form ou tout autre choix, cest 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 litem File|Open du menu (ou de son raccourci Ctrlo, ou encore en appuyant sur le bouton équivalent de la Barre doutils), au bas de la boîte de dialogue qui souvrira, 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 louverture de la Fenêtre Open File, cette dernière vous proposera douvrir des fichiers .wfm. Lorsque le curseur était plutôt dans la Fenêtre du Navigateur, la Fenêtre Open File vous proposera alors douvrir 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 langlais. Ce bilinguisme caractérise lutilisation dune version anglaise de dBASE sous une version française de Windows, et révèle les ressources du système dexploitation 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 loption Open in Source Editor dans le menu contextuel qui apparaît alors. Lorsquaucun nom de fichier nest 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; cest 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 lune à lautre par le raccourci CtrlF6.

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 command Mon_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 nest pas nécessaire de préciser leur extension puisquils sont chargés par défaut. Par contre, on doit préciser lextension de tout autre type que lon voudrait charger dans lÉditeur de code. Si Mon_programme nexiste 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 cest 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 nimporte quel éditeur de texte (même par lhumble Notepad de Windows), à la condition expresse que le texte sauvegardé par cet éditeur demeure en format texte. Cest ce qui explique que dBASE vous propose son Éditeur de code mais ne vous limpose pas. Vous pouvez en choisir un autre à votre goût par le biais du menu, à litem 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 dopter pour un autre éditeur de texte, pensez-y bien. LÉditeur de code de dBASE possède plusieurs avantages. Lun deux est la coloration syntaxique. Pour lamour 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, à litem Properties|Source Editor Properties (voir limage plus bas). Si cet item napparaît pas au menu, cest que le curseur sest 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 dentre eux, cochez la case Use syntax highlighting si elle ne lest 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). Cest 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 larborescence du code. Cet arborescence est particulièrement utile lorsquon édite le code dune fenêtre; tous les objets quelle 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, larborescence à gauche liste vos objets par ordre alphabétique sous litem objects, puis les fonctions, également par ordre alphabétiques, sous litem methods). La seule exception à cette règle concerne un type spécial dobjet appelés contenants (car ils contiennent dautres objets) : ces objets disposent de leur propre embranchement dans lequel se retrouvent les objets quils 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 didentifier le type dobjet dont il sagit (un conseil que je nai pas respecté parfaitement ici, comme vous pouvez le constater).

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

Après avoir cliqué quelque part dans le panneau de gauche, il suffit dappuyer sur une lettre du clavier pour se rendre au premier objet dont le nom commence par cette lettre et dafficher son code dans le panneau de droite. Si vous dactylographiez rapidement, cette recherche sera incrémentielle, cest à 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 larborescence alors que la flèche de gauche, aura un comportement simulaire sauf quelle fermera lembranchement sil est ouvert. Le flèche de droite fera le contraire. Les flèches du bas et du haut déplacent le curseur à lobjet suivant ou précédent. La touche «+» du pavé numérique ouvre un embranchement tandis que la touche «-» fait linverse (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 ninsisterai pas. Je précise ci-dessous quelques raccourcis particuliers.
 
 
Ctrlr                  Remplace le texte...
Ctrlt                  Détruit le mot ou la partie de mot à droite
Ctrlretour en arrière  Détruit le mot ou la partie de mot à gauche
Ctrly                  Détruit la ligne
Ctrlg                  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 lintermé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 lon veut donner à dBASE. Ceux qui ont connu les fichiers de commandes (batch files) sous le DOS y verront à juste titre une ressemblance. En fait, cest 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 Ctrls ou encore sur le bouton approprié de la Barre doutils).

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

Si vous choisissez lune ou lautre 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 Ctrlw, 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 longlet des programmes) et en appuyant soit sur la touche F2 ou sur le bouton run (ce qui signifie «exécute») dans la Barre doutils. 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 langlais courant, ce qui le rend particulièrement facile à comprendre pour ceux qui connaissent cette langue.

Il est à noter quune 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 dune 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 nimporte 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.

Laide

Face à labsence totale de manuel disponible en librairie relativement dBASE Plus (le seul manuel anglais relativement au Visual dBASE 7.5 sachète directement de léditeur), dBASE compense par une abondante documentation électronique gratuite. Cette documentation est disponible sous litem Help du menu.

Une première manière dobtenir de laide est de sélectionner un mot (cest-à-dire le mettre en surbrillance) et dappuyer sur la touche F1 : on accède directement à la rubrique de ce mot dans laide on ligne. Personnellement, il ny a pas une journée sans que je consulte laide en ligne de dBASE. Comment sépelle exactement telle propriété ? Quelle sont les fonctions disponibles pour telle classe dobjet ? Jutilise surtout lindex de laide en ligne par son raccourci MajF1. Cet index dispose de ce jappelle un limier (par analogie au canin) et quon appelle seeker en anglais : il suffit de taper les premières lettres (pas seulement la première comme cest 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 daide en tapant le mot help (qui signifie «aide») suivi du nom de la rubrique que lon désire consulter.
 
 
help if
   

La Banque de connaissance (Knowledgebase) est une mine dor 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 dataBased Intelligence Inc. Dans sa section destinée aux débutants (Beginners), jattire votre attention sur deux documents indispensables  : premièrement OODML.how écrit par A. A. Katz, et deuxièmement le didacticiel intitulé An Application tutorial, rédigé par MM. Ken Mayer et Michael Nuwer, deux experts de réputation mondiale.

À mon humble avis, la manière idéale dapprendre dBASE passe successivement par les étapes suivantes :
cette série darticles pour débutants;
le didacticiel du professeur Michael Nuwer ;
le manuel Getting Started de Ted Blue;
le guide du programmeur (accessible à partir du menu Help);
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;
labonnement aux forums de discussion de dataBased Intelligence Inc. (news.dbase.com)

La version électronique du Guide de référence est disponible au menu Help.

Relativement au répertoire où vous avez installé dBASE, dans le sous-répertoire Knowledgebase, il y a un sous-sous-répertoire appelé dUFLP. On y trouve un grand nombre dutilitaires et de fonctions pratiques. La fenêtre Library.wfm en est la table des matières électronique.

De plus, dans le répertoire où vous avez installé le Borland Database Engine (BDE), se trouvent le fichier daide Localsql.hlp (relatif au langage SQL), de même que BDE32.hlp (relatif au BDE).

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


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

Visual dBASE, dB2K, dBASE Plus et dBASE sont des marques de commerce de dataBased Intelligence 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 lauteur.


Bibliographie
  1. Anonyme. Developers 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 Developers 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.