0

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

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;

我试过用谷歌搜索寻求帮助,但搜索词太模糊了,很难把它缩小到这个特定的问题。谢谢您的帮助。

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

4

2 回答 2

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在数据步骤中使用引用。根据SAS 文档

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

于 2014-02-17T23:31:51.400 回答
0

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

ODS HTML3 text="方法3:使用ODS TEXT函数将文本放在任何地方。";

根据您的 html 目标,您可以使用 css 或 html 标签来管理字体、大小、对齐方式等。我猜您使用 html3 是为了与 Outlook 兼容,因此 css 标签将不起作用。

于 2016-09-07T20:13:11.867 回答