BookmarkSubscribeRSS Feed
TedP
Obsidian | Level 7

I have a table I created from a stored process that outputs to html via ods. Attached to the html are two buttons (one for downloading the table as pdf and the other excel).

 

I am looking for a way to query the data once and somehow save the pdf/excel output until the user clicks the pdf/excel button. My current solution is to query the data twice - once on page load to show the HTML table and again in a separate stored process when the user clicks the pdf/excel button.

 

Basically I want to generate the pdf and excel downloadable documents on initial page load but don't give them to the user until button click.

 

Here is some pseudo code using some jquery.

 

proc sql;
    some query
quit;

ods html body=_webout;

ods html text="
<script> $('#printPDF').click(function(){ Requery data in a separate stored process }); $('#printExcel').click(function(){ Requery data in a separate stored process }); </script> <button id='printPDF'>Print PDF</button> <button id='printExcel'>Print Excel</button>"; /* output html table */ proc report data=mydata; run;
3 REPLIES 3
Vince_SAS
Rhodochrosite | Level 12

 

Here's an old document that may be helpful:

 

Sample 26165: Generating Multiple Output Types at Once Using SAS/IntrNet

http://support.sas.com/techsup/notes/v8/26/165.html

 

It was written for SAS/IntrNet but you should be able to adapt it for use with a stored process.

 

Vince DelGobbo

SAS R&D

 

 

TedP
Obsidian | Level 7

Thanks Vince. That example mirrors very closely to what I want to do. I wonder how this works when multiple users are accessing the stored process at the same time. Will this 'lightweight' session be unique to each user?

 

I think I might just do this all on the front end without SAS using some javascript libraries.

Vince_SAS
Rhodochrosite | Level 12

The session is unique to each user.  If you don't use sessions and instead store files in some other location accessible to the browser, then you need to consider cleanup and access issues.

 

See also _OUTPUTAPP and _CONTDISP:

 

Using the REPLAY Program

http://support.sas.com/documentation/cdl/en/dispatch/64895/HTML/default/viewer.htm#replay.htm

 

Using reserved Macro Variables

http://support.sas.com/documentation/cdl/en/stpug/68399/HTML/default/viewer.htm#p184mqqbi9w6qjn1q061...

 

sas-innovate-2024.png

Available on demand!

Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.

 

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.

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
  • 3 replies
  • 1385 views
  • 0 likes
  • 2 in conversation