Macro XEDIT (from Fraktal SAS Programming): Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
K |
K |
||
(8 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
[[Kategorie:Zazy]] | [[Kategorie:Zazy]] | ||
{{SeitenNavigation1 | {{SeitenNavigation1 | ||
− | |hoch= | + | |hoch=call a macro bubble 0.png |
|links=xx_left.png | |links=xx_left.png | ||
|rechts=xx_right.png | |rechts=xx_right.png | ||
|übersicht=Macro Programming (from Fraktal SAS Programming) | |übersicht=Macro Programming (from Fraktal SAS Programming) | ||
− | |zurück=Macro | + | |zurück=Macro XDIR (from Fraktal SAS Programming) |
− | |vorwärts=Macro | + | |vorwärts=Macro XAMINE (from Fraktal SAS Programming) |
}} | }} | ||
+ | |||
+ | == What it does == | ||
+ | |||
+ | '''This SAS Macro opens a Program Editor Window in the ''SAS Display Manager'' and loads the file specified by parameters ''xpath'' and ''xentry''.''' | ||
+ | * When ''xpath'' is not supplied, the macro ''XSET'' is called to get the user's home directory and then uses this path. | ||
+ | * When ''xentry'' is not given, the macro calls ''XDIR'' to list the directory content in the LOG screen. | ||
+ | |||
+ | == Annotated Code == | ||
{| class="wikitable" | {| class="wikitable" | ||
Zeile 14: | Zeile 22: | ||
|- | |- | ||
| | | | ||
+ | <font face="Courier New"> | ||
;%MACRO xedit(xentry,xpath); | ;%MACRO xedit(xentry,xpath); | ||
+ | </font> | ||
+ | |Start macro definition with name and positional parameters ''xentry'' and ''xpath''. | ||
+ | |- | ||
| | | | ||
− | + | <font face="Courier New"> | |
− | |||
:%LOCAL xpath; | :%LOCAL xpath; | ||
+ | </font> | ||
+ | |Declare scope for ''xpath'' to be local. | ||
+ | |- | ||
| | | | ||
− | + | <font face="Courier New"> | |
− | |||
;%IF %LENGTH(&XPATH.) = 0 %THEN %DO; | ;%IF %LENGTH(&XPATH.) = 0 %THEN %DO; | ||
− | | | + | </font> |
+ | |Start branch for condition "''xpath'' not specified". | ||
|- | |- | ||
| | | | ||
+ | <font face="Courier New"> | ||
:%XSET(homeshare); | :%XSET(homeshare); | ||
− | | | + | </font> |
+ | |Call macro ''XSET'' to obtain user's home directory. | ||
|- | |- | ||
| | | | ||
+ | <font face="Courier New"> | ||
:%LET xpath = &HOMESHARE.; | :%LET xpath = &HOMESHARE.; | ||
− | | | + | </font> |
+ | |Populate ''xpath'' with content from ''homeshare''. | ||
|- | |- | ||
| | | | ||
+ | <font face="Courier New"> | ||
;%END; | ;%END; | ||
− | | | + | </font> |
+ | |End branch for condition "''xpath'' not specified". | ||
|- | |- | ||
| | | | ||
− | ; | + | <font face="Courier New"> |
− | | | + | ;filename path "&XPATH"; |
+ | </font> | ||
+ | |Create file reference using ''xpath''. | ||
|- | |- | ||
| | | | ||
− | ; | + | <font face="Courier New"> |
− | | | + | ;%IF %LENGTH(&XENTRY.) != 0 %THEN %DO; |
+ | </font> | ||
+ | |Start branch for condition "''xentry'' is not empty". | ||
|- | |- | ||
| | | | ||
+ | <font face="Courier New"> | ||
:DM "PGM"; | :DM "PGM"; | ||
− | | | + | </font> |
+ | |Open Program Editor window in '''''SAS''''' display manager. | ||
|- | |- | ||
| | | | ||
+ | <font face="Courier New"> | ||
:DM "inc path(&XENTRY.)"; | :DM "inc path(&XENTRY.)"; | ||
− | | | + | </font> |
+ | |Load text file specified by ''xentry'' from directory specified by ''xpath''. | ||
|- | |- | ||
| | | | ||
+ | <font face="Courier New"> | ||
;%END; | ;%END; | ||
− | | | + | </font> |
+ | |End branch for condition "''xentry'' is not empty". | ||
|- | |- | ||
| | | | ||
+ | <font face="Courier New"> | ||
;%ELSE %DO; | ;%ELSE %DO; | ||
− | | | + | </font> |
+ | |Start branch for condition "''xentry'' is empty". | ||
|- | |- | ||
| | | | ||
+ | <font face="Courier New"> | ||
:%XDIR(&HOMESHARE.); | :%XDIR(&HOMESHARE.); | ||
− | | | + | </font> |
+ | |Call macro ''XDIR'' to show content in user's home directory. | ||
|- | |- | ||
| | | | ||
+ | <font face="Courier New"> | ||
;%END; | ;%END; | ||
− | | | + | </font> |
+ | |End branch for condition "''xentry'' is empty". | ||
|- | |- | ||
| | | | ||
+ | <font face="Courier New"> | ||
;filename path clear; | ;filename path clear; | ||
− | | | + | </font> |
+ | |Clear fileref pointing to ''xpath''. | ||
|- | |- | ||
| | | | ||
+ | <font face="Courier New"> | ||
;%MEND xedit; | ;%MEND xedit; | ||
+ | </font> | ||
+ | |Finalize macro definition with name. | ||
|} | |} | ||
{{SeitenNavigation1 | {{SeitenNavigation1 | ||
− | |hoch= | + | |hoch=call a macro bubble 0.png |
|links=xx_left.png | |links=xx_left.png | ||
|rechts=xx_right.png | |rechts=xx_right.png | ||
|übersicht=Macro Programming (from Fraktal SAS Programming) | |übersicht=Macro Programming (from Fraktal SAS Programming) | ||
− | |zurück=Macro | + | |zurück=Macro XDIR (from Fraktal SAS Programming) |
− | |vorwärts=Macro | + | |vorwärts=Macro XAMINE (from Fraktal SAS Programming) |
}} | }} |
Aktuelle Version vom 6. Januar 2016, 18:39 Uhr
What it does
This SAS Macro opens a Program Editor Window in the SAS Display Manager and loads the file specified by parameters xpath and xentry.
- When xpath is not supplied, the macro XSET is called to get the user's home directory and then uses this path.
- When xentry is not given, the macro calls XDIR to list the directory content in the LOG screen.
Annotated Code
Code executed | Function performed |
---|---|
|
Start macro definition with name and positional parameters xentry and xpath. |
|
Declare scope for xpath to be local. |
|
Start branch for condition "xpath not specified". |
|
Call macro XSET to obtain user's home directory. |
|
Populate xpath with content from homeshare. |
|
End branch for condition "xpath not specified". |
|
Create file reference using xpath. |
|
Start branch for condition "xentry is not empty". |
|
Open Program Editor window in SAS display manager. |
|
Load text file specified by xentry from directory specified by xpath. |
|
End branch for condition "xentry is not empty". |
|
Start branch for condition "xentry is empty". |
|
Call macro XDIR to show content in user's home directory. |
|
End branch for condition "xentry is empty". |
|
Clear fileref pointing to xpath. |
|
Finalize macro definition with name. |