<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: autocall macro to let user choose to export as excel/pdf in ODS and Base Reporting</title>
    <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/autocall-macro-to-let-user-choose-to-export-as-excel-pdf/m-p/214383#M14118</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Oh, so its a graphic front end.&amp;nbsp; Why not use Visual Analytics or Web Report Studio to do this type of thing.&amp;nbsp; They are built for that.&amp;nbsp; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 07 Apr 2015 09:53:41 GMT</pubDate>
    <dc:creator>RW9</dc:creator>
    <dc:date>2015-04-07T09:53:41Z</dc:date>
    <item>
      <title>autocall macro to let user choose to export as excel/pdf</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/autocall-macro-to-let-user-choose-to-export-as-excel-pdf/m-p/214377#M14112</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi SAS Experts,&lt;/P&gt;&lt;P&gt;I am looking for a autocall macro that I can include in my program´s for giving the user&lt;/P&gt;&lt;P&gt;the chance to export the data set as PDF or Excel/CSV&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ideally I want to have styling for both.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I imagine the parameters handed over to the macro must be something like&lt;/P&gt;&lt;P&gt;1. data set name (its hanging around in the work library) and at least the 2. csv file name (a mix of report title and date).&lt;/P&gt;&lt;P&gt;I imagine this is functionality that has been implemented a million times,.. yet I dont find a code or macro library&lt;/P&gt;&lt;P&gt;on the web that I can just re-use but instead tons of snippeds that present some ODS functions for which I need&lt;/P&gt;&lt;P&gt;to spend days to extend (if possible at all).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Has any of you came accross such a macro?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for any help!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 01 Apr 2015 14:59:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/autocall-macro-to-let-user-choose-to-export-as-excel-pdf/m-p/214377#M14112</guid>
      <dc:creator>metallon</dc:creator>
      <dc:date>2015-04-01T14:59:46Z</dc:date>
    </item>
    <item>
      <title>Re: autocall macro to let user choose to export as excel/pdf</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/autocall-macro-to-let-user-choose-to-export-as-excel-pdf/m-p/214378#M14113</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I think ODS is the correct approach and this would be a straightforward macro, until you choose to valid all the macro parameters and add options to your reports. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here's an untested example:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro print_report(dataset=, file_name=, type=);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ods &amp;amp;type file="C:\temp\&amp;amp;file_name" style=meadow;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc print data=&amp;amp;dataset;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ods &amp;amp;type close;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%mend print_report;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%print_report(dataset=sashelp.class, file_name=class_20150401, type=PDF);&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 01 Apr 2015 16:35:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/autocall-macro-to-let-user-choose-to-export-as-excel-pdf/m-p/214378#M14113</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2015-04-01T16:35:00Z</dc:date>
    </item>
    <item>
      <title>Re: autocall macro to let user choose to export as excel/pdf</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/autocall-macro-to-let-user-choose-to-export-as-excel-pdf/m-p/214379#M14114</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Reeza!&lt;/P&gt;&lt;P&gt;Thanks for that! Awesome. I tried it and it works almost &lt;img id="smileyhappy" class="emoticon emoticon-smileyhappy" src="https://communities.sas.com/i/smilies/16x16_smiley-happy.png" alt="Smiley Happy" title="Smiley Happy" /&gt;&lt;/P&gt;&lt;P&gt;I noticed that the file name does not have a dot between file name and file type. I tried it with catx but somehow that did not work.&lt;/P&gt;&lt;P&gt;Do you have a suggestion how to get the .dot between file name and type?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro x_output(dataset=, file_name=, type=);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;typenew=catx('. ',&amp;amp;type);&lt;/P&gt;&lt;P&gt;ERROR 180-322: Statement is not valid or it is used out of proper order.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ods &amp;amp;type file="R:\NR\Scripts\13_SAS\&amp;amp;file_name &amp;amp;typenew" cssstyle="R:\NR\Scripts\13_SAS\sas_marko\style_v01.css";&lt;/P&gt;&lt;P&gt;proc print data=&amp;amp;dataset;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ods &amp;amp;type close;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%mendx_output;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Bye&lt;/P&gt;&lt;P&gt;Phil&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 02 Apr 2015 09:20:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/autocall-macro-to-let-user-choose-to-export-as-excel-pdf/m-p/214379#M14114</guid>
      <dc:creator>metallon</dc:creator>
      <dc:date>2015-04-02T09:20:16Z</dc:date>
    </item>
    <item>
      <title>Re: autocall macro to let user choose to export as excel/pdf</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/autocall-macro-to-let-user-choose-to-export-as-excel-pdf/m-p/214380#M14115</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;got it %LET typenew=catx('. ',&amp;amp;type);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;but the export does not work as MS Excel:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro print_report(dataset=, file_name=, type=);&lt;/P&gt;&lt;P&gt;ods &amp;amp;type file="C:\temp\&amp;amp;file_name" style=meadow;&lt;/P&gt;&lt;P&gt;proc print data=&amp;amp;dataset;&lt;/P&gt;&lt;P&gt;ru;&lt;/P&gt;&lt;P&gt;ods &amp;amp;type close;&lt;/P&gt;&lt;P&gt;%mend print_report;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%print_report(dataset=sashelp.class, file_name=class_20150401, type=XLS);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ERROR 180-322: Statement is not valid or it is used out of proper order.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 07 Apr 2015 08:01:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/autocall-macro-to-let-user-choose-to-export-as-excel-pdf/m-p/214380#M14115</guid>
      <dc:creator>metallon</dc:creator>
      <dc:date>2015-04-07T08:01:53Z</dc:date>
    </item>
    <item>
      <title>Re: autocall macro to let user choose to export as excel/pdf</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/autocall-macro-to-let-user-choose-to-export-as-excel-pdf/m-p/214381#M14116</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You haven't posted the relevant log part, so we can't see what code is being generated, however I would suggest your problem is that "type=XLS" where XLS is not an ods destination.&amp;nbsp; You could put HTML or CSV or tagsets.excelxp.&lt;/P&gt;&lt;P&gt;I also don't see what value you are gaining from this.&amp;nbsp; The macro language isn't there to replace the need for base coding.&amp;nbsp; Excel files and PDF files are strcuturally different outputs, PDF is paged, document structure, Excel is a mess of anything and everything.&amp;nbsp; Are you going to attempt to handle every possible convolution of differences between the two?&amp;nbsp; For one output destination, if the data/output layout is more or less the same then there may be an argument for creating a generic, if not your just going to give yourself lots of problems.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;DIV&gt;Finally, you could also think about how operation is going to happen.&amp;nbsp; For instance, do you *need* to put the ods statements into the macro as that is limiting the functionality.&amp;nbsp; If the user puts the ods statements before and after the macro call, and you just create a print macro, then you don't need to worry about that part, they can setup any of the detsinations.&amp;nbsp; I.e. when someone comes back next week and says, I want RTF output, you then need to go through the lifecycle management of a standard macro to alter it to add this.&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 07 Apr 2015 08:24:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/autocall-macro-to-let-user-choose-to-export-as-excel-pdf/m-p/214381#M14116</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2015-04-07T08:24:39Z</dc:date>
    </item>
    <item>
      <title>Re: autocall macro to let user choose to export as excel/pdf</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/autocall-macro-to-let-user-choose-to-export-as-excel-pdf/m-p/214382#M14117</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi RW9,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You are right. Its HTML with a .xls file ending that is used.&lt;/P&gt;&lt;P&gt;The ultimate goal is to offer the Stored Process Web Application user&lt;/P&gt;&lt;P&gt;a html link that says "export as pdf" or "export as excel" or "export as html" and&lt;/P&gt;&lt;P&gt;then prompts for a destination to save on the desktop. Why? because its a user requirement to&lt;/P&gt;&lt;P&gt;play around with the data, keep it, or print it. I have to live with it.&lt;/P&gt;&lt;P&gt;Handling convolution&amp;nbsp; is not the aim.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;the "user" is not going to use my macro´s. it will be only myself to develop STP´s but right now&lt;/P&gt;&lt;P&gt;the SAS Sever isnt running so I do my "pre-work" without the STP Server &lt;img id="smileyhappy" class="emoticon emoticon-smileyhappy" src="https://communities.sas.com/i/smilies/16x16_smiley-happy.png" alt="Smiley Happy" title="Smiley Happy" /&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Below is what I got so far. I feel like I am reinventing the wheel. Stuff like this must have been done a million times before &lt;img id="smileyhappy" class="emoticon emoticon-smileyhappy" src="https://communities.sas.com/i/smilies/16x16_smiley-happy.png" alt="Smiley Happy" title="Smiley Happy" /&gt;&lt;/P&gt;&lt;P&gt;In the macro part I am missing an IF/ELSE that not only gives me the opportunity to apply different styles but also&lt;/P&gt;&lt;P&gt;options that deal with excel-export problems like cutting of leading 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;options nodate pageno=1 linesize=80 pagesize=40 orientation=landscape;&lt;/P&gt;&lt;P&gt;%include "R:\....sas_generate_output.sas" ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%LET RepTitel = myreport;&lt;/P&gt;&lt;P&gt;%LET RepFileName = NRKP_Positive_Einzel_v01;&lt;/P&gt;&lt;P&gt;%LET RepFileNameExcel=&amp;amp;RepFileName'.xls';&lt;/P&gt;&lt;P&gt;%LET RepFileNameHTML=&amp;amp;RepFileName'.html';&lt;/P&gt;&lt;P&gt;%LET RepFileNamePDF=&amp;amp;RepFileName'.pdf';&lt;/P&gt;&lt;P&gt;%LET RepKopfZeile = x;&lt;/P&gt;&lt;P&gt;%LET RepFussZeile = y;&lt;/P&gt;&lt;P&gt;%LET RepName = &amp;amp;SYSDATE ;&lt;/P&gt;&lt;P&gt;%LET RepVersion = z;&lt;/P&gt;&lt;P&gt;%LET RepDB = w;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; connect to oracle as nrkpdb (user=xxx password=yyyy path=ccc);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; create table positive as&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select *&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from connection to nrkpdb&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select mydata from xxxx&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; disconnect from nrkpdb;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%let dsid=%sysfunc(open(positivliste));&lt;/P&gt;&lt;P&gt;%let num=%sysfunc(attrn(&amp;amp;dsid,nlobs));&lt;/P&gt;&lt;P&gt;%let rc=%sysfunc(close(&amp;amp;dsid));&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc report data=positive;&lt;/P&gt;&lt;P&gt;title &amp;amp;RepTitel;&lt;/P&gt;&lt;P&gt;compute after ;&lt;/P&gt;&lt;P&gt;text = "&amp;amp;sysuserid: &amp;amp;RepFileName&lt;/P&gt;&lt;P&gt;%sysfunc(datetime(),datetime.) &amp;amp;num. Results" ;&lt;/P&gt;&lt;P&gt;line @1 text $108.0;&lt;/P&gt;&lt;P&gt;endcomp;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ods _all_ close;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*Generate output files*/&lt;/P&gt;&lt;P&gt;%sas_generate_output(dataset=positivliste, file_name=&amp;amp;RepFileNamePDF, type=pdf);&lt;/P&gt;&lt;P&gt;%sas_generate_output(dataset=positivliste, file_name=&amp;amp;RepFileNameHTML, type=html);&lt;/P&gt;&lt;P&gt;%sas_generate_output(dataset=positivliste, file_name=&amp;amp;RepFileNameExcel, type=html);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro sas_generate_output(dataset=, file_name=, type=);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc template;&lt;/P&gt;&lt;P&gt;/*HTML Style*/&lt;/P&gt;&lt;P&gt;define style styles.mycssstylescreen;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; import ".....sas_style_v01.css" screen;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;/*PDF Style*/&lt;/P&gt;&lt;P&gt;define style styles.mycssstyleprinter;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; parent=styles.mycssstyle;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; import "....sas_style_v01.css" print;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*Text Format applied to all columns HEADTEXT= “&amp;lt;STYLE&amp;gt; TD {MSO-NUMBER-FORMAT:\@}&amp;lt;/STYLE&amp;gt;”;*/&lt;/P&gt;&lt;P&gt;ods &amp;amp;type file="sas_output\&amp;amp;file_name" cssstyle="sas_style_v01.css";&lt;/P&gt;&lt;P&gt;proc print data=&amp;amp;dataset;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;ods &amp;amp;type close;&lt;/P&gt;&lt;P&gt;%mend sas_generate_output;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 07 Apr 2015 09:48:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/autocall-macro-to-let-user-choose-to-export-as-excel-pdf/m-p/214382#M14117</guid>
      <dc:creator>metallon</dc:creator>
      <dc:date>2015-04-07T09:48:08Z</dc:date>
    </item>
    <item>
      <title>Re: autocall macro to let user choose to export as excel/pdf</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/autocall-macro-to-let-user-choose-to-export-as-excel-pdf/m-p/214383#M14118</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Oh, so its a graphic front end.&amp;nbsp; Why not use Visual Analytics or Web Report Studio to do this type of thing.&amp;nbsp; They are built for that.&amp;nbsp; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 07 Apr 2015 09:53:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/autocall-macro-to-let-user-choose-to-export-as-excel-pdf/m-p/214383#M14118</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2015-04-07T09:53:41Z</dc:date>
    </item>
    <item>
      <title>Re: autocall macro to let user choose to export as excel/pdf</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/autocall-macro-to-let-user-choose-to-export-as-excel-pdf/m-p/214384#M14119</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi RW9. Right now we have no Web Report Studio. It might be coming in a few months. but nevertheless the requirement is to have an easy way to get the output shows in WRS to MS excel. I tried to enhance the macro to use different styling depening on ms excel or pdf but so far I am not lucky with the IF clause:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;%macro sas_generate_output(dataset=, file_name=, output=, type=);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc template;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*HTML Style*/&lt;/P&gt;&lt;P&gt;define style styles.mycssstylescreen;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;import "...sas_marko\sas_style_v01.css" screen;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;/*PDF Style*/&lt;/P&gt;&lt;P&gt;define style styles.mycssstyleprinter;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;parent=styles.mycssstyle;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;import "....sas_style_v01.css" print;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%if &amp;amp;output eq excel&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %then %do&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;/*Text Format applied to all columns HEADTEXT= “&amp;lt;STYLE&amp;gt; TD {MSO-NUMBER-FORMAT:\@}&amp;lt;/STYLE&amp;gt;”;*/&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp; ods &amp;amp;type file="C:\temp\&amp;amp;file_name" style=styles.mycssstyleprinter&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp; %end;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;%else&lt;/TD&gt;&lt;TD&gt;%do&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;ods &amp;amp;type file="C:\temp\&amp;amp;file_name" style=styles.mycssstylescreen&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;%end;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp; /*cssstyle="....sas_marko\sas_style_v01.css";*/&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc print data=&amp;amp;dataset noobs;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;ods &amp;amp;type close;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%mend sas_generate_output;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="text-decoration: underline;"&gt;&lt;STRONG&gt;Expected %TO not found in %DO statement.&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="text-decoration: underline;"&gt;&lt;STRONG&gt;&lt;BR /&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;If I do it without the DO the error is:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="text-decoration: underline;"&gt;&lt;STRONG&gt;ERROR 22-322: Syntax error, expecting one of the following: ;, ANCHOR, AUTHOR, &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="text-decoration: underline;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BACKGROUND, BASE, BODY, BOOKMARK, BOOKMARKGEN, BOOKMARKLIST, &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="text-decoration: underline;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BOX_SIZING, CLOSE, COLOR, COLUMNS, COMPRESS, CONTENTS, CSSSTYLE,...&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 07 Apr 2015 14:43:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/autocall-macro-to-let-user-choose-to-export-as-excel-pdf/m-p/214384#M14119</guid>
      <dc:creator>metallon</dc:creator>
      <dc:date>2015-04-07T14:43:40Z</dc:date>
    </item>
    <item>
      <title>Re: autocall macro to let user choose to export as excel/pdf</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/autocall-macro-to-let-user-choose-to-export-as-excel-pdf/m-p/214385#M14120</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You have a missing semicolon at&lt;/P&gt;&lt;P&gt;%if &amp;amp;output eq excel&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %then %do &amp;lt;I think this is where you need ;&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;and at %else %do&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 07 Apr 2015 15:26:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/autocall-macro-to-let-user-choose-to-export-as-excel-pdf/m-p/214385#M14120</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2015-04-07T15:26:24Z</dc:date>
    </item>
    <item>
      <title>Re: autocall macro to let user choose to export as excel/pdf</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/autocall-macro-to-let-user-choose-to-export-as-excel-pdf/m-p/214386#M14121</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;that worked:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; %if &amp;amp;output eq excel %then %do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ods &amp;amp;type file="C:\temp\&amp;amp;file_name" style=styles.mycssstyleprinter;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %else %do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ods &amp;amp;type file="C:\temp\&amp;amp;file_name" style=styles.mycssstylescreen;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 08 Apr 2015 07:36:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/autocall-macro-to-let-user-choose-to-export-as-excel-pdf/m-p/214386#M14121</guid>
      <dc:creator>metallon</dc:creator>
      <dc:date>2015-04-08T07:36:56Z</dc:date>
    </item>
  </channel>
</rss>

