Sas结果查看器 - 从新输出

时间:2016-06-26 17:33:58

标签: sas output

这是另一个针对我的可用性问题...

有没有办法让结果查看器"自动定位"当提交新内容时,它本身位于最新输出的顶部?

有时,结果查看器会显示刚刚生成的表的底部。有时,它会显示表格的顶部,但不显示最顶层的表格#34;表(即在新结果的中间)。

这种行为类似于浏览网页并让Chrome在底部打开一个新的网页...它确实没有意义,并且在尝试查找结果的同时需要时间来查看结果新结果,有时可能会很长,并与以前的其他结果混在一起。

部分解决方法是在每次运行期间清除日志/结果查看器,这至少可以轻松地将页面放到当前结果的顶部,但我仍然需要实际翻页,这看起来很愚蠢。这是我用来从代码中清除日志和输出查看器的内容。是否有更好的命令可供使用?

*Clear prior run's result viewer list and log window*;
ods html close; /* close previous */
DM log "OUT;CLEAR;LOG;CLEAR;" log continue ;
DM log 'next results; clear; cancel;' whostedit continue ;
ods html; /* open new */

1 个答案:

答案 0 :(得分:0)

可以!通过了解:

  • ODS HTML目标生成HTML源,该HTML源在每个proc输出之前具有默认锚点<A NAME=IDX#n>。可以使用ODS HTML ANCHOR=选项更改锚名称前缀。
  • Proc TEMPLATE可用于创建自定义样式,该样式利用POSTHTML之类的样式属性将HTML代码段注入到JavaScript代码目标中。
  • 注入的JavaScript可以将location.hash分配给期望的初始锚名称。这将迫使浏览器导航到该锚点。

示例:

proc template;
  define style topnav;       /* name of style to specify when opening ODS HTML */
    parent=styles.htmlblue;  /* name of style to use for thematic desire */

    /* JavaScript to be injected into destination */
    style body from body /
      posthtml="<script>location.hash='#IDX';</script>";  
    end;
run;

ods html 
  path="C:\temp" 
  body="sample.html"
  style=topnav          /* specify the custom style */
;

proc print data=sashelp.cars;
run;

proc print data=sashelp.class;
run;

ods html close;