La macro ne traite pas directement de données externes ou de données SASHELP. Elle opère sur des options système et utilise des variables macro automatiques (`&sysscp`, `&sysver`) pour sa logique interne. Les valeurs appliquées à l'option FORMCHAR sont des constantes définies au sein de la macro.
1 Bloc de code
MACRO
Explication : Ce bloc définit la macro FORMCHAR. Il commence par des vérifications conditionnelles pour s'assurer que le code est exécuté sous Windows (`%if &sysscp ^= WIN`) et avec une version de SAS compatible (supérieure ou égale à 6.11, `%if &sysver < 6.11`). Si ces conditions ne sont pas remplies, des messages d'erreur sont affichés. Ensuite, le paramètre `chartype` est converti en majuscules (`%upcase`). Des instructions conditionnelles `%if/%else %if` sont utilisées pour déterminer la valeur à attribuer à l'option système `FORMCHAR`. Si `chartype` correspond à 'STANDARD' (ou 'STD', 'ASCII'), des caractères ASCII sont utilisés. Si `chartype` correspond à 'LINEDRAW' (ou 'LINE', 'DRAW'), une chaîne hexadécimale spécifique est assignée. Tout autre argument entraîne un message d'erreur.
Copié !
/* Select either "standard" or "linedraw" characters for FORMCHAR */
%macro formchar ( chartype /* STANDARD or LINEDRAW */
) ;
/* ------------------------------------------------------------
MODULE: FORMCHAR
PURPOSE: Resets the value of the FORMCHAR system option
to use either "linedraw" characters from the SAS
Monospace font or "standard" characters (+- etc.)
for box characters in TABULATE and other PROCs.
Generates an OPTIONS statement and may be used
wherever that is accepted.
CLASS: General SAS statement.
USAGE: %FORMCHAR(LINEDRAW)
PARAMETERS: R chartype Must be either
LINEDRAW, LINE, DRAW or
STANDARD, STD, ASCII
SIDE EFFECTS: None.
SYSTEMS: Windows, 6.11 and higher.
HISTORY: 25feb96 MDR
DOCUMENT: Here.
SUPPORT: Mike Rhoads <rhoadsm1 @westat.com>
------------------------------------------------------------
*/
%if &sysscp ^= WIN %then
%put ERROR: The FORMCHAR macro is only available under Windows.;
%else %if &sysver < 6.11 %then
%put ERROR: The FORMCHAR macro is not available for versions prior to 6.11.;
%else %do;
%let chartype = %upcase(&chartype);
%if %index(STD STANDARD ASCII,&chartype)>0 %then %do;
OPTIONS FORMCHAR = '|----|+|---+=|-/\<>*';
%end;
%else %if %index(LINEDRAW,&chartype)>0 %then %do;
OPTIONS FORMCHAR = '82838485868788898A8B8C2B3D7C2D2F5C3C3E2A'X;
%end;
%else
%put ERROR: Argument to FORMCHAR must be LINEDRAW or STANDARD.;
%end;
%mend FORMCHAR ;
1
/* Select either "standard" or "linedraw" characters for FORMCHAR */
2
%macro formchar ( chartype /* STANDARD or LINEDRAW */
%put ERROR: Argument to FORMCHAR must be LINEDRAW or STANDARD.;
44
%END;
45
46
%mend FORMCHAR ;
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.
Informations de Copyright : Créateur : MDR, 25 février 1996. Support : Mike Rhoads <rhoadsm1 @westat.com>
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.