Documentation
La documentation ci-dessous fait partie de la distribution de BeeBase. Elle est également disponible sous forme de PDF.
[ << ] | [ >> ] | [Sommaire] | [Table des matières] | [Index] | [ ? ] |
14. Traitement des données
Deux méthodes sont utilisables dans BeeBase pour le traitement des données : par programmation ou depuis éditeur de requêtes.
La méthode par programmation vous permet de créer des boutons dans les masques de tables qui, sur pression, appelleront des fonctions programmées. L'utilisation de cette méthode est décrite dans le chapitre concernant l'éditeur de structure (voir Éditeur de structure) et dans le chapitre à propos de la programmation dans BeeBase (voir Programmation de BeeBase).
Ce chapitre décrit l'utilisation de l'éditeur de requêtes, une fenêtre où vous pouvez entrer des requêtes et consulter le résultat dans une fenêtre défilante.
14.1 Requêtes Select-from-where | À quoi ressemble une requête ? | |
14.2 Éditeur de requêtes | Comment écrire et gérer vos requêtes ? | |
14.3 Exporter des requêtes en texte | Exporter le résultat d'une requête en fichier texte | |
14.4 Exporter des requêtes en PDF | Exporter le résultat d'une requête en fichier PDF | |
14.5 Impression de requêtes | Imprimer le résultat d'une requête | |
14.6 Exemples de requêtes | Quelques exemples |
14.1 Requêtes Select-from-where
BeeBase utilise un système de requête du type select-from-where comme dans les bases de données SQL. La requête vous permet d'afficher le contenu des enregistrements d'une ou plusieurs tables. Seuls les enregistrements qui correspondent à un certain critère se retrouvent dans le résultat. La syntaxe (incomplète) d'une requête select-from-where est
SELECT exprliste FROM tableliste [WHERE test-expr] [ORDER BY orderliste] |
où exprliste est une liste d'expressions, séparées par des virgules, à afficher (souvent les noms de champs) ou une simple étoile * qui correspond à tous les champs des tables spécifiées, tableliste est une liste de tables, séparées par des virgules, dans lesquelles les enregistrements sont examinés, test-expr est l'expression qui est testée pour chaque groupe d'enregistrements qui doit être inclus dans le résultat, et orderlist est une liste de champs, séparés par des virgules, qui déterminent l'ordre pour afficher le résultat. Notez que les clauses WHERE et ORDER BY sont optionnelles ; ce qui est indiqué par les crochets [].
Par exemple, la requête
SELECT * FROM table |
affiche le contenu des champs de tous les enregistrements de la table spécifiée.
SELECT champ1 FROM table WHERE (LIKE champ2 "*Madonna*") |
affiche les valeurs du champ champ1 de tous les enregistrements de table pour laquelle le contenu du champ champ2 contient le mot `Madonna'.
Pour plus d'informations à propos des requêtes select-from-where et notamment sa syntaxe complète, voir Programmation de BeeBase, pour plus d'exemples voir Exemples de requêtes.
14.2 Éditeur de requêtes
Pour saisir et exécuter des requêtes, ouvrez l'éditeur de requêtes en sélectionnant le menu `Programme - Requêtes'. L'éditeur de requêtes peut gérer plusieurs requêtes mais une seule est affichée à la fois. La fenêtre de l'éditeur de requêtes contient les éléments suivants :
- un champ de saisie de texte avec un bouton pop-up attaché. Le champ texte indique le nom de la requête en cours.
En pressant le bouton, apparaissent une liste avec d'autres noms de requêtes ainsi que d'autres boutons.
Vous pouvez sélectionner une des requêtes affichées pour en faire la requête courante. Pressez le bouton
`Nouveau' pour créer une nouvelle requête. Pressez le bouton `Dupliquer' pour faire une copie de la
requête sélectionnée. Cliquez sur le bouton `Trier' pour trier la liste des requêtes,
ou pressez le bouton `Supprimer' pour effacer la requête en cours.
Pour quitter la fenêtre sans rien modifier, cliquez à nouveau sur le bouton des requêtes.
- une liste de choix qui permet d'assigner une requête sur une table.
À l'assignation d'une table, BeeBase lance cette requête lorsque l'utilisateur sélectionne le menu `Table - Afficher tous les enregistrements' de la table correspondante.
- un bouton `Exécuter' qui compile et exécute le programme de requête et affiche le résultat dans la fenêtre déroulante.
- un bouton `Export' qui ouvre une fenêtre
(voir Exporter des requêtes en texte)
pour exporter le résultat de la requête dans un fichier texte.
- un bouton `PDF' (sur la plupart des systèmes) qui ouvre une fenêtre
(voir Exporter des requêtes en PDF)
pour exporter le résultat de la requête dans un fichier PDF.
- un bouton `Imprimer' qui ouvre une requête
(voir Exporter des requêtes en PDF)
pour imprimer le résultat.
- un bouton `Imprimer' qui ouvre une fenêtre (voir Impression de requêtes)
pour imprimer les résultats.
- un champ de saisie pour saisir la requête.
Vous saisissez ici une requête de type select-from-where. Cependant, il est possible d'entrer une expression du langage de programmation de BeeBase.
cela peut être utile si vous voulez faire des calculs simples ou modifier certains champs d'une table en utilisant un programme simple.
Veuillez noter que BeeBase entoure automatiquement votre expression avec une paire de parenthèses. Vous pouvez donc
omettre d'utiliser les plus extérieures.
- un affichage en liste qui montre le résultat de la requête en cours.
L'affichage est formaté en lignes et colonnes.
La ligne de titre contient les noms des champs de la requête select-from-where (le plus souvent les noms des champs).
Sur Les lignes suivantes est affiché le résultat de la requête, un jeu d'enregistrement par ligne.
Chaque champ est affichée dans sa propre colonne.
En cliquant sur le titre d'une colonne vous pouvez trier la liste en fonction de cette colonne. Un second clic sur la même colonne inverse l'ordre de tri.
Sur Amiga vous pouvez sélectionner une seconde colonne en maintenant la touche Maj enfoncée tout en cliquant sur le titre.
Si vous double-cliquez un élément de la liste, et que cet élément était généré directement à partir d'un enregistrement,
alors cet enregistrement est affiché dans le masque de table correspondant.
C'est une façon simple d'atteindre un enregistrement dans son masque de table.
L'éditeur de requêtes est une fenêtre non modale. Cela signifie que vous pouvez laisser l'éditeur de requêtes ouvert alors que vous travaillez avec le reste de l'application. Vous pouvez à tout moment fermer l'éditeur de requêtes, en cliquant sur le bouton de fermeture sur la barre de titre.
14.3 Exporter des requêtes en texte
Vous pouvez exporter le résultat d'une requête select-from-where vers un fichier texte en appuyant sur le bouton `Exporter'. Une fenêtre s'ouvrira contenant :
- un champ texte pour indiquer le fichier d'export. À droite du champ un bouton ouvre la fenêtre de sélection de fichier.
- deux champs texte pour indiquer les délimiteurs d'enregistrement et de champ.
Vous pouvez saisir un caractère unique ou une séquence d'échappement en tapant \n, \t, \f, \??? (code octal), ou
\x?? (code hexa.).
- un champ `Guillement anglais double' qui peut être coché pour indiquer que les champs doivent être protégés par des guillemets anglais doubles.
- deux boutons `Exporter' et `Annuler' pour quitter la fenêtre.
Après avoir pressé le bouton `Exporter', BeeBase ouvrira le fichier indiqué et écrira le résultat de la requête en incluant une ligne d'entête. Les champs sont écrits dans l'ordre des colonnes de la liste.
14.4 Exporter des requêtes en PDF
Sur Windows, Mac OS X, Linux et MorphOS vous pouvez exporter les résultats d'une requête vers un fichier PDF en pressant le bouton `PDF'.
Une fenêtre d'impression contient les options ci-dessous :
- un champ texte pour indiquer le fichier d'export. À droite du champ un bouton ouvre la fenêtre de sélection de fichier.
- une liste de sélection du format de page.
- une option pour choisir l'orientation de la page :
(`Portrait' ou `Paysage').
- un champ pour indiquer une police de caractères et une taille.
Sur Windows, Mac OS X et Linux, vous pouvez cliquer sur le bouton pop-up button à droite pour sélectionner la police via une boîte de dialogue.
Sur MorphOS vous sélectionnez la police directement dans la liste et entrez la taille dans le champ de droite.
Il est possible d'entrer une fraction, p. ex. `10,5'.
- un champ texte pour décrire un texte facultatif en entête.
L'entête est imprimé en haut de chaque page.
Laisser vide si vous ne désirez pas d'entête.
- un champ texte pour décrire un pied de page facultatif.
Le pied de page est imprimé au bas de chaque page avec le numéro de page.
- un aperçu pour connaître le nombre de pages et vérifier que le texte tient dans la page.
- deux boutons `Ok' et `Annuler' pour fermer la fenêtre d'impression.
Après avoir pressé le bouton `Créer un PDF', BeeBase ouvrira le fichier indiqué et écrira le résultat de la requête avec une ligne d'entête contenant la liste des champs. Les champs apparaissent dans l'ordre des colonnes de la liste.
14.5 Impression de requêtes
Après avoir exécuté une requête, vous pouvez imprimer le résultat en cliquant sur le bouton `Imprimer' dans l'éditeur de requêtes.
Sur Windows, Mac OS X et Linux ceci ouvre la fenêtre d'impression standard.
Si vous utilisez la version GTK de BeeBase, la fenêtre contient une page personnalisée de `polices de caractères' où vous pouvez choisir une police et activer la contraction du texte pour ajuster le contenu à la largeur et l'orientation de page. Après avoir pressé le bouton `Imprimer' les résultats de la requête sont envoyés à l'imprimante sélectionnée.
Sur MorphOS le bouton `Imprimer' ouvre une fenêtre semblable d'export des requêtes en PDF (voir Exporter des requêtes en PDF).
La fenêtre contient les options suivantes :
- une liste de sélection du format de page.
- une option pour choisir l'orientation de la page :
(`Portrait' ou `Paysage').
- une option pour le choix de la police de caractères et un champ pour saisir la taille désirée. Il est possible d'entrer une fraction, p. ex. `10,5'.
- un champ texte pour décrire un texte facultatif en entête.
L'entête est imprimé en haut de chaque page.
Laisser vide si vous ne désirez pas d'entête.
- un champ texte pour décrire un pied de page facultatif.
Le pied de page est imprimé au bas de chaque page avec le numéro de page.
- un aperçu pour connaître le nombre de pages et vérifier que le texte entre dans la page.
- deux boutons `Ok' et `Annuler' pour fermer la fenêtre d'impression.
Après avoir pressé le bouton `Ok', BeeBase générera un fichier temporaire qu'il ouvrira dans un lecteur externe (voir Visionneuse externe). Vous pouvez alors utiliser les fonctionnalités de votre lecteur pour envoyer le résultat de la requête à l'imprimante.
Sur les autres systèmes Amiga, la fenêtre d'impression contient les options ci-dessous :
- un champ `Délimiteur' où vous précisez comment les colonnes doivent être séparées.
`Espaces' place des caractères espaces entre chaque champ. La justification est faite à gauche ou à droite
en fonction du type du champ (les nombres sont justifiés à gauche, le texte à droite).
`Tabulations' insère un caractère tabulation entre les colonnes.
Cela peut être utile si vous voulez utiliser la fenêtre d'impression pour exporter des enregistrements (voir ci-dessous).
`Personnaliser' vous permet de préciser un délimiteur personnalisé à afficher entre les champs.
- un champ `Police de caractères' où vous précisez la police de caractères d'impression. `NLQ' signifie « qualité proche d'une lettre » qui doit imprimer dans une meilleure qualité que `Brouillon'.
- un champ `Taille' où vous définissez la taille des caractères.
`Pica' imprime avec une police de grande taille (10 cpi), `Elite' de taille moyenne (12 cpi) et `Condensé' de petite taille (17 cpi).
- un champ texte `Séquence d'initialisation' qui vous permet de préciser votre imprimante.
Le contenu de ce champ est directement envoyé à l'imprimante à l'ouverture de celle-ci. Par exemple, vous pouvez utiliser
`\33c' comme séquence pour réinitialiser votre imprimante.
- un champ `Indentation' où vous pouvez préciser le nombre d'espaces qui seront utilisés pour indenter chaque
ligne en sortie.
- un champ `Entête' qui, s'il est coché, imprime les noms de champ sur la première ligne.
- un champ `Codes d'échappement'. S'il n'est pas coché l'impression de tous les codes d'échappement est
supprimé, donc les paramétrages des champs `Police de caractères' et `Taille' sont ignorés et le contenu de
la `Séquence d'initialisation' n'est pas imprimée. Supprimer l'impression de tous les codes d'échappement
est utile si vous voulez générer un fichier ASCII, par exemple pour exporter des enregistrements.
- un champ `Guillemets' qui, s'il est coché, entoure chaque champ de guillemets anglais doubles.
- un champ `Après impression' où vous choisissez comment doit se terminer l'extraction. `Saut de page' imprime
un caractère saut de page \f. `Saut de ligne' imprime un certain nombre de sauts de ligne \n.
Le nombre de sauts de ligne peut être saisi dans le champ texte à la droite du bouton `Sauts de ligne'.
`Rien' n'imprime rien sur l'imprimante.
- un champ Texte `Sortie' avec un bouton pop-up.
Vous pouvez utiliser le bouton pour ouvrir une requête de fichier et choisir ou saisir un nom de fichier.
Pour envoyer la sortie vers l'imprimante entrez `|lpr' (Linux) ou `PRT:' (Amiga).
Pour d'autres noms de fichiers spéciaux, voir Fichier de sortie du programme.
- deux boutons `Ok' et `Annuler' pour fermer la fenêtre d'impression.
Quand vous en avez terminé avec tous les paramètres, cliquez sur le bouton `Ok' pour lancer le travail d'impression.
14.6 Exemples de requêtes
Voici plusieurs exemples de requêtes pour vous donner une idée de la puissance des requêtes select-from-where.
Supposez que nous ayons deux tables `Personne' et `Chien'. `Personne' a les champs suivants : `Nom', un champ Entier `Age', et deux champs de référence `Pere' et `Mere' qui se réfèrent aux enregistrements père et mère de la table `Personne'.
La table contient les enregistrements suivants :
Nom Age Pere Mere
--------------------------------
p1: Steffen 26 p2 p3
p2: Dieter 58 NIL NIL
p3: Marlies 56 NIL NIL
p4: Henning 57 NIL NIL
|
`Chien' a un champ Texte `Nom', un champ de type liste `Couleur' et un champ de référence `Propriétaire' qui se réfère au propriétaire dans la table `Personne'. La table contient les enregistrements suivants :
Nom Couleur Propriétaire
-----------------------
d1: Boy blanc p3
d2: Streuner gris NIL
|
Avec ces données, on peut exécuter les requêtes select-from-where suivantes :
SELECT * FROM Personne |
donne :
Name Age Pere Mere
--------------------------
Steffen 26 Dieter Marlies
Dieter 58
Marlies 56
Henning 57
|
(Pour les champs de référence le champ `Nom' de l'enregistrement référencé est affiché.)
SELECT Nom "Enfant", Age, Pere.Nom "Pere", Pere.Age "Age", Mere.Nom "Mere", Mere.Age "Age" FROM Personne WHERE (AND Pere Mere) |
donne :
Enfant Age Pere Age Mere Age
----------------------------------
Steffen 26 Dieter 58 Marlies 56
|
SELECT Nom, Couleur, (IF Propriétaire Proprietaire.Nom "Pas de proprietaire") "Propriétaire" FROM Chien |
donne :
Nom Couleur Propriétaire
------------------------
Boy blanc Marlies
Streuner gris Pas de propriétaire
|
SELECT a.Nom, a.Age, b.Nom, b.Age FROM Personne a, Personne b WHERE (> a.Age b.Age) |
donne :
a.Nom a.Age b.Nom b.Age
---------------------------
Dieter 58 Steffen 26
Marlies 56 Steffen 26
Henning 57 Steffen 26
Dieter 58 Marlies 56
Henning 57 Marlies 56
Dieter 58 Henning 57
|
[ << ] | [ >> ] | [Sommaire] | [Table des matières] | [Index] | [ ? ] |
Ce document a été généré le 30 Septembre 2024 par texi2html