Einrückungen bei Macro-Code wie bei Base-Code
Macro-Code ist nicht als eigenständig zu sehen, sondern als Sprach-Erweiterung von SAS-Base.
Das heißt, dass Makro-if-then-else genauso eingerückt werden wie Base-if-then-else:
Makro-if-then-else stehen immer relativ zur Vorgänger-Zeile 2 (oder 3) Zeichen eingerückt.
Das gleiche gilt für Macro-do-end-Schleifen:
Macro-do-end-Schleifen stehen immer relativ zur Vorgänger-Zeile 2 (oder 3) Zeichen eingerückt.
Wenn die Makro-Definition global ist, steht sie aussen. Beispiel
proc print data=&data.;
%if "&where." NE "" %then %do; /* NE statt EQ oder ..., desh. GROSS-geschr. */
where &where.;
%end;
run;
%mend PrintIt;
Wenn die Makro-Definition lokal ist, und vieleicht nur aus Syntax-Gründen nötig ist, steht sie immer relativ zur Vorgänger-Zeile 2 (oder 3) Zeichen eingerückt. Beispiel
var auftnum kundnum
%macro m0815;
%if "&WertVar." NE "" %then %do; /* Macro-if-then-else im offenen Code verboten! */
&WertVar. /* Variable ausgeben, wenn vorhanden */
%end;
%mend;
%m0815; /* Ein-Zweck-Macro, weil Macro-if-then-else im offenen Code verboten! */
;
run;
Die Diskussion die sich unter
SAS-Programmierrichtlinien » Codelayout » Platzieren von Anweisungen » DO-Blöcke verwenden (AndreasMangold, 8 März, 2006 - 21:44)
entwickelt hat, speziell
- "Einrücken bei den Beispielen" (Eingetragen von HansKneilmann, 24 März, 2006 - 12:03)
- "Einrückungen" (Eingetragen von AndreasMangold. | 25 März, 2006 - 00:21)
- "Zwei Welten" (Eingetragen von heitzig-j, 30 März, 2006 - 09:54)
gehört "eigentlich" hier rein, bloß wie ....?
- Anmelden oder Registrieren um Kommentare zu schreiben
