|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre habitué
![]() Julien Ingénieur d'études / Biostatisticien Inscription : décembre 2009 Messages : 304 ![]() |
Bonjour,
Pour faire simple, j'ai une longue longue longue macro et en début de macro une table A qui contient des chiffres. Ce qui se passe c'est qu'à un moment de ma macro j'applique une proc FORMAT sur une table B qui n'a rien à voir avec la table A et également remplit de chiffres. le principe de ce FORMAT est de remplacer les chiffres par des noms de variables. Mon problème: quand j'applique ma proc FORMAT sur ma table B, et bien ma table A subit également les changements ce qui fout ma macro en l'air... Voici le code que j'utilise: Code :
Désolé mais je sèche... En vous remerciant d'avance pour votre intérêt (une fois de plus...) à mon problème |
||
|
|
00
|
|
|
#2 |
![]() ![]() Stéphane Consultant et formateur SAS et Cognos Inscription : avril 2009 Messages : 1 791 ![]() |
a mon avis, un bout de code dans la longue longue macro doit altérer la table A.
__________________
N'oubliez pas de cliquer sur lorsque votre problème est réglé !Moteur de recherche dans les papiers SAS |
|
00
|
|
|
#3 | ||
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
Bonjour,
Je ne connais pas cette syntaxe Code :
|
||
|
|
00
|
|
|
#4 |
![]() ![]() Stéphane Consultant et formateur SAS et Cognos Inscription : avril 2009 Messages : 1 791 ![]() |
en théorie cela lit la table nommée format et y récupère un format composé à partir d'une table selon des noms de colonnes prédéfinies. regarde CNTLIN dans l'aide.
__________________
N'oubliez pas de cliquer sur lorsque votre problème est réglé !Moteur de recherche dans les papiers SAS |
|
00
|
|
|
#5 | |||
|
Membre habitué
![]() Julien Ingénieur d'études / Biostatisticien Inscription : décembre 2009 Messages : 304 ![]() |
Citation:
Ensuite j'ai du coup cherché l'erreur dans toute la macro en mettant deux proc PRINT de ma table pour être sur à 100% de là où les changements se font et c'est bien là. Eventuellement je me demande aussi si le CNTLIN (que je connais sans plus en fin de compte) ne serait pas à la base de mon problème avec une action comme évoquée par Brice. Sincèrement je sèche, il est stipulé nulle part dans mon programme que TABLE A = TABLE B ou encore: Code :
|
|||
|
|
00
|
|
|
#6 |
|
Expert Confirmé
![]() ![]() Olivier DecourtFormateur en informatique Inscription : avril 2008 Messages : 1 467 ![]() |
Et par le plus grand des hasards, ta table A n'aurait pas une variable avec un format du nom de VAR. ? Que tu aurais créé pour autre chose et qui se trouve remplacé par celui que tu crées avec PROC FORMAT CNTLIN ?
Cette dernière, a priori, n'est pas suspecte : elle ne fait que créer un format et ne l'applique spontanément nulle part. |
|
|
00
|
|
|
#7 | ||||
|
Membre habitué
![]() Julien Ingénieur d'études / Biostatisticien Inscription : décembre 2009 Messages : 304 ![]() |
En fait j'utilise pour la création de ces 2 tables la macro pour générer toutes les combinaisons de variable que tu m'avais donné (au passage quel macro
j'en suis amoureux fou! ) .Et il est vrai qu'au cours de cette macro il y a la création d'un format mais pour moi quand je l'utilise sur la table A le format var se crée et quand je l'utilise sur la table B qui crée à son tour son format var, et ben elle devrait écraser le var de la table A par le var de la table B... et en effet, par rapport à ta question, c'est exactement el cas Du coup j'ai essayé cette syntaxe: Code :
Bref, sinon j'ai donc essayé la syntaxe ci-dessus et j'ai toujours mon problème... EDIT: Par contre c'est bien là que j'ai mon problème... Code :
|
||||
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
T'as éssayé la proc format classic (value) ?
|
|
|
00
|
|
|
#9 |
|
Membre habitué
![]() Julien Ingénieur d'études / Biostatisticien Inscription : décembre 2009 Messages : 304 ![]() |
Et bien en fait le passage par les 3 lignes qui m'embêtent est obligatoire puisqu'il faut créé un format sur quelque chose qui varie (le nom et la position des différentes variables à combiner), d'où le passage par une étape DATA.
Bon aprés c'est peut-être réalisable autrement, mais quand même je pense qu'il doit y avoir plus simple... EDIT: Eventuellement je réalise que je peux appliquer le passage inverse du format et ainsi retrouver les valeurs de la table A, la différence entre la table A et B c'est que la table A je m'en sers en tout début et en toute fin de mon programme contrairement à la table B que j'utilise un cours instant et puis la jète. Seulement je viens de tester INFORMAT et ça ne fait pas vraiment ce que je pensais... |
|
|
00
|
|
|
#10 | ||
|
Expert Confirmé
![]() ![]() Olivier DecourtFormateur en informatique Inscription : avril 2008 Messages : 1 467 ![]() |
Si je résume en simplifiant, tu crées d'abord un format VAR. pour la table A, qui te sert en début de macro. Puis tu crées un autre format, VAR. toujours, qui ne correspond pas à la même chose, mais s'applique à la table B.
Il me semble donc très logique qu'à la 2e version du format VAR. elle s'applique partout où on a associé ce format : dans la table B mais aussi dans la A. Car un format n'est pas stocké dans les données, il n'y a qu'un lien vers le format qui est sollicité quand on utilise la table. Code :
Une 2e solution serait de re-créer la 1e version du format VAR. à la fin de ta macro, au moment où tu n'as plus besoin de la table B et où tu veux te resservir de la table A. |
||
|
|
00
|
|
|
#11 |
|
Membre habitué
![]() Géraldine CADE DESCHAMPSSupport Clients SAS (France et Europe) Inscription : février 2010 Messages : 62 ![]() |
Bonjour,
Une théorie : Peut-être que le format var. est déjà appliqué à la table A ? la proc format mettrai à jour un format existant... et ainsi A bénéficie des nouvelles modalités du format... Géraldine Cade |
|
|
00
|
|
|
#12 |
|
Membre habitué
![]() Julien Ingénieur d'études / Biostatisticien Inscription : décembre 2009 Messages : 304 ![]() |
Géraldine et Olivier vous avez parfaitement ciblé mon problème et grace à vous j'y vois plus clair! Bref j'ai plus ou moins bidouillé pour que ça marche enfin.
Merci à vous 4 pour votre aide! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com