|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité régulier
![]() Inscription : avril 2009 Messages : 60 ![]() |
Bonjour
J'ai un petit problème avec des macro-variables créées par des call symput qui se trouvent elles-mêmes dans des macros... Normalement, si elles sont créées ainsi, il n'y a pas de soucis pour les réutiliser hors de la macro. Le problème que j'ai constaté, est que lorsqu'elles sont créées dans une boucle, elles ne peuvent être utilisées hors de la macro. Voici mon code qui a pour but de récupérer les moyennes de mes données. Code :
Bonne journée!! |
||
|
|
00
|
|
|
#2 | ||
![]() ![]() Samir SELMANEConsultant en Business Intelligence Inscription : février 2011 Messages : 1 006 ![]() |
Hello,
beaucoup d'anomalies dans ton programme. il faut procéder par étape. j te donne un exemple, essaies de t'inspérer: Code :
|
||
|
|
00
|
|
|
#3 | ||
![]() ![]() Stéphane Consultant et formateur SAS et Cognos Inscription : avril 2009 Messages : 1 791 ![]() |
C'est ce que tu veux ?
Code :
__________________
N'oubliez pas de cliquer sur lorsque votre problème est réglé !Moteur de recherche dans les papiers SAS |
||
|
00
|
|
|
#4 | ||
|
Invité régulier
![]() Inscription : avril 2009 Messages : 60 ![]() |
Wouhou! Merci
En m'inspirant de vos deux codes, j'ai fait : Code :
|
||
|
|
00
|
|
|
#5 |
![]() ![]() Samir SELMANEConsultant en Business Intelligence Inscription : février 2011 Messages : 1 006 ![]() |
call symputx alligne les macro variables à gauche. Uniquement en V9.
|
|
|
00
|
|
|
#6 | ||
|
Expert Confirmé
![]() ![]() Olivier DecourtFormateur en informatique Inscription : avril 2008 Messages : 1 467 ![]() |
Le 2e intérêt de CALL SYMPUTX par rapport à CALL SYMPUT est de permettre d'indiquer si une macro-variable est globale (= utilisable en dehors du macro-programme où elle est créée) ou locale (cantonnée au macro-programme et détruite en fin d'exécution du MP).
Code :
|
||
|
|
00
|
|
|
#7 |
|
Invité régulier
![]() Inscription : avril 2009 Messages : 60 ![]() |
Super! Merci, je ne savais pas qu'on pouvait les déclarer ainsi en global!
|
|
|
00
|
|
|
#8 | ||
![]() ![]() Stéphane Consultant et formateur SAS et Cognos Inscription : avril 2009 Messages : 1 791 ![]() |
Je te rassure elles l'étaient déjà.
Voici un test pour t'en assurer. Code :
__________________
N'oubliez pas de cliquer sur lorsque votre problème est réglé !Moteur de recherche dans les papiers SAS |
||
|
00
|
|
|
#9 | ||
![]() ![]() Samir SELMANEConsultant en Business Intelligence Inscription : février 2011 Messages : 1 006 ![]() |
par défaut, avec le CALL SYMPUT les macro variables sont GLOBAL.
Code :
|
||
|
|
00
|
|
|
#10 | ||
|
Expert Confirmé
![]() ![]() Olivier DecourtFormateur en informatique Inscription : avril 2008 Messages : 1 467 ![]() |
Stéphane, SAM, en fait les macro-variables créées dans une étape DATA (CALL SYMPUT ou SYMPUTX) ne sont pas systématiquement globales par défaut. La règle est en effet la suivante (je simplifie un chouia) :
Code :
D'où mon conseil de profiter de CALL SYMPUTX pour bien clarifier la portée des macro-variables qu'on crée : "G" pour global, "L" pour local, et éviter d'être à la merci de ce genre de règles à la |
||
|
|
20
|
|
|
#11 |
![]() ![]() Samir SELMANEConsultant en Business Intelligence Inscription : février 2011 Messages : 1 006 ![]() |
Merci Olivier.
![]() Personnellement j'ai toujours utilisé le %GLOBAL et %LOCAL pour référer mes macros. C’est vrai qu'avec le Call SYMPUX c'est encore plus simple à coder et à déterminer le champs d’exécution de nous macro variables. Et oui il faut vivre avec son époque. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com