i had a compress statement noted out for some reason, which is where the '-' snuck in. I didn't even realize when I copied it over. Thanks for spotting that. However, my new problem, is that my loop only creates the report for the first %if %then: %if &error=ContactHr %then %do; proc report 1 %end; %else %do; proc report2 %end; In reality, I have several %if statements that I need fulfilled. For instance: %if &error=ContactHr %then %do; proc report 1 %end; %else %if &error=table %then %do; proc report2 %end; ... going on like that. However, I cannot get it to move past the first itineration of %if %then. It satitifies then doesn't move to the next %if %then, which leads me to think it closing the loop early. again full code: %let k=1; %let error = %scan(&tsdselement,&k,'*'); /*picks the first error in list we have */ %do %while ("&error" ^= ""); /*loop until the list is done*/ %if &error=ContactHr %then %do; proc report 1 %end; %else %if &error=table %then %do; proc report 2 %end; /*Error list loop*/ %let k = %eval(&k + 1); /* redfine the value of k so that the loop continues the 2nd ,3rd, etc. word in the list*/ %let error = %scan(&tsdselement,&k,'*'); %end; %mend;
... View more