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 requetes.

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 chapître 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 des expressions, séparées par des virgules, à afficher (souvent les noms d'attributs) ou une simple étoile * qui correspond à tous les attributs 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 d'attributs, séparés par des virgules, qui déterminent l'ordre pour afficher le résultat. Notez que les champs WHERE et ORDER BY sont optionnels ; ce qui est indiqué par les crochets [].

Par exemple, la requête

 
SELECT * FROM table

affiche le contenu des attributs de tous les enregistrements de la table spécifiée.

 
SELECT attr1 FROM table WHERE (LIKE attr2 "*Madonna*")

affiche les valeurs du champ attr1 dans tous les enregistrements de table dans 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 choix de menu `Program - Queries'. 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 pour la rendre en faire la requ^te en cours, 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 `Delete' 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 bouton `Run' qui compile et exécute le programme de requête et affiche le résultat dans le fenêtre déroulante.
  • un bouton `Imprimer' qui ouvre une requête (voir Printing queries) pour imprimer les résultats.
  • deux boutons `Load' et `Save' pour charger et enregistrer le programme de requête courant. Si vous enregistrez une requête, le texte du programme est écrit au format ASCII et la première ligne contient le nom de la requête. La fonction de chargement utilise le même format au chargement d'un fichier. Il est aussi possible de charger et enregistrer des requêtes en utilisant les choix de menu dans le menu contextuel du champ de saisie. Cependant, ces éléments de menu enregistrent seulement le texte du programme et n'incluent pas le nom d'une requête.
  • un champ de saisie pour tapper le programme de requête. Vous saisissez ici une requête de type select-from-where. Cependant, it is also possible to enter any expression of MUIbase' programming language. This can be useful if you want to do simple computations or update some fields of a table by using a simple program. Veuillez noter que MUIbase entoure automatiquement votre expression avec une paire de parenthèses. Vous pouvez donc ne pas utiliser les deux les plus éloignées.
  • un affichage en liste qui montre les résultats de la requête en cour. 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 d'attribut). Sur Les lignes suivantes est affiché le résultat de la requête, un jeu d'enregistrement par ligne. Chaque valeur est affichée dans sa propre colonne. 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 de d'aller à un certain 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

You can export the results of a select-from-where query to a text file by pressing the `Export' button. This will open a window containing

  • a string field for entering the export filename. Right to this field you find a pop-up button to open a file dialog for choosing the filename.
  • two string fields for entering the record and field delimiters. You can enter a single character or an escape code by typing \n, \t, \f, \??? (octal code), or \x?? (hex code).
  • a field `Double quotes' that can be checked to specify that the fields should be surrounded by double quotes.
  • two buttons `Export' and `Cancel' for leaving the window.

After you pressed the `Export' button, MUIbase will open the specified file and write out the query result including a header line containing the list header. The fields are written in the order of the columns in the list.


14.4 Exporter des requêtes en PDF

On Windows, Mac OS X, Linux and MorphOS you can export the query results to a PDF file by pressing the `PDF' button.

On Windows, Mac OS X and Linux this opens the standard print dialog where the `Print to file' entry with a `PDF' format is preset. The dialog contains a custom page `Font' where you can specify a font and enable the shrinking of all contents such that they fit into the page width of the selected paper and orientation. After pressing the `Print' button the query results are written to

specified file.

On MorphOS a window is opened that contains the following elements:

  • a string field for entering the export filename. Right to this field you find a pop-up button to open a file dialog for choosing the filename.
  • a choice field for selecting the paper size.
  • a choice field for specifying the orientation (`Portrait' or `Landscape').
  • a choice field for choosing the font with a text field for entering the font size. It is possible to enter fractions, e.g. `10.5'.
  • a status field that shows the number of pages and whether the contents fit into the page width.
  • two buttons `Create PDF' and `Cancel' for leaving the window.

After pressing the `Create PDF' button, MUIbase opens the specified file and writes out the query result including a header line containing the list header. The fields are written in the order of the columns in the list.


14.5 Impression de requêtes

Après avoir exécuté une requête, vous pouvez imprimer le résultat dans un fichier ou sur une imprimante 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:

  • 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ère doit être utilisée pour imprimer l'affichage. `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'impreimante à 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' ne sont pas imprimés. 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 par des 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 pour choisir un nom de fichier ou saisissez un nom de fichier dans le champ texte. 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.

La fenêtre d'impression peut aussi être utilisée pour exporter des enregistrements dans un fichier ASCII. Pour cela, précisez `Tabulations' (ou `Personnalisé') dans le champ `Délimiteur', mettez à 0 le nombre d'espaces dans le champ `Indentation', cochez `Entête', décochez `Codes d'échappement' pour supprimer les paramètres de police, taille et séquence d'initialisation, éventuellement cochez `Guillemets' si vous voulez que les champs soient entourés de guillemets, cochez `Rien' dans le champ `Après impression', et entrez un nom de fichier dans le champ `Sortie'. Il se peut qu'utiliser l'éditeur de requête avec la fenêtre d'impression soit plus puissant pour exporter des enregistrements que la fonction import/export de MUIbase (voir Import et Export). C'est dû au fait que n'importe quelle requête peut être utilisée dans l'éditeur alors que la fenêtre d'export utilise seulement une requête fixe.


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 attributs suivants : `Nom', un attribut entier `Age', et deux attributs de référence `Père' et `Mère' qui se réfèrent aux enregistrements père et mère de la table `Personne'. La table contient les enregistrements suivants :

 
      Nom       Age      Père  Mère
      --------------------------------
p1:   Steffen    26     p2      p3
p2:   Dieter     58     NIL     NIL
p3:   Marlies    56     NIL     NIL
p4:   Henning    57     NIL     NIL

`Chien' a un attribut texte `Nom', un attribut de type choix `Couleur' et un attribut 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      Coleur   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  Père Mère
--------------------------
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 "Père", Pere.Age "Age",
       Mere.Nom "Mère", Mere.Age "Age"
FROM Personne WHERE (AND Père Mère)

donne :

 
Enfant   Age Père  Age Mère  Age
----------------------------------
Steffen  26 Dieter  58 Marlies  56

 
SELECT Nom, Couleur,
       (IF Propriétaire Propriétaire.Nom "Pas de propriétaire") "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 11 Septembre 2016 par texi2html