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 21/11/2011, 16h52   #1
Membre du Club
 
Homme
sas
Inscription : juillet 2011
Messages : 70
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : sas
Secteur : Conseil

Informations forums :
Inscription : juillet 2011
Messages : 70
Points : 54
Points : 54
Par défaut Format de cellule avec ODS output

Bonjour,

J'ai un problème de format de sortie des données on utilisant ODS output.
le format de sortie est un fichier Excel
sur la variable NNI dans le code ci_dessous variable j’obtiens des valeurs sous cette forme 1,2307E+12
ou lieu d'obtenir la valeur 2360153183002.

Manuellement je modifie le format de la colonne on ouvrant le fichier excel puis sur la colonne concerné je modifie le format je sélectionne le format spécial et puis je prend par défaut code postale
.
ce que est demande est de mettre cette manipulation en automatique; c_a_d choisir un format au preable

voici le code que j'ai développé
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
ods noresults;
ods listing close;
ods html file=_temp_ rs=none style=minimal;
title;
footnote;
proc print DATA=di1 noobs ;
var reference_contrat no_siren raison_sociale;
var nni/ style  ;
var nom prenom ligne_adresse1 ligne_adresse2 ligne_adresse3 ligne_adresse4 Code_postal Commune ;
run;
ods html close;
ods results;
ods listing;
filename _temp_;
le
m.brahim est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2011, 11h08   #2
Modérateur
 
Homme Samir SELMANE
Consultant en Business Intelligence
Inscription : février 2011
Messages : 1 012
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 012
Points : 1 717
Points : 1 717
Hello;
regardes du coté de
Code :
style={tagattr='format:...'};
à mes connaissances, le probléme viens d'Excel et non pas de SAS , t'as aussi la possibilité de changer les valeurs du registre Excel (dans regedit), je me souviens plus de la valeur à mettre, ( tu peux chercher sur le WEB).

pour le tagattr , j'espère pour toi que tes valeurs sont toutes de type numérique ( pas de caractère alphabétique ou caractères spéciaux pour appliquer le bon format .
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2011, 13h09   #3
Membre du Club
 
Homme
sas
Inscription : juillet 2011
Messages : 70
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : sas
Secteur : Conseil

Informations forums :
Inscription : juillet 2011
Messages : 70
Points : 54
Points : 54
Bonjour
toujours pas avec style={tagattr=....

est ce qu'il y a une autre solution

salutation
m.brahim est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2011, 14h22   #4
Modérateur
 
Homme Samir SELMANE
Consultant en Business Intelligence
Inscription : février 2011
Messages : 1 012
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 012
Points : 1 717
Points : 1 717
il faut que je cherche
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2011, 14h58   #5
Membre du Club
 
Homme
sas
Inscription : juillet 2011
Messages : 70
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : sas
Secteur : Conseil

Informations forums :
Inscription : juillet 2011
Messages : 70
Points : 54
Points : 54
Ok merci sam
m.brahim est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2011, 10h33   #6
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
Le TAGATTR ne marche pas toujours avec ODS HTML. Il vaut mieux se tourner vers ODS TAGSETS.EXCELXP (sauf si tu as Excel 2000).
Comme je suppose que NNI est un n° de Sécu, je t'ai directement appliqué le format "Sécurité Sociale" d'Excel.
Code :
1
2
3
4
5
6
7
8
9
10
11
DATA work.test ;
  nni_num = 2360153183002 ;
  nni_car = "2360153183002" ;
RUN ;
ODS TAGSETS.EXCELXP BODY="c:\temp\test.xls" STYLE=MINIMAL RS=NONE ;
PROC PRINT DATA=work.test NOOBS ;
  VAR nni_num nni_car / STYLE=[TAGATTR="FORMAT:%NRSTR([>=3000000000000]#" "##" "##" "##" "###" "###" | "##;#" "##" "##" "##" "###" "###)"] ;
  FORMAT nni_num 32.
         nni_car $32. ;
RUN ;
ODS TAGSETS.EXCELXP CLOSE ;
Bon courage.
Olivier
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2011, 11h24   #7
Membre du Club
 
Homme
sas
Inscription : juillet 2011
Messages : 70
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : sas
Secteur : Conseil

Informations forums :
Inscription : juillet 2011
Messages : 70
Points : 54
Points : 54
Bonjour,

Je viens de tester votre code sur mon pc ce n'a pas marché
Je voici sa configuration:
je dispose de windows 7 et excel 2007
voici l'error que sas me renvois
Code :
ERROR: Parenthèse manquante après appel fonction macro.
vu ce message j'ai essaye vais enorment de manipulation sans vraiment arriver à touver le solution.
cordialement
m.brahim est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2011, 11h35   #8
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
Essayons
Code :
1
2
3
4
5
PROC PRINT DATA=work.test NOOBS ;
VAR nni_num nni_car / STYLE=[TAGATTR="FORMAT:# ## ## ## ### ###"] ;
FORMAT nni_num 32.
         nni_car $32. ;
RUN ;
Chez moi (Excel 2010) ça fonctionne.
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 25/11/2011, 11h48   #9
Membre du Club
 
Homme
sas
Inscription : juillet 2011
Messages : 70
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : sas
Secteur : Conseil

Informations forums :
Inscription : juillet 2011
Messages : 70
Points : 54
Points : 54
a code a fonctionné, mais les données de la variable nni sont présentés sous cette forme1,2307E+12
m.brahim est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2011, 10h04   #10
Membre régulier
 
Inscription : novembre 2009
Messages : 77
Détails du profil
Informations forums :
Inscription : novembre 2009
Messages : 77
Points : 74
Points : 74
Citation:
Envoyé par olivier.decourt Voir le message
STYLE=[TAGATTR="FORMAT:# ## ## ## ### ###"] ;
Grandiose Olivier! C'est justement un problème que nous avions au boutot depuis hier matin!
Fred
P.S.: J'ai commandé ton bouquin ODS ;-)
frfancha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 10h17   #11
Membre du Club
 
Homme
sas
Inscription : juillet 2011
Messages : 70
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : sas
Secteur : Conseil

Informations forums :
Inscription : juillet 2011
Messages : 70
Points : 54
Points : 54
Pour moi le problème n'est encore resolu, je suppose que la version d'Excel que à la quelle je dispose ne permet pas d'avoir un bon format.

je precise que la version Excel 2007 installer sur windows 7.

cordialement
m.brahim est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 11h08   #12
Membre du Club
 
Homme
sas
Inscription : juillet 2011
Messages : 70
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : sas
Secteur : Conseil

Informations forums :
Inscription : juillet 2011
Messages : 70
Points : 54
Points : 54
C'est ok comme ca il marche

Code :
1
2
3
4
5
6
7
8
ods tagsets.excelxp file="\\c:\DI105518_&sysdate..xls";
 
proc print  DATA=egtask.di105518_fin;
 var reference_contrat no_siren raison_sociale nni /STYLE=[TAGATTR="FORMAT:# ## ## ## ### ###"];
 var nom prenom ligne_adresse1 ligne_adresse2 ligne_adresse3 ligne_adresse4 Code_postal Commune;
 
run;
ods tagsets.excelxp close;
il me reste un encore un petit problème:
JE veux supprimer la premiere colonne OBS est il possible? j'ai essaye avec drop mais dans ce cas de figure on peut pas le faire

Merci a tous pour ces eclaircissement
m.brahim est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 11h34   #13
Modérateur
 
Homme Samir SELMANE
Consultant en Business Intelligence
Inscription : février 2011
Messages : 1 012
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 012
Points : 1 717
Points : 1 717
Hello brahim;
as tu essayé avec
Code :
1
2
3
4
5
6
7
8
9
10
 
 
ods tagsets.excelxp file="\\c:\DI105518_&sysdate..xls";
 
proc print DATA=egtask.di105518_fin noobs;
var reference_contrat no_siren raison_sociale nni /STYLE=[TAGATTR="FORMAT:# ## ## ## ### ###"];
var nom prenom ligne_adresse1 ligne_adresse2 ligne_adresse3 ligne_adresse4 Code_postal Commune;
 
run;
ods tagsets.excelxp close;
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 11h38   #14
Modérateur
 
Homme Samir SELMANE
Consultant en Business Intelligence
Inscription : février 2011
Messages : 1 012
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 012
Points : 1 717
Points : 1 717
pour le problème des formats.
Un outil plus performant que l'ODS tagsets.excelxp .Moi je te conseil le ods msoffice2k et utiliser le format
Code :
1
2
 
var ma_variable / style(DATA)={htmlstyle="mso-number-format:\@"};
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 11h43   #15
Membre du Club
 
Homme
sas
Inscription : juillet 2011
Messages : 70
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : sas
Secteur : Conseil

Informations forums :
Inscription : juillet 2011
Messages : 70
Points : 54
Points : 54
Oui effectivement il y avait le noobs qui est manqué

Merci sam
m.brahim est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 11h49   #16
Modérateur
 
Homme Samir SELMANE
Consultant en Business Intelligence
Inscription : février 2011
Messages : 1 012
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 012
Points : 1 717
Points : 1 717
Bon je rajoute quelques précisiond sur l'origine de ta problèmatique, sa pourra aider les autres:
Extrait de The Perfect Marriage

Code :
1
2
3
4
5
6
7
8
9
10
11

This anecdotal situation is similar to the way things work between ODS and Microsoft Office. For example, consider a
situation in which you export data to Excel using an ODS destination. The output might not be displayed in Excel the
way you expect unless you communicate to Excel how the output should appear. Without this communication, the
expected output might not occur, for the following reasons:
• Leading and trailing zeroes are omitted in numbers.
• Numbers larger than 13 digits are displayed in scientific notation.
• Numeric values longer than 15 digits lose precision.
• Numbers connected by dashes might be converted to a date.
• Specifying the COMMA format in SAS might not carry through in Excel.
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h10.


 
 
 
 
Partenaires

Hébergement Web