La macro no procesa directamente datos externos o datos de SASHELP. Opera sobre opciones del sistema y utiliza variables macro automáticas (`&sysscp`, `&sysver`) para su lógica interna. Los valores aplicados a la opción FORMCHAR son constantes definidas dentro de la macro.
1 Bloque de código
MACRO
Explicación : Este bloque define la macro FORMCHAR. Comienza con verificaciones condicionales para asegurar que el código se ejecuta en Windows (`%if &sysscp ^= WIN`) y con una versión de SAS compatible (superior o igual a 6.11, `%if &sysver < 6.11`). Si estas condiciones no se cumplen, se muestran mensajes de error. Luego, el parámetro `chartype` se convierte a mayúsculas (`%upcase`). Se utilizan instrucciones condicionales `%if/%else %if` para determinar el valor a asignar a la opción del sistema `FORMCHAR`. Si `chartype` corresponde a 'STANDARD' (o 'STD', 'ASCII'), se utilizan caracteres ASCII. Si `chartype` corresponde a 'LINEDRAW' (o 'LINE', 'DRAW'), se asigna una cadena hexadecimal específica. Cualquier otro argumento resulta en un mensaje de error.
¡Copiado!
/* 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 ;
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.
Información de copyright : Creador: MDR, 25 de febrero de 1996. Soporte: Mike Rhoads <rhoadsm1 @westat.com>
SAS y todos los demás nombres de productos o servicios de SAS Institute Inc. son marcas registradas o marcas comerciales de SAS Institute Inc. en los EE. UU. y otros países. ® indica registro en los EE. UU. WeAreCAS es un sitio comunitario independiente y no está afiliado a SAS Institute Inc.
Este sitio utiliza cookies técnicas y analíticas para mejorar su experiencia.
Saber más.