Veröffentlicht am :
Macro CREATION_INTERNE

FORMCHAR Makro zur Verwaltung von Formatierungszeichen

Dieser Code ist auch verfügbar auf: English Español Français
Dieses Makro, FORMCHAR, wurde entwickelt, um die globale Systemoption FORMCHAR dynamisch anzupassen. Diese Option ist entscheidend für die Definition der Zeichen, die zum Rendern von Rändern und Rahmen in ODS-Ausgaben verwendet werden, insbesondere bei Prozeduren wie PROC TABULATE. Das Makro enthält Kompatibilitätsprüfungen, um sicherzustellen, dass es unter Windows und mit einer SAS©-Version gleich oder größer 6.11 ausgeführt wird. Der Benutzer kann 'LINEDRAW' (oder 'LINE', 'DRAW') für Linienzeichen oder 'STANDARD' (oder 'STD', 'ASCII') für klassische ASCII-Zeichen angeben. Wenn ein ungültiges Argument angegeben wird oder die Systembedingungen nicht erfüllt sind, werden Fehlermeldungen im SAS©-Log angezeigt. Linienzeichen werden über eine Hexadezimalzeichenfolge definiert, um eine spezifische Kompatibilität mit der Schriftart SAS© Monospace zu gewährleisten.
Datenanalyse

Type : CREATION_INTERNE


Das Makro verarbeitet keine externen Daten oder SASHELP-Daten direkt. Es operiert auf Systemoptionen und verwendet automatische Makrovariablen (`&sysscp`, `&sysver`) für seine interne Logik. Die auf die Option FORMCHAR angewendeten Werte sind innerhalb des Makros definierte Konstanten.

1 Codeblock
MACRO
Erklärung :
Dieser Block definiert das FORMCHAR-Makro. Er beginnt mit bedingten Prüfungen, um sicherzustellen, dass der Code unter Windows (`%if &sysscp ^= WIN`) und mit einer kompatiblen SAS-Version (gleich oder größer 6.11, `%if &sysver < 6.11`) ausgeführt wird. Wenn diese Bedingungen nicht erfüllt sind, werden Fehlermeldungen angezeigt. Anschließend wird der Parameter `chartype` in Großbuchstaben umgewandelt (`%upcase`). Bedingte Anweisungen `%if/%else %if` werden verwendet, um den Wert zu bestimmen, der der Systemoption `FORMCHAR` zugewiesen werden soll. Wenn `chartype` mit 'STANDARD' (oder 'STD', 'ASCII') übereinstimmt, werden ASCII-Zeichen verwendet. Wenn `chartype` mit 'LINEDRAW' (oder 'LINE', 'DRAW') übereinstimmt, wird eine spezifische Hexadezimalzeichenfolge zugewiesen. Jedes andere Argument führt zu einer Fehlermeldung.
Kopiert!
1/* Select either "standard" or "linedraw" characters for FORMCHAR */
2%macro formchar ( chartype /* STANDARD or LINEDRAW */
3 ) ;
4 /* ------------------------------------------------------------
5 MODULE: FORMCHAR
6 
7 PURPOSE: Resets the value of the FORMCHAR system option
8 to use either "linedraw" characters from the SAS
9 Monospace font or "standard" characters (+- etc.)
10 for box characters in TABULATE and other PROCs.
11 Generates an OPTIONS statement and may be used
12 wherever that is accepted.
13 
14 CLASS: General SAS statement.
15 
16 USAGE: %FORMCHAR(LINEDRAW)
17 
18 PARAMETERS: R chartype Must be either
19 LINEDRAW, LINE, DRAW or
20 STANDARD, STD, ASCII
21 
22 SIDE EFFECTS: None.
23 SYSTEMS: Windows, 6.11 and higher.
24 HISTORY: 25feb96 MDR
25 DOCUMENT: Here.
26 SUPPORT: Mike Rhoads <rhoadsm1 @westat.com>
27 ------------------------------------------------------------
28 */
29 
30 %IF &sysscp ^= WIN %THEN
31 %put ERROR: The FORMCHAR macro is only available under Windows.;
32 %ELSE %IF &sysver < 6.11 %THEN
33 %put ERROR: The FORMCHAR macro is not available for versions prior to 6.11.;
34 %ELSE %DO;
35 %let chartype = %upcase(&chartype);
36 %IF %index(STD STANDARD ASCII,&chartype)>0 %THEN %DO;
37 OPTIONS FORMCHAR = '|----|+|---+=|-/\<>*';
38 %END;
39 %ELSE %IF %index(LINEDRAW,&chartype)>0 %THEN %DO;
40 OPTIONS FORMCHAR = '82838485868788898A8B8C2B3D7C2D2F5C3C3E2A'X;
41 %END;
42 %ELSE
43 %put ERROR: Argument to FORMCHAR must be LINEDRAW or STANDARD.;
44 %END;
45 
46%mend FORMCHAR ;
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.
Urheberrechtsinformationen : Ersteller: MDR, 25. Februar 1996. Support: Mike Rhoads <rhoadsm1 @westat.com>