|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : avril 2010 Messages : 5 ![]() |
Bonjour,
je voudrais savoir comment il est possible (s'il est possible) de générer automatiquement un fichier rtf par table SAS. J'ai dans ma libraire 321 tables, et je n'ai jamais codé de macro... Et j'aimerais éviter de répéter un ods rtf 321 fois. J'ai SAS v9.0. Pouvez-vous m'aider svp ? |
|
|
00
|
|
|
#2 | ||
|
Membre Expert
![]() Biostatisticien Inscription : juin 2009 Messages : 1 143 ![]() |
Bonjour,
que souhaites tu dans ton fichier rtf, les données contenues dans ta table? Ca peut demander un peu de travail de "remodelage" si tu as beaucoup de données et de variables car sinon ton fichier sortie risque d'être peu lisible. Il serait donc bien que tu précises ta question. en tout cas voici comment faire: 1/ génère ta macro. Je propose en paramètre le nom de ton fichier sas(avec éventuellement librairie) et le nom/chemin de ton fichier sortie. Code :
Code :
%sortiertf(IN=sashelp.bweight, out="c:\test.rtf"); |
||
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
Il serait obligé d'executer la macro 321 fois non?
|
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Biostatisticien Inscription : juin 2009 Messages : 1 143 ![]() |
oui car les paramètres en entrée de la macro sont à chaque fois différents. mais c'est peut être automatisable si l'on peut connaître à l'avance la (les) localisation(s) des tables en entrée et la (les)localisation des rtf, c'est pour l'instant que l'on ne dispose pas.
Et pour aller un peu plus loin que la question, il y a même peut être moyen d'automatiser sans passer par du language macro, sous certaines conditions (connaissances des tables sas ou des répertoires), renommage en rtf en lien avec le nom sas de la table. Idée: détecter les.sas7bat, stocker dans une table sas. Puis pour chaque ligne de la table, exportation rtf. |
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
C'est plus facile pour moi de scanner la librairie en paramètre et faire une boucle sur toutes les tables dans ce repertoire via ODS.
Ton idée de renommage est peut être plus facile |
|
|
00
|
|
|
#6 | ||
![]() ![]() Samir SELMANEConsultant en Business Intelligence Inscription : février 2011 Messages : 1 006 ![]() |
Bonjour
Code :
|
||
|
|
00
|
|
|
#7 |
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
Beau gosse
|
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() Biostatisticien Inscription : juin 2009 Messages : 1 143 ![]() |
Effectivemment, en relisant le message de sasnew, le but est de prendre toutes les tables d'une seule librairie. Donc ce que vous proposez est le plus simple (si la localisation du chemin des rtf est unique et qu'on peut le nommer comme la table sas). J'avais envisagé le cas ou on veut sélectionner que certaines tables contenues dans plusieurs librairies.
|
|
|
00
|
|
|
#9 | ||
|
Membre habitué
![]() Géraldine CADE DESCHAMPSSupport Clients SAS (France et Europe) Inscription : février 2010 Messages : 62 ![]() |
Bonjour,
On peut faire exécuter la procédure pour chaque table de la bibliothèque sans utiliser le macro-language, pour cela il suffit d'utiliser le CALL EXECUTE : Code :
Pour en savoir plus sur le CALL EXECUTE : http://support.sas.com/documentation...a000127810.htm http://www.sas.com/offices/europe/fr...port_14_bd.pdf Cordialement, Géraldine CADE-DESCHAMPS Support Clients SAS |
||
|
|
00
|
|
|
#10 |
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
Oops Sam!!, Géraldine a dit mieux
|
|
|
00
|
|
|
#11 |
![]() ![]() Samir SELMANEConsultant en Business Intelligence Inscription : février 2011 Messages : 1 006 ![]() |
peut être .
Maintenant le soucis c'est comment gérer le saturation de la fenêtre output. J’attends que sasnew teste ces deux programmes. à mon avis il aura des surprises .sauf exécution par batch. !!! il faut ajouter des options pour ne pas générer les sorties dans la fenêtre output de sas ainsi qu'empêcher l'ouverture des 321 fichier rtf
|
|
|
00
|
|
|
#12 |
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
Il se servira de
|
|
|
00
|
|
|
#13 | ||
|
Nouveau Membre du Club
![]() Inscription : juillet 2010 Messages : 73 ![]() |
Bonjour,
Code :
j'ai une petite question : la MacroVariable &sqlobs. est définie à quel niveau ? Est-ce une MV automatique qui calcule le nb de table dans la librairie ? |
||
|
|
00
|
|
|
#14 | ||
![]() ![]() Samir SELMANEConsultant en Business Intelligence Inscription : février 2011 Messages : 1 006 ![]() |
c'est une macro variable automatique, générée par la proc sql et correspond à la dernière OBS selectionnée de la table.
Son utilisation est dangereuse car elle prend la valeur de la dernière proc sql exécutée et depend des filtres. Code :
|
||
|
|
10
|
|
|
#15 |
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
Tu as de la doc la dessus Sam?
C'est très pratique, ça évite de passer par une proc contents et data _null_ ! |
|
|
00
|
|
|
#16 | ||
|
Nouveau Membre du Club
![]() Inscription : juillet 2010 Messages : 73 ![]() |
Merci,
il vaudrait mieux ajouter un bout de code du genre qui compte le nb de tables: Code :
|
||
|
|
00
|
|
|
#17 |
![]() ![]() Samir SELMANEConsultant en Business Intelligence Inscription : février 2011 Messages : 1 006 ![]() |
|
|
|
00
|
|
|
#18 | |||
![]() ![]() Samir SELMANEConsultant en Business Intelligence Inscription : février 2011 Messages : 1 006 ![]() |
Citation:
|
|||
|
|
00
|
|
|
#19 |
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
|
|
|
00
|
|
|
#20 |
|
Invité de passage
![]() Inscription : avril 2010 Messages : 5 ![]() |
Sam et Géraldine, j'ai testé vos solutions, merci !!
Quant au fait de ne pas afficher dans l'output, Google est mon ami ! Merci à tous. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com