Rotation des champs en reports (Oracle)
Date de publication : 30/06/2007
Par
Salim Chelabi
Comment faire la rotation des champs en reports ?
I. Problématique
II. Solution
III. Exemple
III-A. La requête
III-B. Le modèle de présentation
III-C. Le résultat
IV. Bonus
IV-A. La colonne de réserve : cp_n_ligne
IV-B. La colonne récapitulative : cs_somme_ligne
IV-C. Modèle de présentation
IV-D. Le résultat
V. Le rapport de test
VI. Idée originale et remerciements
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
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
 3-2. Modèle de présentation
III-C. Le résultat
 3-3. Résultat
IV. Bonus
Comment colorer les lignes paires dans une liste des employés?
Voici la méthode à suivre :
 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.
 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.
 5-2. Les propriétés de la colonne récapitulative
IV-C. Modèle de présentation
 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 :
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
 5-4.Résultat
V. Le rapport de test
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
 
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.
|