2

我正在尝试调用一个名为“outputCrosstabs”的宏,该宏调用 PROC TABULATE 并将 HTML 文件写入磁盘。我还希望在创建 ODS HTML 时在结果查看器中查看输出,但是结果查看器似乎只在宏完成时更新。我在“outputCrosstabs”宏中没有任何 ODS HTML CLOSE 语句。

ods html newfile=proc; *BYGROUP, PAGE, OUTPUT;
dm 'log; autoscroll 1';
data _null_ ;
   %runtheloop;
run ;

%macro runtheloop;
   %do i = 1 %to 2;
    %do j = 1 %to 2;
    DM 'log; clear;';
    %outputCrosstabs(&i,&j);
    %end;
   %end;
%mend;

如何在执行宏时更新结果查看器中的 html,以便在生成输出时而不是在最后看到输出?是否有等效于 C# 中的 Application.DoEvents() 或类似的东西来更新 UI?

感谢您对此的任何帮助。

4

1 回答 1

1

您可以将文件写入外部 HTML 文件(而不是 SAS 工作目录),然后使用您喜欢的 Web 浏览器对其进行监控。我不相信有办法直接在 SAS 结果窗口中执行此操作,而无需关闭/打开文件或分段运行程序,这样的宏更难。

于 2013-08-26T03:54:41.120 回答