Accueil
Rechercher:
sur developpez.com sur les forums
Forums | Tutoriels | F.A.Q's | Participez | Hébergement | Contacts
Club Emploi Blogs   TV   Dév. Web PHP XML Python Autres 2D-3D-Jeux Sécurité Windows Linux PC Mac
Accueil Conception Java DotNET Visual Basic  C  C++ Delphi MS-Office SQL & SGBD Oracle  4D  Business Intelligence
FORUM ORACLE F.A.Q ORACLE TUTORIELS ORACLE TUTORIELS SQL SCRIPTS SQL LIVRES ORACLE QUIZ

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

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 

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
en Lien Metalink
Chaleureux remerciements à M. Sheik Yerbouti, Mlle Denise Samkocwa, Developpez.com et l'équipe SGBD



Valid XHTML 1.1!Valid CSS!

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.
Responsable bénévole de la rubrique Oracle : Xavier Vlieghe - Contacter par EMail :
Vos questions techniques : forum d'entraide Oracle - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Copyright © 2000-2008 www.developpez.com - Legal informations.