BookmarkSubscribeRSS Feed
Filipvdr
Pyrite | Level 9
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?
4 REPLIES 4
Cynthia_sas
SAS Super FREQ
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
Filipvdr
Pyrite | Level 9
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
Cynthia_sas
SAS Super FREQ
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
Filipvdr
Pyrite | Level 9
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

sas-innovate-white.png

Our biggest data and AI event of the year.

Don’t miss the livestream kicking off May 7. It’s free. It’s easy. And it’s the best seat in the house.

Join us virtually with our complimentary SAS Innovate Digital Pass. Watch live or on-demand in multiple languages, with translations available to help you get the most out of every session.

 

Register now!

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 4 replies
  • 2137 views
  • 0 likes
  • 2 in conversation