Data visualization with SAS programming

Writing your own ODS Output CSS StyleSheet for Proc Reports

Reply
Regular Contributor
Posts: 225

Writing your own ODS Output CSS StyleSheet for Proc Reports

Hello,

is there any information available about writing your own stylesheet for outputting proc reports like meadow,sasweb?

Or does anyone has experience with this?
SAS Super FREQ
Posts: 8,643

Re: Writing your own ODS Output CSS StyleSheet for Proc Reports

Hi:
Are you specifically interested in graphical output or, as implied by your subject, in tabular output created by PROC REPORT??

The easiest way to find out how a SAS style template (like MEADOW or SEASIDE) will translate to CSS style property/value format is to use ODS to create a CSS file for you. You can do this on a one-time basis, by using ODS HTML and the STYLESHEET= option to make a CSS file like this:
[pre]
ods html path='c:\temp' (url=none)
file='makecss.html'
style=meadow
stylesheet='copy_of_meadow.css';
proc print data=sashelp.class(obs=1);
run;
ods html close;
[/pre]

If you use the above code, then the c:\temp directory will hold a file called "copy_of_meadow.css" that you can open with Notepad and edit.

Alternately, if you have SAS Enterprise Guide, there is a very nice Style Wizard that will allow you to make a new CSS file using MEADOW as your starting point (or the style of your choosing). This Style Wizard is actually a CSS editor because EG uses a CSS version of the SAS style templates with the reports created by EG.

cynthia
Regular Contributor
Posts: 225

Re: Writing your own ODS Output CSS StyleSheet for Proc Reports

What i maybe forgot to tell is i'm using this in Stored Processes.

I got the following for the moment:


-MacroProcReport
[pre]
/* Stylesheet */
%macro use_stylesheet(stylesheet_name);

%global _ODSDEST;

ODS PATH (prepend) work.templat(update);

proc template;
define tagset tagsets.nostyle;
parent=tagsets.html4;
embedded_stylesheet=no;
end;
run;

ods html body=_webout
stylesheet=(URL="&stylesheet_name");

ods html close;

%let _ODSDEST=tagsets.nostyle;

%mend use_stylesheet;

%use_stylesheet(http://imecwww.imec.be/~osp/fab300/test/StyleTest.css);

[\pre]
Run MacroProcReport

when i look into the source code of the generated HTML there is indeed a link to my stylesheet StyleTest, yet the default stylesheet is still used. can i omit this?


HTML source:

[pre]



















SAS Output
SAS Super FREQ
Posts: 8,643

Re: Writing your own ODS Output CSS StyleSheet for Proc Reports

Hi:
You might want to open a track with Tech Support on this question, as the use of CSS files with a stored process is usually done with an override to the automatic variable &_ODSSTYLESHEET (same concept as &_ODSDEST).

However, not all client applications will receive HTML results and some client applications (such as Web Report Studio) require that the CSS be defined in a special XML file that is available on the Middle Tier configuration files.

In addition, it is not entirely clear where you expect your &_ODSDEST of TAGSETS.NOSTYLE to be used. In fact, there already is a "nostyle" destination -- well, there are 2 -- ODS PHTML and ODS CHTML -- either of those might work for you instead of trying to come up with your own TAGSET template based on TAGSETS.HTML4. It is possible that a simple override of:
[pre]
%let _ODSDEST = CHTML;
[/pre]

might work for you without using a STYLESHEET at all.

I suspect you have some log messages about STYLE not found or TAGSET not found and that means that there is a certain amount of debugging required that will mean that someone has to look at ALL your code and understand your particular method of invoking this stored process.

To send a question to Tech Support, you can go directly to the Tech Support Problem Form here:
http://support.sas.com/ctx/supportform/createForm

cynthia
Regular Contributor
Posts: 225

Re: Writing your own ODS Output CSS StyleSheet for Proc Reports

This is working for me:

%macro procreport(table=, cols=, groupvalues=, byvariable=,text1=,text2=);
ods html file=_webout stylesheet=(URL="http://imecwww.imec.be/~osp/fab300/test/ImecStyle.css");
....
%mend;

thanks
Post a Question
Discussion Stats
  • 4 replies
  • 146 views
  • 0 likes
  • 2 in conversation