使用数据步骤将自定义文本附加到ODS流

时间:2014-02-17 21:54:05

标签: email sas sas-ods

我正在尝试将表打印到电子邮件目的地,然后在最后添加一些自定义注释。当我尝试运行以下代码时,我收到消息:

ERROR: File is in use, .

我的代码是:

filename mymail email content_type="text/html"
                      to=("myemail@myemail.com")
                      from=("myemail@myemail.com")
                      subject="My Report";

ods html3 body=mymail style=sasweb;

proc print data=sashelp.class noobs;  
run;

data _null_; 
  file mymail ;
  put "I want this to appear at the bottom of the email.";
run;

ods html3 close;

filename mymail clear;

我已经尝试使用谷歌搜索帮助,但搜索条件是如此模糊,很难将其缩小到这个特定的问题。谢谢你的帮助。

编辑:只是为了澄清 - 我希望电子邮件正文中包含所有结果。我不希望将结果作为附件发送。此外,如果您只注释上述代码中的数据步骤,则电子邮件可以正常工作。

2 个答案:

答案 0 :(得分:1)

我无法在实际的电子邮件中测试这两种方法,但他们确实避免了(可复制的)Error: File is in use消息..

filename mymail "C:/temp/test.html";
ods html3 body=mymail style=sasweb;

proc print data=sashelp.class noobs;  
footnote "Approach 1: I want this to appear at the bottom of the email.";
run;

data _null_; 
  file print ;
  put "Approach 2: I also want this to appear at the bottom of the email.";
run;

ods html3 close;
filename mymail clear;

更改是在数据步骤中使用file print引用。根据{{​​3}}:

PRINT是一个保留的fileref,它将任何PUT语句生成的输出定向到与SAS过程生成的输出相同的文件。

答案 1 :(得分:0)

我不清楚你是否真的需要数据步骤来进行任何数据处理,而不仅仅是打印文本。我最近遇到了类似的挑战,但我的重点是简单地打印文本,因此您可以使用ODS文本功能:

ODS HTML3 text ="方法3:使用ODS TEXT功能将文本放在任何地方。&#34 ;;

根据你的html目的地,你可以使用css或html标签来控制字体,大小,对齐方式等。我猜你会使用html3来兼容Outlook,所以css标签赢了'工作。