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.