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 25/08/2011, 16h24   #1
Invité de passage
 
Homme
Consultant en Business Intelligence
Inscription : août 2011
Messages : 2
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

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

Informations forums :
Inscription : août 2011
Messages : 2
Points : 0
Points : 0
Par défaut Gestion des headers avec % dans une proc template

Bonjour à tous,

Je voudrais créer dans un proc tempate pour un tableau, avec un header pour toutes les colonnes de mon tableau ainsi que 2 autres sous headers pour 2 groupes de colonnes.

Les textes pour ces headers sont contenus dans des macrovariables.

Jusqu'ici pas de problème.

Mais, le truc vient du fait que ces macrovariables contiennent parfois des "%" et du coup, les "%" sont doublés dans les tableaux.

Sans titre.JPG

Je voudrais avoir comme résultat le premier tableau, or j'ai le 2ème.

- "titi = test% toto" est contenu dans une macrovariable litil_b que je définis comme le text du header global (sur tout le tableau).
- "tata%" est contenu dans la macro labp que je définis comme header pour les colonnes quant, y1, y3 et y5.
- Je définis comme text "log10(" labp ")" pour le header des colonnes log_quant, logy1, logy3 et logy5.

Pouvez-vous me dire quel fonction, astuce, ce que vous voulez pour que je contoune ou règle ce petit problème?

Merci par avance pour aide.
jetli0105 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2011, 22h37   #2
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 828
Points : 2 828
Sans avoir fait de test, je dirais que dans la définition de ta macro-variable il faut protéger le % d'une interprétation quelconque par %NRSTR(%).
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2011, 09h45   #3
Invité de passage
 
Homme
Consultant en Business Intelligence
Inscription : août 2011
Messages : 2
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

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

Informations forums :
Inscription : août 2011
Messages : 2
Points : 0
Points : 0
En fait, je récupère la macrovariable avec un call symput dans une étape data.

Code :
1
2
3
4
5
6
7
8
DATA toto;
   a = "test% toto";
run;
 
DATA _null_;
   SET toto;
   call symput("litil_b",a);
run;
J'appelle cette macrovariable dans un template :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
proc template;
    define TABLE anadata.tableau_stats_interpol_avec_by;
       dynamic nomcol;
       classlevels=ON;
       order_data=ON;
 	  mvar labp litil_b ; /* Déclaration des macrovariables */
 	  header fby h1 h2 ; /* Définition des entêtes/labels de colonnes */
       define fby; /* Déf et style de l’entête «global» (couvrant tout le tableau)*/
                 text litil_b;
                 style=header{font_size=2};
       end; 
...
run;
Le problème ne vient-il pas plutôt du mvar?

Autre question, y-a-t-il une option pour la procédure template permettant de ne pas couper un tableau en plein milieu (ne pas avoir par exemple les 5 premières lignes sur une page et le reste sur une autre) parce qu'il est trop long?
jetli0105 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h55.


 
 
 
 
Partenaires

Hébergement Web