IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Rotation des champs en reports (Oracle)

Comment faire la rotation des champs en reports ?

Article lu   fois.

L'auteur

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

I. Problématique

Lorsque on veut faire la rotation d'un champ en reports, cette dernière provoque l'erreur suivante
Error: REP 3103
Text: Only text and graphical boilerplates can be rotated.

II. Solution

Vu que reports autorise la rotation d'un texte, pour résoudre ce problème, on utilise un texte et on met dans ce dernier la référence du champ &nom_champs (nom_champ : les champs qui figurent dans la requête par exemple : &dname, &deptno… ) qu'on souhaite afficher en vertical.Voici la méthode à suivre :

2.1- Création d'un texte.
2.2- Mettre dans le texte la référence du champ &nom_champ qu'on souhaite afficher en vertical.
2.3- Faire la rotation du texte.

Rappel: La référence lexicale (&) peut être utilisée pour changer la police d'un mot dans une phrase
Exemple : ch1 apparaît avec une fonte, le 2ème ch2 apparaît avec une autre fonte.
Sur le modèle de présentation, on rajoute un texte avec l'outil texte (A) et on met dedans : &ch1 &ch2

III. Exemple

On crée un rapport qui affiche pour chaque département ses employés. Le département est affiché verticalement.

III-A. La requête

 
Sélectionnez
SELECT   empno, ename, sal, comm,
         DECODE (dept.deptno,
                 NULL, NULL,
                 dept.deptno || ' - ' || dname
                ) dname
    FROM emp, dept
   WHERE emp.deptno = dept.deptno
ORDER BY dept.deptno

III-B. Le modèle de présentation

Image non disponible
3-2. Modèle de présentation

III-C. Le résultat

Image non disponible
3-3. Résultat

IV. Bonus

Comment colorer les lignes paires dans une liste des employés?
Voici la méthode à suivre :

Image non disponible
5.Modéle de présentation

IV-A. La colonne de réserve : cp_n_ligne

Elle sert à incrémenter le numéro de la ligne.

Image non disponible
5-1. Les propriétés de la colonne de réserve

IV-B. La colonne récapitulative : cs_somme_ligne

Elle sert à déterminer le numéro de la ligne courante.

Image non disponible
5-2. Les propriétés de la colonne récapitulative

IV-C. Modèle de présentation

Image non disponible
5-3.Modéle de présentation

Mettre dans la partie PLSQL de l'encadrement itératif R_emp (apparaît en rouge dans la figure 5-3) qui prend sa source de g_empno,
le code suivant :

 
Sélectionnez
FUNCTION r_empformattrigger
   RETURN BOOLEAN
 
IS
BEGIN
   IF MOD (:cs_somme_ligne, 2) = 0
   THEN
      srw.set_foreground_fill_color ('GRAY28');
      srw.set_fill_pattern ('solid');
   END IF;
   RETURN (TRUE);
END;

IV-D. Le résultat

Image non disponible
5-4.Résultat

V. Le rapport de test

Un fichier zip contient le rapport de test DEPT_VERTICAL.RDF.
DEPT_VERTICAL.zip

VI. Idée originale et remerciements

L'idée originale de la rotation des champs provient du site metalink
Lien Metalink
Chaleureux remerciements à M. Sheik Yerbouti, Mlle Denise Samkocwa, Developpez.com et l'équipe SGBD

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur.