Chapitre V Édition de rapports
  • V-1 Nouveautés de RBF dans OpenIngres *
  •  
  • V-2 Nouveautés de Report Writer dans OpenIngres *
    •  
  • V-3 Les présentations d'un rapport *
  • V-4 Composition d'un rapport *
  • V-5 Utilisation d'un rapport *

V-1 Nouveautés de RBF dans OpenIngres

RBF permet de créer ou modifier un rapport ( utilisé dans ce chapitre pour le mot anglais report) lié à une table ou à un JoinDef. Le nom du propriétaire de la table apparaît dans la fenêtre.

On peut faire un rapport lié à un objet d'un autre utilisateur, désigné par son nom complet "schema.nom_objet".

Avec la version 6.4 de Ingres au moment de la création d?un rapport les colonnes non désirées d?une table par exemple, devaient être effacées manuellement.

Avec OpenIngres :

ChooseColumns permet de choisir les colonnes de la table nécessaires au rapport. 

L?ordre des colonnes pourra être modifié en utilisant l?option ?Move? du menu puis les choix ?Above?, ?Below? avant de choisir la colonne désirée

OK accepte la liste des colonnes visualisées
RemoveAll efface toutes les colonnes de la liste (utile si l?on ne veut garder que quelques colonnes), 
Add les colonnes désirées seront choisies par add qui permet de réafficher la liste complète des colonnes. 
Delete permet d?effacer les colonnes.

Les nouveaux types de données long varchar, long byte, le type objet spatial, n?apparaissent pas dans la liste des colonnes.

Dans le cas d?un rapport basé sur un JoinDef cette possibilité de choisir les colonnes n?existe pas.
 

 Name cette option du menu permet de connaître le nom de la colonne . Il faut être positionné sur la colonne pour utiliser cette option. 
Rulers lorsque dans cette option l?on positionne à ?yes? l?option 

?Display Rulers?, des lignes horizontales graduées (5 ème et 10 ème colonnes ) apparaissent sur l?écran.

Le positionnement à ?yes? de l?option ?Display Strait Edges? visualise sur l?écran des lignes verticales.

Par défaut ces deux paramètres sont positionnés à ?no?

les mettre tous les deux à ?yes? provoque un quadrillage de l?écran, bien utile pour positionner les champs.

Ce quadrillage ne sera pas imprimé lors de l?édition sur imprimante ou dans un fichier du rapport.

ReportOptions permet de définir les paramètres valables pour tout le rapport, 

la longueur de page, le caractère qui servira à souligner,

définir, si on veut les imprimer, le format de la date, de l?heure, du numéro de page.

Par défaut ces paramètres sont imprimés sur chaque page du rapport. On peut modifier individuellement ces paramètres ou utiliser les paramètres par défaut.

Print page header : positionné à ?no? supprime les noms de colonnes sur la première page du rapport. Positionné par défaut à ?yes?.

Insert formfeed : positionné à ?yes? provoque un saut de page pour chaque page du rapport. Positionné par défaut à ?yes?.

Print first formfeed : positionné à ?yes? incorpore une page vide avant le début du rapport (option mise par défaut).


V-2 Nouveautés de Report Writer dans OpenIngres
  • Utilisation des identificateurs délimités :

  •  

     

    Ils sont utilisables avec rbf et Report Writer, dans le cas de bases créées avec le standard SQL2. Si la base a été créée de façon à faire la différence entre les majuscules et les minuscules, vous pouvez utiliser les identificateurs délimités pour distinguer les noms en majuscules et en minuscules (Ex ?DEPARTEMENT? sera différent de ?Departement )?. Ils sont spécifiés dans le rapport soit :

    • sur la ligne de commande en réponse à une demande de variable pour l?exécution du rapport 
    • dans la commande de lancement du rapport en utilisant les paramètres -u et -G
    • il faut dans le Report Writer prévoir la commande :?.delimited?
  • Les 2 type de blobs ?long varchar? et ?long byte? sont ignorés et ne sont pas imprimés.
  • Le type numérique est traité selon le principe suivant :
    • sans point décimal et sans exposant : est traité comme un type entier.

    •  

       

      si la valeur de ce numérique est supérieure aux possibilités des entiers, il sera traité comme un type décimal

    • avec un point décimal et sans exposant : est traité comme un type décimal. 
    • avec un exposant : est traité comme un type flottant
dans ce cas II_NUMERIC_LITERAL = float, la précision (nombre total de chiffres) est comprise entre 1 et 31
  • Il faut impérativement un espace entre la commande et le paramètre numérique
exemple : newline 2
  • On peut utiliser des types d'objets existant dans des tables ou des vues appartenant à d?autres utilisateurs par la syntaxe suivante :
schema.nom_objet pouvant être soit des variables, soit des identificateurs délimités ils sont utilisés dans les commandes .setup, .cleanup, .data, .query (seulement en SQL), declare.
  • chaînes hexadécimales
Les chaînes hexadécimales sont utilisées en séquence d?échappement pour effectuer des contrôles sur l?imprimante ou sur le terminal (changement de fonte, inversion vidéo, contrôle du papier).

Par défaut une chaîne hexadécimale est convertie en chaîne de caractères équivalente, ce qui n?est pas souhaitable pour effectuer les contrôles précédents. Cette conversion sera supprimée en utilisant le format q0 dans la commande print.

  • On peut annuler l?option FirstFormFeed si celle-ci a été validée par la commande :
nofirstformeed
  • Passage de paramètres
Les paramètres suivants peuvent être utilisés dans une ligne de commande :
    • des variables de type numérique 
    • des variables de type chaîne ou date 
    • toute clause ?where? 
    • des paramètres multiples 
    • des variables qui seront rentrées au moment de l?exécution du rapport
Premier écran :


V-3 Les présentations d'un rapport
Tabular visualisation en colonne dans une page
Wrap présentation en colonne comme Tabular, mais pliage des colonnes si nécessaire, pour que toutes les colonnes tiennent dans la taille de l'écran.
   
Block Une ligne de table par écran, sous forme de bloc, un bloc pouvant comporter plusieurs lignes d'écran .
   
Indented Les noms de colonnes sont présentées dans un bloc, les valeurs des colonnes sont présentées dans un autre bloc. On peut choisir le nom de colonne sur lequel on veut faire une rupture.
   
Master/Detail Ce type de rapport doit être basé sur un joindef. La colonne servant à faire la rupture est la colonne de jointure.

 

Exemple : on crée un rapport sur la table "vehicule"




affichage du rapport en mode tabular :

même rapport en mode wrap :




même rapport en mode block :




Autre exemple : création d'un rapport sur la joindef "foy_veh".
 
 

rapport en mode master/detail :


V-4 Composition d'un rapport Un rapport comprend trois zones :
  • la zone Report Header apparaît sur les différentes pages résultats, elle contient le titre du rapport;
  • une zone en-tête de colonnes Page Header pour les présentations en colonnes où apparaissent les noms des différentes colonnes que vous pouvez modifier avec les options :
Edit et Move, Delete pour personnaliser votre rapport
  • une zone Detail où les résultats s'imprimeront. Vous pouvez, dans cette zone, personnaliser vos résultats en utilisant les options :
Edit et DisplayFormats, ColumnOptions, BreakOptions Lorsque votre présentation d'édition est prête vous la sauvez par l'option Save.

Vous pouvez changer son nom implicite à ce moment.


V-5 Utilisation d'un rapport Pour utiliser un rapport vous faites Go sur le nom du rapport. Le résultat sera stocké dans un fichier, ou visualisé à l'écran.

On peut archiver un rapport avec l'option Archives du menu Utilities.

Cette possibilité permet d'obtenir dans un fichier suffixé .rw les ordres Report-Writer d'écriture du rapport et, éventuellement, de les modifier. 

Exemple : on archive dans le fichier "vehpfoy" le rapport "vehicule_par_foyer" construit sur une joindef.
 
 




Après corrections ce rapport pourra être réintroduit dans RBF par la commande sreport.

$ sreport parcauto vehpfoy.rw