/*
/ Program : dsall.sas
/ Version : 1.0
/ Author : Roland Rashleigh-Berry
/ Date : 13-Feb-2007
/ Purpose : To expand out the _all_ in a dataset list into all datasets in the
/ library.
/ SubMacros : %words %dslist
/ Notes : This is NOT a function-style macro. See usage notes.
/ The list of datasets will be written to the global macro variable
/ _dsall_.
/ Usage : %dsall(sasuser.test work._all_);
/ %let dsall=&_dsall_;
/===============================================================================
/ PARAMETERS:
/-------name------- -------------------------description------------------------
/ list (pos) List of datasets some of which may be referred to
/ using the _all_ notation.
/===============================================================================
/ AMENDMENT HISTORY:
/ init --date-- mod-id ----------------------description------------------------
/ rrb 13Feb07 "macro called" message added
/===============================================================================
/ This is public domain software. No guarantee as to suitability or accuracy is
/ given or implied. User uses this code entirely at their own risk.
/=============================================================================*/
%put MACRO CALLED: dsall v1.0;
%macro dsall(list);
%global _dsall_;
%let _dsall_=;
%local i;
%do i=1 %to %words(&list);
%if "%upcase(%scan(%scan(&list,&i,%str( )),2,.))" NE "_ALL_" %then
%let _dsall_=&_dsall_ %scan(&list,&i,%str( ));
%else %do;
%dslist(%scan(%scan(&list,&i,%str( )),1,.),yes)
%let _dsall_=&_dsall_ &_dslist_;
%end;
%end;
%mend;