MUIbase Support This Project
programmable relational database
with graphical user interface
This page is also available in Deutsch English

Documentation

La documentation ci-dessous fait partie de la distribution de MUIbase. 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 MUIbase pour le traitement des données : par programmation ou l'é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 MUIbase (voir Programmation de MUIbase).

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

MUIbase 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]

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 nom de tables, séparées par des virgules, desquelles 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 attr1 FROM table WHERE (LIKE attr2 "*Madonna*")

affiche les valeurs du champ attr1 de tous les enregistrements de table pour laquelle le contenu du champ attr2 contient le mot `Madonna'.

Pour plus d'informations à propos des requêtes select-from-where et notamment sa syntaxe complète, voir Programming MUIbase, pour plus d'exemples voir Query examples.


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 est affichée. La fenêtre de l'éditeur de requêtes contient les éléments suivants :

  • un champ de saisi de texte avec un bouton 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 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 de nouveau sur le bouton des requêtes.

  • un liste de choix qui permet d'assigner une requête à une table. À l'assignation d'une table, MUIbase 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 le fenêtre déroulante.

  • un bouton `Export' qui ouvre une fenêtre (voir Exporter des requêtes en texte) pour exporter les résultats 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 les résultats 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 les résultats au format PDF.

  • u bouton `Imprimer' qui ouvre une fenêtre (voir Printing queries) pour imprimer les résultats.

  • un champ de saisie pour taper le programme de 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 MUIbase. cela peut être utile si vous voulez faire des calculs simples ou modifier certaines champs d'une table en utilisant un programme simple. Veuillez noter que MUIbase 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 les résultats 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 attributs). 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ête est non-modale. Cela signifie que vous pouvez laisser l'éditeur de requête ouvert alors que vous travaillez avec le reste de l'application. Vous pouvez à tout moment fermer l'éditeur de requête, en cliquant sur le bouton de fermeture sur la barre de titre.


14.3 Exporter des requêtes en texte

Vous pouvez exporter les résultats 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 double' qui peut être coché pour indiquer que les champs doivent être protégés par des guillements doubles.

  • deux boutons `Exporter' et `Annuler' pour quitter la fenêtre.

Après avoir pressé le bouton `Exporter', MUIbase ouvrira le fichier indiqué et écrira le résultat de la requête en incluant une ligne d'entête. Les champs sont écrit dans l'ordre des colonnes dans 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'.

Sur Windows, Mac OS X et Linux ceci ouvre la fenêtre d'impression standard où l'option {Imprimer dans un fichier} et le format `PDF' sont présélectionnés. 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 presser le bouton `Imprimer' les résultats de la requête sont écrit dans le fichier indiqué.

Sur MorphOS, la 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').

  • 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 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 `Créer un PDF', MUIbase ouvrira le fichier indiqué et écrira le résultat de la requête en incluant une ligne d'entête. Les champs sont écrit dans l'ordre des colonnes dans 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. Cela ouvre une requête d'impression qui contient les éléments suivants:

Sur Windows, Mac OS X et Linux ceci ouvre la fenêtre d'impression standard. 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 presser 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 Exporting queries as 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 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 `Créer un PDF', MUIbase générera un fichier temporaire qu'il ouvrira dans un lecteur externe (voir External viewer). Vous pouvez alors utiliser les fonctionnalités de votre lecteur pour envoyer les résultats de la requête à l'imprimante.

Sur les autres système 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 champs. 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' où vous précisez quelle police de caractères doit être utilisée pour l'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 large (10 cpi), `Elite' avec une police de taille moyenne (12 cpi) et `Condensé' avec une petite police (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 d'initialisation qui réinitialise 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 champs 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' 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.

  • 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 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 attaché. 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.

  • 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 attributs 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 10 Octobre 2017 par texi2html