我正在使用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