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 2025: Call for Content

Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!

Submit your idea!

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.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

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