私はSAS 9.1.3を使用してDATAステップでマクロを呼び出していますが、マクロはPROCレポートステップを生成するので、コールするためにEXECUTEコールを使用し、PROCレポートステップをすべて生成してからすべて実行しますデータステップの後。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;
事は、レポートの出力は、逆方向(通常は)出てきているされて - それは印刷します質問3を最初に、次に2を1にします。
CALL EXECUTEの実行順序を変更する方法がありますので、質問レポートを順に印刷することができますか、それとも独自のことをするだけですか?
ありがとうございます!
うん、ハハ、変数に全体CONCATENATEを忘れてしまった;) はそうです、私はログに生成されたステップの正しい順序を得るが、彼らは出力に吐き出すされて起動したとき、彼らは何が完全に無秩序に見えているか(今私は5つの質問をテストとして使用しています)。 – chucknelson
OK - テストをしてODSをHTMLに変換しました。そこにレポートテーブルが正しい順序であります。私はなぜODS LISTINGが異なる順序でそれらを出力に入れるのか理解していません。 – chucknelson
CALL EXECUTEさんはうまく機能しており、順番に質問しています。 – chucknelson