Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > ODS et reporting
ODS et reporting Forum d'entraide sur les fonctionnalités de reporting de SAS : gérer les sorties et graphiques de SAS
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/04/2011, 16h48   #1
Invité de passage
 
Homme
Développeur SAS
Inscription : 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 : 2
Points : 2
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 :
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!!!
Nirvana84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2011, 17h01   #2
Modérateur
 
Homme Samir SELMANE
Consultant en Business Intelligence
Inscription : février 2011
Messages : 1 006
Détails du profil
Informations personnelles :
Nom : Homme Samir SELMANE
Localisation : France

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

Informations forums :
Inscription : février 2011
Messages : 1 006
Points : 1 703
Points : 1 703
Bonjour,

jettes un coup d'oeil sur le lien suivant:

http://www2.sas.com/proceedings/sugi31/052-31.pdf.
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2011, 17h11   #3
Modérateur
 
Homme Samir SELMANE
Consultant en Business Intelligence
Inscription : février 2011
Messages : 1 006
Détails du profil
Informations personnelles :
Nom : Homme Samir SELMANE
Localisation : France

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

Informations forums :
Inscription : février 2011
Messages : 1 006
Points : 1 703
Points : 1 703
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 :
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.
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2011, 17h17   #4
Invité de passage
 
Homme
Développeur SAS
Inscription : 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 : 2
Points : 2
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
Nirvana84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2011, 17h26   #5
Modérateur
 
Homme Samir SELMANE
Consultant en Business Intelligence
Inscription : février 2011
Messages : 1 006
Détails du profil
Informations personnelles :
Nom : Homme Samir SELMANE
Localisation : France

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

Informations forums :
Inscription : février 2011
Messages : 1 006
Points : 1 703
Points : 1 703
t'as supprimé ce que je t'ai dis ?

Code :
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;
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2011, 17h39   #6
Invité de passage
 
Homme
Développeur SAS
Inscription : 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 : 2
Points : 2
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...
Nirvana84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2011, 18h49   #7
Expert Confirmé
 
Avatar de olivier.decourt
 
Homme Olivier Decourt
Formateur en informatique
Inscription : avril 2008
Messages : 1 467
Détails du profil
Informations personnelles :
Nom : Homme Olivier Decourt
Âge : 34
Localisation : France

Informations professionnelles :
Activité : Formateur en informatique
Secteur : Conseil

Informations forums :
Inscription : avril 2008
Messages : 1 467
Points : 2 823
Points : 2 823
Bonjour Nirvana.
Je te propose de faire ainsi :
Code :
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 ;
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2011, 14h00   #8
Invité de passage
 
Homme
Développeur SAS
Inscription : 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 : 2
Points : 2
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
Type de fichier : jpg tableau.JPG (13,0 Ko, 11 affichages)
Nirvana84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2011, 17h25   #9
Expert Confirmé
 
Avatar de olivier.decourt
 
Homme Olivier Decourt
Formateur en informatique
Inscription : avril 2008
Messages : 1 467
Détails du profil
Informations personnelles :
Nom : Homme Olivier Decourt
Âge : 34
Localisation : France

Informations professionnelles :
Activité : Formateur en informatique
Secteur : Conseil

Informations forums :
Inscription : avril 2008
Messages : 1 467
Points : 2 823
Points : 2 823
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 :
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 ?
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2011, 17h34   #10
Invité de passage
 
Homme
Développeur SAS
Inscription : 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 : 2
Points : 2
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 :
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é!!!!
Nirvana84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2011, 17h44   #11
Modérateur
 
Homme Samir SELMANE
Consultant en Business Intelligence
Inscription : février 2011
Messages : 1 006
Détails du profil
Informations personnelles :
Nom : Homme Samir SELMANE
Localisation : France

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

Informations forums :
Inscription : février 2011
Messages : 1 006
Points : 1 703
Points : 1 703
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.
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2011, 17h48   #12
Invité de passage
 
Homme
Développeur SAS
Inscription : 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 : 2
Points : 2
Code :
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
Nirvana84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2011, 17h49   #13
Expert Confirmé
 
Avatar de olivier.decourt
 
Homme Olivier Decourt
Formateur en informatique
Inscription : avril 2008
Messages : 1 467
Détails du profil
Informations personnelles :
Nom : Homme Olivier Decourt
Âge : 34
Localisation : France

Informations professionnelles :
Activité : Formateur en informatique
Secteur : Conseil

Informations forums :
Inscription : avril 2008
Messages : 1 467
Points : 2 823
Points : 2 823
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 :
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 :
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;
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/04/2011, 09h08   #14
Invité de passage
 
Homme
Développeur SAS
Inscription : 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 : 2
Points : 2
Ca a l'air de fonctionner comme ça! Merci à tous une fois de plus!!!
Nirvana84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h08.


 
 
 
 
Partenaires

Hébergement Web