Publié le :
Macro EXTERNE

Macro AHGsetprint : Fusion et Formatage de Tables SAS

Ce code est également disponible en : Deutsch English Español
En attente de validation
La macro itère sur une liste de datasets fournis en paramètre. Pour chaque dataset, elle crée une copie temporaire, ajoute optionnellement des colonnes d'identification (ordre, nom source), et convertit toutes les données en type caractère via des appels à d'autres macros utilitaires (AHGalltocharnew, AHGmergeprint). Les datasets traités sont ensuite concaténés dans une table unique, nettoyés et optionnellement imprimés.
Analyse des données

Type : EXTERNE


Les données sources sont définies par le paramètre macro &dsns qui attend une liste de noms de tables existantes.

1 Bloc de code
DATA STEP Data
Explication :
Boucle de traitement : pour chaque table spécifiée en entrée, création d'une table temporaire, ajout de variables de métadonnées (ordre, origine), et conversion du contenu en format caractère via des macros externes.
Copié !
1%DO i=1 %to &dsnN;
2 %let item=%scan(&dsns,&i,%str( ));
3 %AHGgettempname(onedsn);
4 %let alldsn=&alldsn &onedsn;
5 DATA &onedsn;
6 %IF %AHGnonblank(&ord) %THEN &ord=&i;;
7 %IF %AHGnonblank(&BY) %THEN %DO;
8 FORMAT &BY $40.; &BY="&item";
9 %END;
10 SET &item;
11 RUN;
12 %AHGalltocharnew(&onedsn,out=&onedsn);
13 /* ... collecte des variables et appel AHGmergeprint ... */
14%END;
2 Bloc de code
DATA STEP Data
Explication :
Étape de concaténation finale : regroupement de toutes les tables temporaires préparées en une seule table de sortie.
Copié !
1DATA &out;
2 SET &alldsn;
3RUN;
3 Bloc de code
MACRO CALL
Explication :
Post-traitement : sélection des variables à conserver, nettoyage des chaînes de caractères (trim) et affichage optionnel du résultat.
Copié !
1%IF &keep %THEN %AHGrenamekeep(&out,names=&allvar,keepall=0);
2%ELSE %AHGrenamekeep(&out,keepall=0);
3%AHGtrimdsn(&out);
4 
5%IF &PRINT %THEN %AHGprt;
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.