Ce script est un modèle d'encapsulation technique pour la production graphique automatisée. L'expert remarquera immédiatement le souci de rétro-compatibilité (le test sur &sysver), prouvant que ce code est conçu pour survivre aux migrations de version. L'intérêt majeur réside dans la centralisation des contraintes physiques (pilotes DEVICE, dimensions HSIZE/VSIZE) au sein d'une macro : cela garantit une uniformité parfaite des documents produits, tout en masquant la complexité des options GOPTIONS (comme GSFMODE ou GACCESS) à l'utilisateur final.
Type : CREATION_INTERNE
Ce script est une macro de configuration et ne traite pas directement de données d'entrée pour analyse. Il manipule des paramètres macro et des options système pour préparer l'environnement de génération de sorties graphiques au format PDF. Les noms de fichiers pour la sortie sont construits dynamiquement à partir de paramètres fournis à la macro ou de variables d'environnement.
| 1 | %global gsasfile gsasdir devtyp; |
| 2 | |
| 3 | %macro pdf( |
| 4 | fn, |
| 5 | hsize=6in, |
| 6 | vsize=6in |
| 7 | ); |
| 8 | |
| 9 | %let devtyp=PDF; |
| 10 | %let dev=pdf; |
| 11 | %local gprolog gaccess; |
| 12 | |
| 13 | %*-- Get the basename of the graphic file(s); |
| 14 | %sasgfile(pdf,&fn); |
| 15 | |
| 16 | %put PDF: gsasfile is: "&gsasdir.&gsasfile"; |
| 17 | filename gsasfile "&gsasdir.&gsasfile"; |
| 18 | |
| 19 | %IF &sysver < 6.08 %THEN %DO; |
| 20 | %let gprolog='2521'x; |
| 21 | %let gaccess=sasgaedt; |
| 22 | %END; |
| 23 | %ELSE %DO; |
| 24 | %let gprolog=; |
| 25 | %let gaccess=gsasfile; |
| 26 | %END; |
| 27 | |
| 28 | goptions device=&dev gaccess=&gaccess gsfname=gsasfile gsflen=80 |
| 29 | hpos=70 vpos=65 /* match pscolor device */ |
| 30 | gsfmode=append gprolog=&gprolog; |
| 31 | goptions lfactor=3; |
| 32 | goptions ftext='helvetica'; |
| 33 | goptions hsize=&hsize vsize=&vsize; |
| 34 | %mend; |