如何创建名称与数据集字段对应的SAS html文件

如何创建名称与数据集字段对应的SAS html文件,sas,sas-ods,Sas,Sas Ods,我正在尝试为SAS数据集中的每条记录创建一个文件。我已经能够使用SAS ODS输出成功地做到这一点,方法是使用“newfile=page”选项,然后简单地在数据集上运行proc报告。我遇到的问题是,这导致了gerneric,顺序编号的文件名(test,test1,test2,等等)。我想根据数据集中的变量命名每个文件。在下面的示例中,我希望文件名的标题基于数据集中的“seq_nbr” ods html path = "C:\test\" file = 'test.html'

我正在尝试为SAS数据集中的每条记录创建一个文件。我已经能够使用SAS ODS输出成功地做到这一点,方法是使用“newfile=page”选项,然后简单地在数据集上运行proc报告。我遇到的问题是,这导致了gerneric,顺序编号的文件名(test,test1,test2,等等)。我想根据数据集中的变量命名每个文件。在下面的示例中,我希望文件名的标题基于数据集中的“seq_nbr”

    ods html path = "C:\test\"
    file = 'test.html'
    contents = 'contents.html
    frame = 'frame.html'
    code = (url="C:\test\javascript.js")
    newfile=page;

    proc report data = test2 nowindows headline headskip;
    column tDate tTime created_by cmtText;
    by seq_nbr;

    run;

你需要一个宏

%macro doit;
proc sql;
select count(*) into :n from test2 ;
quit;

%do i=1 %to &n;
data _null_;
if _n_=&i call symput('name',seq_nbr);
run;

proc export data=something outfile="&name";
run;
%end;

%mend;
%doit;

我不认为有一个“简单”的解决办法。我认为您可以选择做一些类似于建议的顶部答案的事情,即生成一个对每个by值进行迭代的宏(从而为标题提供一个宏变量),或者可能使用
PROC DOCUMENT
——但我认为这将非常复杂。或者,也可以使用数据步骤写出HTML文件(就像它是文本文件一样);可能是一个相对简单的文件。如果其中一个方法对您有效,我可能会帮助显示它,尽管
PROC DOCUMENT
方法可能比我有时间显示的更复杂。最简单的方法可能是在以后简单地重命名文件。谢谢!按照创建宏的选项迭代每个记录对我有效。@rascale是否介意发布最终使用的解决方案,然后将其标记为已接受,以便其他人可以从中受益?谢谢