How to restore the default html output destination in SAS? - sas

This must be so simple, but I can't find it:
How do you restore the default output destination in SAS 9.3?
Unlike 9.2, that is HTML.
In other words, which commands voids this statement.
ods html close;

You can turn HTML back on with
ODS HTML;
but there are probably other options you need...like a filename
ODS html file="My File.htm";
ODS HTML

Related

How to change "SAS Output" in web-browser tab with ODS HTML command?

I output the results to HTML using a command like this:
proc import out=DATASET
datafile="DATASET.csv"
dbms=csv replace;
run;
ods html body='html_page.htm' style=HTMLBlue;
proc means data=teeth ;
run;
ods html close;
When I view html_page.htm in a web-browser, the tab is labeled "SAS Output". If I look at the source code of html_page.htm I see that this is under the tag <TITLE> SAS Output </TITLE>. So I tried the following command but it didn't work:
ods html title=`NEW TAB TITLE` body='html_page.htm' style=HTMLBlue;
proc means data=teeth ;
run;
ods html close;
How can I change the tab title with and ODS HTML command?
Specify the page title in the sub-options of ODS HTML BODY option.
ods html body='html_page.htm'(title="My Title") style=HTMLBlue;

How to append multiple ODS html exports into single HTML file?

I'm exporting multiple datasets using ODS html (example below).
It saves HTML files on the server and in order to attach them to email.
The code is used to export looks like this:
ods html file="/user_data/maexport/generated_html.html";
proc print data=WORK.DATA_SET_0001;
run;
ods html close;
Now how can I append these multiple proc printed HTMLs into single HTML file?
Put all your prints before your ODS close statement.

SAS ODS Documentation Syntax Error

I have many questions regarding the ODS system and am trying to educate myself. However, I am unable to do so as the SAS documentation example generates an error.
The documentation in question is Controlling Where Your Output Is Stored.
The very first example is, verbatim,
/* Specify the ODS output path */
filename odsout ".";
goptions reset=all;
ods _all_ close;
ods pdf path=odsout file="mygraph.pdf";
proc gchart data=sashelp.prdsale;
vbar Product / sumvar=actual;
title1 "First Quarter Sales in Canada";
where Quarter=1 and Country="CANADA";
run;
quit;
ods pdf close;
ods html; /* Not required in SAS Studio */
It appears that the "." in the filename statement is a place holder akin to "C:\your\file\path\here\".
I have replaced that with "C:\output". When I do this, I get the following error:
6 ods pdf path=odsout file="mygraph.pdf";
----
22
76
ERROR 22-322: Syntax error, expecting one of the following: ;, (, ANCHOR, AUTHOR, BACKGROUND, BASE,
BODY, BOOKMARK, BOOKMARKGEN, BOOKMARKLIST, BOX_SIZING, CLOSE, COLOR, COLUMNS, COMPRESS,
CONTENTS, CSSSTYLE, DISPLAY, DOM, DPI, EXCLUDE, FILE, FONTSCALE, GFOOTNOTE, GTITLE,
HOST, KEYWORDS, NAMED_DEST, NEWFILE, NOBACKGROUND, NOBOOKMARKGEN, NOBOOKMARKLIST,
NOCOLOR, NOCONTENTS, NOGFOOTNOTE, NOGTITLE, NOPDFNOTE, NOTOC, PACKAGE, PCL, PDF,
PDFMARK, PDFNOTE, PDFTOC, PRINTER, PS, SAS, SELECT, SGE, SHOW, STARTPAGE, STYLE,
SUBJECT, TEXT, TITLE, UNIFORM.
ERROR 76-322: Syntax error, statement will be ignored.
Am I doing something wrong or did the author of this example not compile before publishing?
It seem that path option is valid in ods html, but is not valid in ods pdf, but it doesn't matter because you can specify absolute path in file option.
ods pdf file="C:\temp\mygraph.pdf";

The date and the time that SAS program started are printed at the top of each page in listing output, why are not printed on html output?

options date/nodate;
This option has no effect on my html output but it works fine on listing output. Also explain how to print date time on html output same like listing output?
/*----prints date in the upper right side of the output------*/
options dtreset date;
ods listing;
Title; /*I dont want to print any title*/
proc print data=sashelp.class;
run;
ods listing close;
/*----for html ods, date is not printed----------------------*/
options dtreset date;
ods html;
Title; /*I dont want to print any title*/
proc print data=sashelp.class;
run;
ods html close;
Working as designed; according to the documentation:
Note: In an interactive SAS session, the date and time are noted only in the output window.
Output window means the listing destination, by the way (separate from the Results Window which is where modern ODS destinations, including HTML, go).
If you want it in HTML, you'll need to add it to the title:
title "(other things) &sysdate.";
Or &Sysdate9. if you prefer that format.
Some other ways to do this are discussed in Art Carpenter's Placing Dates in Your Titles.

SAS- Supress Results view on some, but not all, proc print ods outputs

I want to be able to print all of my reports to external files but only display a select few in the results viewer. In the below example I want reportA and reportB to be displayed AND printed (file.xls) but reportC to be printed to a separate file (file2.csv) and not displayed in the results viewer. Any ideas?
ods msoffice2k file="/file/file.xls";
proc print data=reportA;
run;
proc print data=reportB
run;
ods msoffice2k close;
ods csvall file="/file/file2.csv";
proc print data=reportC;
run;
ods csvall close;
You can also use ODS EXCLUDE and ODS SELECT to target specific destinations.
For example, ods html select none; will turn off the HTML destination temporarily, but not actually close it - it just won't get any results for a while. You can then use ods html select all; to turn it back on.
You can also use ods html exclude all; to do the same thing and then turn it back on with ods html exclude none;.
With either statement, you can also use a where statement in the ods select/exclude to filter to only affect one specific part of an output. See the documentation for more details.
Close the list output which is the default. OR the HTML if that is the default results window in your system. Re-open the output after the file is created.
ods msoffice2k file="/file/file.xls";
proc print data=reportA;
run;
proc print data=reportB
run;
ods msoffice2k close;
ods listing close;
ods html close;
ods csvall file="/file/file2.csv";
proc print data=reportC;
run;
ods csvall close;
ods listing;
ods html;
I actually found a better solution through using the proc export feature for suppressing display of the csv output.
ods msoffice2k file="/file/file.xls";
proc print data=reportA;
run;
proc print data=reportB
run;
ods msoffice2k close;
proc export data=reportC
outfile="/file/file2.csv"
dbms=dlm
replace;
delimiter=",";
run;
Thanks for the help #Reeza I'll keep those settings in mind for future projects.