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.

À 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 x  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 :

cliquer sur le «x»
apparaissant sur le coin supérieur droit de cette fenêtre

choisir l'item
File|Close du menu

recourir au menu
contextuel (en cliquant avec le bouton droit de souris)

appuyer sur Ctrl–F4
ou pour terminer

appuyer sur
Ctrl–w.

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

les menus de dBASE
sont contextuels;

le Navigateur
filtre les différents types de fichiers dBASE en les disposant sous leurs
onglets respectifs;

on examine le code
source d'un fichier dBASE en cliquant sur son nom dans le Navigateur en en
appuyant sur F12;

la Fenêtre de
commande vous offre la possibilité d'y tester vos lignes de code et de donner
des ordres à dBASE;

à l'exclusion des
tables et du code compilé, les fichiers crées par dBASE sont des fichiers
textes, modifiables par n'importe quel éditeur de texte (du moment que ce
dernier sauvegarde votre fichier en mode texte) ;

on peut répéter une
commande dans la Fenêtre de commande en la sélectionnant de nouveau avec la
flèche du haut et en appuyant sur la touche Entrée.

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

Anonyme. Developer's Guide. Scotts Valley: Borland International.
1997.

Anonyme. Guide de référence - Visual dBASE. Scotts Valley: Borland
International. 1995: 1228.

Anonyme. Guide du programmeur - Visual dBASE pour Windows. Scotts
Valley: Borland International. 1995: 458.

Anonyme. Language Reference. Vestal (New York): dBASE, Inc.
2000.

Blue
T. The dBASE Developer: Book 1 - Getting Started. San Diego: Blue Star Press.
1999.

Coombs T and Coombs J. dBASE 5 for Windows Programming for
DUMMIES. San Mateo: IDG Books Worldwide, Inc. 1994: 383.

Green
CR. Crash Course in dBASE 5.0 for Windows Programming. Indianapolis: Que
Corporation. 1994: 283.

Groh
M et al. Killer dBASE 5 for Windows. Indianapolis: Que Corporation. 1994:
1019.

Hovis
T. dBASE 5 for Windows Developer's Guide.  Indianapolis: Sams
Publishing. 1994: 568.

Irwin
MR. Visual dBASE programming. Upper Saddle River (New Jersey): Prentice Hall
PTR. 1996: 725.

Johnson Y et  al. Using Visual dBASE 5.5. Second edition.
Indianapolis: Que Corporation. 1995: 750.

Mahar
P and Escobar E. Visual dBASE 5.5 Unleashed. 2nd edition.
Indianapolis: Sams Publishing. 1996: 963.

Palmer S. dBASE for Windows for DUMMIES. San Mateo: IDG Books
Worldwide, Inc. 1994: 316.

Parsons J et al. Inside dBASE 5 for Windows. Indianapolis: New
Riders Publishing. 1994: 1189.

Rinehart ML. Learn Visual dBASE Programming: a hands-on guide to
object-oriented database programming. Reading (Massachusetts): Addison-Wesley
Publishing Company. 1995: 383.