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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ODS et reporting Discussion :

Proc report : style(header) différents


Sujet :

ODS et reporting

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur SAS
    Inscrit en
    Mars 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SAS

    Informations forums :
    Inscription : Mars 2007
    Messages : 12
    Points : 8
    Points
    8
    Par défaut Proc report : style(header) différents
    Bonjour,

    Vu que vous avez pu me donner un bon coup de main la dernière fois, je reviens poster sur ce forum.

    J'aimerai que mes en-têtes de colonnes sous différentes au niveau du style(header).
    que le style header actuel s'applique pour le XXX et en faire un autre pour l'appliquer sur le "Moy=&essai_moy".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    proc report data=fusion nowd style(report)={JUST=left BORDERWIDTH=0.5pt FRAME=box RULES=groups}
    							style(header)={CELLWIDTH=7cm BACKGROUND=#002060 FOREGROUND=white FONT_FACE=Arial}
    							style(column)={FONT_FACE=Arial};
      column incont ("XXX" moylon ) ("Moy=&essai_moy" effic);
    	define moylon / "" display style(column) = {CELLWIDTH=17cm JUST=left VJUST=center};
    	define incont/ display noprint;
    	compute moylon;
    		if incont='Y' then call define(_COL_,'STYLE','STYLE=[FONT_WEIGHT=bold]');
    	endcomp;
    where id_activite="&id_activite" and categorie="2"; 
    	define effic / "" display style(column) = {CELLWIDTH=2cm JUST=CENTER BACKGROUND=bg_efficacite. FOREGROUND=bg_efficacite.};
    run;
    Merci de votre aide!!!

  2. #2
    Modérateur

    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2011
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2011
    Messages : 1 625
    Points : 3 403
    Points
    3 403
    Par défaut
    Bonjour,

    jettes un coup d'oeil sur le lien suivant:

    http://www2.sas.com/proceedings/sugi31/052-31.pdf.

  3. #3
    Modérateur

    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2011
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2011
    Messages : 1 625
    Points : 3 403
    Points
    3 403
    Par défaut
    tiens un petit exemple pour t'inspirer. Par contre il faut que tu supprimes le HEADER de la deuxième ligne dans ton CODE, car je crois qu'il défini un seul header pour l'ensemble des colonnes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    ods html file="c:\temp\test.html";
     
    proc report data=sashelp.class nowd ;
    column name weight;
    define name / display   style(header)=[just=center BACKGROUND=khaki color=blue fontsize=9PT width=200];
    define weight / display style(column)=
    [background=lemonchiffon]
      style(header)=[just=center BACKGROUND=red color=green fontsize=12PT width=200];
     
    run;
     
    ods html close;
    Bon courage.

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Développeur SAS
    Inscrit en
    Mars 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SAS

    Informations forums :
    Inscription : Mars 2007
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    Merci pour ton aide!
    Mais j'ai beau essayer de faire comme tu me le conseilles, il prend pas en compte le style header et j'arrive pas à voir pourquoi

  5. #5
    Modérateur

    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2011
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2011
    Messages : 1 625
    Points : 3 403
    Points
    3 403
    Par défaut
    t'as supprimé ce que je t'ai dis ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
     
    proc report DATA=fusion nowd /*style(report)={JUST=LEFT BORDERWIDTH=0.5pt FRAME=box RULES=groups}
    							style(header)={CELLWIDTH=7cm BACKGROUND=#002060 FOREGROUND=white FONT_FACE=Arial}
    							style(COLUMN)={FONT_FACE=Arial}*/;
      COLUMN incont ("XXX" moylon ) ("Moy=&essai_moy" effic);
    	define moylon / "" display style(COLUMN) = {CELLWIDTH=17cm JUST=LEFT VJUST=center}
                                   style(header)=[just=center BACKGROUND=coral color=lightcyan fontsize=14PT width=200] ;
    	define incont/ display noprint;
    	compute moylon;
    		IF incont='Y' then call define(_COL_,'STYLE','STYLE=[FONT_WEIGHT=bold]');
    	endcomp;
    WHERE id_activite="&id_activite" AND categorie="2"; 
    	define effic / "" display style(COLUMN) = {CELLWIDTH=2cm JUST=CENTER BACKGROUND=bg_efficacite. FOREGROUND=bg_efficacite.}
                          style(header)=[just=center BACKGROUND=red color=green fontsize=12PT width=200]  ;
    run;

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Développeur SAS
    Inscrit en
    Mars 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SAS

    Informations forums :
    Inscription : Mars 2007
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    Oui j'ai même fait un copier/coller de ce que tu m'as donné dans ton dernier message, en remettant les bons noms de variables quand même et ça marche pas, il ne prend en compte que le column pas le header...

  7. #7
    Expert confirmé
    Avatar de olivier.decourt
    Homme Profil pro
    Formateur R/SAS/statistiques
    Inscrit en
    Avril 2008
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Formateur R/SAS/statistiques
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 064
    Points : 4 478
    Points
    4 478
    Par défaut
    Bonjour Nirvana.
    Je te propose de faire ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    ODS PDF STYLE=JOURNAL ;
    ODS ESCAPECHAR="¤" ;
    PROC REPORT DATA=sashelp.class NOWD STYLE(HEADER)={FONT_WEIGHT=BOLD FOREGROUND=BLUE BACKGROUND=GRAY};
      COLUMNS sex ("Prénom" name) ("Age" age) ;
      DEFINE sex / NOPRINT ;
      DEFINE name / "¤S={BACKGROUND=RED}de l'enfant¤S={}" ;
      DEFINE age / "¤S={BACKGROUND=RED}de l'enfant¤S={}" ;
      COMPUTE name ;
        IF sex="F" THEN CALL DEFINE(_ROW_,"STYLE","STYLE={BACKGROUND=PINK}") ;
    	ELSE            CALL DEFINE(_ROW_,"STYLE","STYLE={BACKGROUND=CYAN}") ;
      ENDCOMP ;
    RUN ;
    ODS PDF CLOSE ;

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Développeur SAS
    Inscrit en
    Mars 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SAS

    Informations forums :
    Inscription : Mars 2007
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    Merci pour ton aide Olivier, mais ça ne me permet pas de faire ce que je veux...

    J'essaye de vous envoyer une image d'un tableau que je viens de faire sur Paint pour vous montrer ce que je veux, y'a eu une petit modification.

    Le bleu correspond à la couleur qui était avant en background du titre, puis il y a le titre et enfin la moyenne.

    Merci
    Images attachées Images attachées  

  9. #9
    Expert confirmé
    Avatar de olivier.decourt
    Homme Profil pro
    Formateur R/SAS/statistiques
    Inscrit en
    Avril 2008
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Formateur R/SAS/statistiques
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 064
    Points : 4 478
    Points
    4 478
    Par défaut
    Ce que je ne comprends pas bien dans l'exemple que tu nous envoies, c'est ce décalage entre la ligne d'en-tête et les lignes du tableau proprement dit.
    C'est vraiment cette mise en forme que tu cherches ? Ou c'est juste pour faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    +--------------------+------------------+----------------+
    |    fond bleu ici   |  fond blanc ici  | fond blanc ici |
    +--------------------+------------------+----------------+
    |   cellule fusionnée sur 2 colonnes    | cellule avec   |
    |                                       | coloriage sous |
    |                                       | conditions     |
    +---------------------------------------+----------------+
    un truc comme ça ?

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Développeur SAS
    Inscrit en
    Mars 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SAS

    Informations forums :
    Inscription : Mars 2007
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    En fait c'etait vraiment cette presentation là que je voulais faire, mais je passe par un autre moyen, un système de titre, je devrais réussir à m'en sortir avec ça, mais un autre problème vient de se poser, (j'ai pas encore chercher de solution mais puisque je post autant poser la question)

    comment peut on faire appel à une macro variable dans un data infile?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    data tit_cat;
      infile datalines truncover;
      input num 1-2 libelle $ 3-17 moyenne 18-20;
      datalines;
    1 Moyens humains &essai_moy
    ;
    run;
    ça, ça marche pas.

    En tout cas merci d'avoir cherché!!!!

  11. #11
    Modérateur

    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2011
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2011
    Messages : 1 625
    Points : 3 403
    Points
    3 403
    Par défaut
    tu l'as déclaré où ta macro variable?
    et elle égale à quoi?

    l'idéal, c'est de poseter le code que t'utilise, car personellement je ne vois pas de problème dans l'appel de la macro variable.

  12. #12
    Futur Membre du Club
    Homme Profil pro
    Développeur SAS
    Inscrit en
    Mars 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SAS

    Informations forums :
    Inscription : Mars 2007
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    DATA _NULL_ ;
        SET effic_categorie ;
        IF categorie=1 THEN CALL SYMPUT ("essai_moy", COMPRESS(moy_efficacite)) ;
    *    STOP ;
    RUN ;
    /*********/
    data tit_cat;
      infile datalines truncover;
      input num 1-2 libelle $ 3-17 moyenne 18-20;
      datalines;
    1 Moyens humains &essai_moy
    ;
    run;
    voilà la partie du code... et c'est un numérique

  13. #13
    Expert confirmé
    Avatar de olivier.decourt
    Homme Profil pro
    Formateur R/SAS/statistiques
    Inscrit en
    Avril 2008
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Formateur R/SAS/statistiques
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 064
    Points : 4 478
    Points
    4 478
    Par défaut
    Le problème de ce DATALINES devrait peut-être faire l'objet d'un post séparé.
    Le souci SAM, c'est que DATALINES ou CARDS font partie des quelques rares endroits où le compilateur macro n'a pas le droit de fourrer son nez. Si tu exécutes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    %LET test=1 ;
    DATA _NULL_ ;
      INPUT pour_voir $ ;
      PUT pour_voir= ;
     DATALINES ;
     &test
     ;
     RUN ;
    tu verras qu'il y a &test et pas 1 dans la variable SAS.
    A ma connaissance, tel que, pas de moyen de s'en sortir. Par contre, si c'est pour faire une colonne constante, tu peux toujours faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    DATA tit_cat;
      INFILE datalines truncover;
      input num 1-2 libelle $ 3-17 ;
      moyenne = &essai_moy ;
      datalines;
    1 Moyens humains
    ;
    run;

  14. #14
    Futur Membre du Club
    Homme Profil pro
    Développeur SAS
    Inscrit en
    Mars 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SAS

    Informations forums :
    Inscription : Mars 2007
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    Ca a l'air de fonctionner comme ça! Merci à tous une fois de plus!!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 22/05/2013, 10h07
  2. proc report : insérer une ligne de séparation dans le header
    Par Cyrielle25 dans le forum ODS et reporting
    Réponses: 2
    Dernier message: 15/06/2011, 13h09
  3. Style proc report et WRS
    Par ganjah06 dans le forum ODS et reporting
    Réponses: 1
    Dernier message: 03/01/2011, 12h01
  4. Proc report et Style
    Par ganjah06 dans le forum ODS et reporting
    Réponses: 3
    Dernier message: 30/12/2010, 14h11
  5. Proc report (Groupe et style par ligne)
    Par lhonolulu dans le forum SAS Base
    Réponses: 3
    Dernier message: 18/08/2009, 15h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo