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 :

Format dans proc report suivant variable


Sujet :

ODS et reporting

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2012
    Messages : 17
    Points : 14
    Points
    14
    Par défaut Format dans proc report suivant variable
    Bonjour à tous,

    Je cherche à créer une Proc Report à 3 dimension et à mettre en forme suivant la lecture d'une autre variable dans mes données.
    Je m'explique, voilà mes données :

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    data work.test;
    input Ecole $ Classe $ Ville $ sexe$ nombre y1  ;
    cards;
    College pro Toulouse Fille 3 1 
    College pro Toulouse Homme 13 1 
    College etu Toulouse Fille 13 1 
    College etu Toulouse Homme 2 1
     
    College pro Paris Fille 53 2 
    College pro Paris Homme 13 2 
    College etu Paris Fille 1 2
    College etu Paris Homme 3 2 
     
    College pro Amiens Fille 8 3 
    College pro Amiens Homme 0 3 
    College etu Amiens Fille 23 3 
    College etu Amiens Homme 9 3
     
    Lycee pro Amiens Fille  15 3 
    Lycee pro Amiens Homme  2 3 
    Lycee etu Amiens Fille  9 3 
    Lycee etu Amiens Homme  5 3 
     
    Lycee pro Toulouse Fille  22 1 
    Lycee pro Toulouse Homme  5 1 
    Lycee etu Toulouse Homme  5 1 
    Lycee etu Toulouse Fille  9 1 
     
    Lycee pro Paris Fille  12 1 
    Lycee pro Paris Homme  5 1 
    Lycee etu Paris Homme  5 1 
    Lycee etu Paris Fille  8 1 
     
    Primaire pro Amiens Fille 0 2 
    Primaire pro Amiens Homme 0 2 
    Primaire etu Amiens Fille 3 2 
    Primaire etu Amiens Homme 12 2 
     
    Primaire pro Toulouse Fille 0 2 
    Primaire pro Toulouse Homme 0 2 
    Primaire etu Toulouse Fille 2 2 
    Primaire etu Toulouse Homme 9 2 
     
    Primaire pro Paris Fille 0 3
    Primaire pro Paris Homme 0 3 
    Primaire etu Paris Fille 53 3 
    Primaire etu Paris Homme 9 3 
    ;
    run;
    La variable y1 contient un code couleur.

    La proc report suivante affiche mes données tel que je le souhaite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    proc report data=test nowd  ;
    title1 "Test 1"; 
    column Ecole Classe Ville, sexe, nombre   ; 
    define Ecole / '' group  style(column)=[  cellwidth   = 4 cm just  = c];
    define Classe / ''  across group center ;
    define Ville / '' across ;
    define sexe / ''  across ;
    define nombre /  analysis  ''  ; 
    run;
    Nom : test1.PNG
Affichages : 861
Taille : 6,2 Ko

    et je cherche maintenant à colorer les cases suivant la variable y1.
    La coloration serait donc la suivante (mais les données affichées sont les couleurs et pas le nombre) :

    Nom : test3.PNG
Affichages : 821
Taille : 5,7 Ko

    Ce qui s'en approche le plus est cette version ... :

    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
    17
    18
    19
    20
    proc report data=test nowd  ;
    title1 "Test 2"; 
    column Ecole Classe y1 Ville, sexe, nombre    ; 
    define Ecole / '' group  style(column)=[  cellwidth   = 4 cm just  = c];
    define y1 /  group noprint  ''  ; 
    define Classe / ''  across group center ;
    define Ville / '' across ;
    define sexe / ''  across ;
    define nombre /  analysis  ''  ; 
     
    COMPUTE nombre;
    IF y1 = 1
    THEN CALL DEFINE(_COL_, "style", "STYLE=[BACKGROUND=RED]");
    IF y1 = 2
    THEN CALL DEFINE(_COL_, "style", "STYLE=[BACKGROUND=ORANGE]");
    IF y1 = 3
    THEN CALL DEFINE(_COL_, "style", "STYLE=[BACKGROUND=GREEN]");
    ENDCOMP;
     
    run;
    Nom : test2.PNG
Affichages : 904
Taille : 9,8 Ko



    Quelqu'un aurait une astuce ?
    Merci d'avance !

    (Mon code complet :
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
     
    data work.test;
    input Ecole $ Classe $ Ville $ sexe$ nombre y1  ;
    cards;
    College pro Toulouse Fille 3 1 
    College pro Toulouse Homme 13 1 
    College etu Toulouse Fille 13 1 
    College etu Toulouse Homme 2 1
     
    College pro Paris Fille 53 2 
    College pro Paris Homme 13 2 
    College etu Paris Fille 1 2
    College etu Paris Homme 3 2 
     
     
    College pro Amiens Fille 8 3 
    College pro Amiens Homme 0 3 
    College etu Amiens Fille 23 3 
    College etu Amiens Homme 9 3
     
    Lycee pro Amiens Fille  15 3 
    Lycee pro Amiens Homme  2 3 
    Lycee etu Amiens Fille  9 3 
    Lycee etu Amiens Homme  5 3 
     
    Lycee pro Toulouse Fille  22 1 
    Lycee pro Toulouse Homme  5 1 
    Lycee etu Toulouse Homme  5 1 
    Lycee etu Toulouse Fille  9 1 
     
    Lycee pro Paris Fille  12 1 
    Lycee pro Paris Homme  5 1 
    Lycee etu Paris Homme  5 1 
    Lycee etu Paris Fille  8 1 
     
     
    Primaire pro Amiens Fille 0 2 
    Primaire pro Amiens Homme 0 2 
    Primaire etu Amiens Fille 3 2 
    Primaire etu Amiens Homme 12 2 
     
     
    Primaire pro Toulouse Fille 0 2 
    Primaire pro Toulouse Homme 0 2 
    Primaire etu Toulouse Fille 2 2 
    Primaire etu Toulouse Homme 9 2 
     
     
    Primaire pro Paris Fille 0 3
    Primaire pro Paris Homme 0 3 
    Primaire etu Paris Fille 53 3 
    Primaire etu Paris Homme 9 3 
    ;
    run;
     
     
    proc report data=test nowd  ;
    title1 "Test 1"; 
    column Ecole Classe Ville, sexe, nombre   ; 
    define Ecole / '' group  style(column)=[  cellwidth   = 4 cm just  = c];
    define Classe / ''  across group center ;
    define Ville / '' across ;
    define sexe / ''  across ;
    define nombre /  analysis  ''  ; 
    run;
     
     
    proc report data=test nowd  ;
    title1 "Test 2"; 
    column Ecole Classe y1 Ville, sexe, nombre    ; 
    define Ecole / '' group  style(column)=[  cellwidth   = 4 cm just  = c];
    define y1 /  group noprint  ''  ; 
    define Classe / ''  across group center ;
    define Ville / '' across ;
    define sexe / ''  across ;
    define nombre /  analysis  ''  ; 
     
    COMPUTE nombre;
    IF y1 = 1
    THEN CALL DEFINE(_COL_, "style", "STYLE=[BACKGROUND=RED]");
    IF y1 = 2
    THEN CALL DEFINE(_COL_, "style", "STYLE=[BACKGROUND=ORANGE]");
    IF y1 = 3
    THEN CALL DEFINE(_COL_, "style", "STYLE=[BACKGROUND=GREEN]");
    ENDCOMP;
    run;
     
    proc format;
     value couleur
       1 = 'red'
       2 = 'orange'
       3 = 'green';
    run;
     
    proc report data=test nowd headline headskip style(report)=[rules=none frame=void ] ;
    title1 "Test 3"; 
    column Ecole Classe Ville, sexe,   y1;  ;
    define Ecole / '' group  style(column)=[  cellwidth   = 4 cm just  = c];
    define Classe / ''  across group center ;
    define Ville / '' across ;
    define sexe / ''  across ;
    define y1 / analysis    ''; 
     
    COMPUTE y1;
    CALL DEFINE(_COL_, "style", "STYLE=[BACKGROUND=couleur.]");
    ENDCOMP;
    run;
    )

  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
    Hello,

    si j'ai bien compris, tu veux afficher les couleurs à la place des chiffres ? si c'est ça, essaie ceci :
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    proc format;
     value couleur
       1 = 'red'
       2 = 'orange'
       3 = 'green'
       other=[best.];
    run;
     
    proc report DATA=test nowd  ;
    title1 "Test 2"; 
    COLUMN Ecole Classe y1 Ville, sexe, nombre    ; 
    define Ecole / '' GROUP  style(COLUMN)=[  cellwidth   = 4 cm just  = c];
    define y1 /  GROUP noprint  ''  ; 
    define Classe / ''  across GROUP center ;
    define Ville / '' across ;
    define sexe / ''  across ;
    define nombre /  analysis  ''  ; 
     
    COMPUTE nombre;
    CALL DEFINE(_COL_, "style", "STYLE=[BACKGROUND=couleur. foreground=couleur.]");
    ENDCOMP;
    run;
     
     
     
    proc report DATA=test nowd headline headskip style(report)=[rules=none frame=void ] ;
    title1 "Test 3"; 
    COLUMN Ecole Classe Ville, sexe,   y1;  ;
    define Ecole / '' GROUP  style(COLUMN)=[  cellwidth   = 4 cm just  = c];
    define Classe / ''  across GROUP center ;
    define Ville / '' across ;
    define sexe / ''  across ;
    define y1 / analysis    ''; 
     
    COMPUTE y1;
    CALL DEFINE(_COL_, "style", "STYLE=[BACKGROUND=couleur. foreground=couleur.]");
    ENDCOMP;
    run;

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2012
    Messages : 17
    Points : 14
    Points
    14
    Par défaut
    Bonjour et merci de la réponse,

    Non c'est n'est pas tout à fait ça, je voudrais afficher la valeur de la variable "nombre" mais avec les couleurs en background de la variable "y1".

    Merci d'avance !

  4. #4
    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 veux colorer les cellules ou les lignes ? pour les cellules et encore ici la coloration se base sur la valeur de NOMBRE et non pas Y2 :
    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
    17
    18
     
    proc report DATA=test nowd  ;
    title1 "Test 3"; 
    COLUMN Ecole Classe y1 Ville, sexe, nombre    ; 
    define Ecole / '' GROUP  style(COLUMN)=[  cellwidth   = 4 cm just  = c];
    define y1 /  GROUP   '' noprint  ; 
    define Classe / ''  across GROUP center ;
    define Ville / '' across ;
    define sexe / ''  across ;
    define nombre /  analysis  ''  ; 
     
    COMPUTE nombre;
     
    CALL DEFINE(_row_, "style", "STYLE=[BACKGROUND=couleur.]");
     
    ENDCOMP;
     
    run;
    sinon peux tu nous donner un aperçu de ce que tu veux obtenir ?

  5. #5
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2012
    Messages : 17
    Points : 14
    Points
    14
    Par défaut
    Oui, voilà ce que je cherche à obtenir :

    Nom : voulu.PNG
Affichages : 755
Taille : 8,0 Ko

Discussions similaires

  1. define noprint pour certaines valeurs dans proc report
    Par servane dans le forum ODS et reporting
    Réponses: 9
    Dernier message: 25/05/2011, 19h24
  2. sas break after capricieux dans Proc Report
    Par servane dans le forum ODS et reporting
    Réponses: 9
    Dernier message: 24/05/2011, 11h55
  3. Somme dans proc report
    Par ludo35 dans le forum SAS Base
    Réponses: 1
    Dernier message: 06/04/2011, 15h03
  4. ODS - Proc Report - HTML (variables répétitives non affichées)
    Par PBourdages dans le forum ODS et reporting
    Réponses: 5
    Dernier message: 25/03/2010, 16h25
  5. Supprimer titre dans proc report
    Par Prisni dans le forum ODS et reporting
    Réponses: 2
    Dernier message: 31/03/2009, 16h02

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