我正在使用SAS 9.1.3在DATA步骤中调用一个宏,但该宏生成一个PROC REPORT步骤,所以我使用CALL EXECUTE调用它,生成所有这些PROC REPORT步骤,然后全部执行它们DATA步骤后。我可以更改SAS中的CALL EXECUTE堆栈的执行顺序吗?
我使用数组,宏每次执行这个阵列中的每个元素:
DATA macro_test;
ARRAY questions[3] $ 32 ('question1' 'question2' 'question3');
DO i=1 to 3;
a_question = questions(i);
CALL EXECUTE("%report_by_question(a_question)");
end;
RUN;
的事情是,报告输出出来(通常情况下)向后 - 它将打印question3先,然后是2,然后是1.
有没有办法修改CALL EXECUTE的执行顺序,这样我就可以按顺序打印问题报告,还是只是做自己的事情?
谢谢!
没错,哈哈,忘了对变量的整体串连;) 所以,是的,我得到的日志中生成的步骤的正确顺序,但是当他们开始在输出被吐了出来,他们是看起来完全随机的顺序(我现在使用5个问题作为测试)。 – chucknelson 2009-09-04 15:10:54
好吧 - 我只是做了一个测试,并将ODS转换为HTML,并且报表按照正确的顺序排列。我不明白为什么ODS LISTING会以不同的顺序将它们输出到输出中。 – chucknelson 2009-09-04 15:15:06
呼叫执行的工作正常,为了 - 只是包装这个问题! – chucknelson 2009-09-30 21:31:32