Sas Results Viewer - 从新输出的顶部开始

Sas Results Viewer - Start at top of new output

这对我来说又是一个面向可用性的问题...

有没有办法在提交新内容时让结果查看器 "auto-position" 本身位于最新输出的顶部?

有时结果查看器会显示刚生成的结果的底部 table。有时,它显示 table 的顶部,而不是 "topmost" table 的顶部(即在新结果的中间)。

这种行为类似于在网上冲浪并 chrome 在底部打开一个新网页...这确实没有意义,并且在尝试查找结果时会浪费时间查看结果新结果的实际顶部,有时可能会很长并与其他以前的结果混淆。

部分解决方法是让 logs/results 查看器在每个 运行 期间保持清晰,这至少可以轻松翻到当前结果的顶部,但实际上我仍然必须向上翻页,这看起来很愚蠢。这是我用来从代码中清除日志和输出查看器的方法。有没有更好的命令集可以使用?

*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 */

可以!通过理解:

  • ODS HTML 目标生成 HTML 具有默认锚点的源 <ANAME=IDX#<em>n</em>> 在每个过程的输出之前。可以使用 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;