LISTSERV at the University of Georgia
Menubar Imagemap
Home Browse Manage Request Manuals Register
Previous messageNext messagePrevious in topicNext in topicPrevious by same authorNext by same authorPrevious page (October 2004, week 3)Back to main SAS-L pageJoin or leave SAS-L (or change settings)ReplyPost a new messageSearchProportional fontNon-proportional font
Date:   Thu, 21 Oct 2004 09:19:56 -0500
Reply-To:   "Brown, James R. (Mktg)" <JBr3e@ALLSTATE.COM>
Sender:   "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From:   "Brown, James R. (Mktg)" <JBr3e@ALLSTATE.COM>
Subject:   Re: Output for datasets with no observations
Content-Type:   text/plain; charset="iso-8859-1"

This will work only if the data set exists and is empty. It might not be bullet-proof.

Regards,

Jim ------------------------------------------------------------------- James R. Brown Marketing Measurement and Consumer Insights Phone: 847-402-2244 mailto:jbr3e@allstate.com ------------------------------------------------------------------- /**********************************************************************/ /* */ /* PROGRAM: SMNOTHIN */ /* SYSTEM: */ /* COMPILER SAS */ /* MODULE TYPE: SAS MACRO */ /* */ /* FUNCTION: MACRO GENERATE 'NOTHING TO REPORT' FOR EMPTY SAS */ /* DATASET */ /* */ /* INCLUDES: NONE */ /* */ /* SAMPLE INVOCATION: (CONTAINS ITS OWN DATASTEP) */ /* */ /* %SMNOTHIN(DATA=RPT210,OUT=PRINT); */***********************************************************************/

%MACRO SMNOTHIN(DATA=SASDATA /* SAS DATAFILE */ ,OUT=PRINT /* LOG, PRINT OR FILE 'XXXXX' */ ,ABORT=NO /* NO, RETURN, ABEND, ENDSAS (IF EMPTY) */ ,CODE=012 /* RETURN CODE FOR RETURN OR ABEND */ ,MSG1=NOTHING TO REPORT ,MSG2= ,MSG3= ); /************************************* FORCE TO UPPER CASE *************************************/ %LET ABORT= %UPCASE(&ABORT); /************************************* DECLARE, INITIALIZE LOCAL VARIABLES *************************************/ %LOCAL SMNOTHIX; %LOCAL SMENDSAS; %LET SMENDSAS=; /************************************* CHECK FILESIZE AND EXISTENCE *************************************/ DATA _NULL_; IF 0 THEN SET &DATA NOBS=SMNOTHIX; CALL SYMPUT('SMNOTHIX',LEFT(PUT(SMNOTHIX,8.))); STOP; RUN; /************************************* IF NO RECORDS, END NOW *************************************/ DATA _NULL_; %IF &SMNOTHIX=0 %THEN %DO; FILE &OUT; PUT 72*'*'; PUT "* &MSG1"; %IF "&MSG2" ^= "" %THEN PUT "* &MSG2";; %IF "&MSG3" ^= "" %THEN PUT "* &MSG3";; PUT 72*'*';

%IF &ABORT=RETURN %THEN ABORT RETURN &CODE;; %IF &ABORT=ABEND %THEN ABORT ABEND &CODE;;

/************************************* PUT MESSAGE IN LOG DO NOT ENDSAS IF WORKING ONLINE *************************************/ %IF &ABORT=ENDSAS %THEN %DO; %LET SMENDSAS=ENDSAS; %PUT ****************************************; %PUT * SMNOTHIN.MSG010 - ENDSAS GENERATED; %PUT ****************************************; %END; %END;

RUN; /************************************* 'ENDSAS' OR NULL *************************************/ &SMENDSAS;

%MEND SMNOTHIN; /**********************************************************************/ /* END SMNOTHIN */ /**********************************************************************/


Back to: Top of message | Previous page | Main SAS-L page