<?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 How to use a macro to generate htms across years in ODS and Base Reporting</title>
    <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/How-to-use-a-macro-to-generate-htms-across-years/m-p/352226#M18379</link>
    <description>&lt;P&gt;I need to generate 50+ htm tabs (by state) across at least 3 years using a large dataset in SAS 9.4. Currently I am generating the 50+ tabs year by year, but would like to try a nested macro so that multiple consecutive years would be run (e.g., 2013, 2014, 2015). I am also having problems creating a macro variable using the numeric variable "year". Below is the current code. Any comments or suggestions are much appreciated!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE class="default prettyprint prettyprinted"&gt;&lt;CODE&gt;&lt;SPAN class="pun"&gt;%&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;include &lt;/SPAN&gt;&lt;SPAN class="str"&gt;"&amp;amp;path\tableEditor.tpl"&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;;&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; 
run&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;;&lt;/SPAN&gt;

&lt;SPAN class="pun"&gt;%&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;macro testtab&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;(&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;st&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;,&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;xst1&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;);&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;ods tagsets&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;.&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;tableeditor file&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;"&amp;amp;path\&amp;amp;xst1..htm"&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;options&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;(&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; 
       frozen_headers&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;"yes"&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;       frozen_rowheaders&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;"yes"&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;       banner_color_even&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;"beige"&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;       banner_color_odd&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;"white"&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;       header_bgcolor&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;"teal"&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;       header_fgcolor&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;"white"&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;       rowheader_bgcolor&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;"lightblue"&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;       gridline_color&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;"gray"&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;       header_size&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;"12"&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;  
       rowheader_size&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;"12"&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; 
       data_size&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;"11"&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;;&lt;/SPAN&gt;

  &lt;SPAN class="pun"&gt;%&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;macro testtab&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;(&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;st&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;,&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;xst1&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;);&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;  ods tagsets&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;.&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;tableeditor file&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;"&amp;amp;path\&amp;amp;xst1..htm"&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;  options&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;(&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; 
       frozen_headers&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;"yes"&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;       frozen_rowheaders&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;"yes"&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;       banner_color_even&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;"beige"&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;       banner_color_odd&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;"white"&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;       header_bgcolor&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;"teal"&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;       header_fgcolor&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;"white"&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;       rowheader_bgcolor&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;"lightblue"&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;       gridline_color&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;"gray"&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;       header_size&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;"12"&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;  
       rowheader_size&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;"12"&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; 
       data_size&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;"11"&lt;/SPAN&gt; 
       &lt;SPAN class="com"&gt;/*sheet_name="&amp;amp;xst1"*/&lt;/SPAN&gt;
      &lt;SPAN class="pun"&gt;);&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;  PROC TABULATE NOSEPS MISSING FORMAT&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;comma7&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;.&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; FORMCHAR&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;'              '&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;  
  data&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;t&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;;&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;  CLASS STATEFIP YR sub1&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;;&lt;/SPAN&gt;
  &lt;SPAN class="kwd"&gt;class&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; age sex race ethnic &lt;/SPAN&gt;&lt;SPAN class="pun"&gt;/&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; style&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;={&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;background&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;lightyellow&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;};&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; tables statefip&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;,&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; all&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;*(&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;n f&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="lit"&gt;5.1&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;*&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;pctn&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;sub1 all&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;&amp;gt;)&lt;/SPAN&gt; 
 &lt;SPAN class="pun"&gt;(&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;sex all&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;)*(&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;pctn&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;sex all&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;&amp;gt;)*&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;f&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="lit"&gt;5.1&lt;/SPAN&gt; 
 &lt;SPAN class="pun"&gt;(&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;age all&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;)*(&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;pctn&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;age all&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;&amp;gt;)*&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;f&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="lit"&gt;5.1&lt;/SPAN&gt; 
 &lt;SPAN class="pun"&gt;(&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;race all&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;)*(&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;pctn&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;race all&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;&amp;gt;)*&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;f&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="lit"&gt;5.1&lt;/SPAN&gt; 
 &lt;SPAN class="pun"&gt;(&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;ethnic all&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;)*(&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;pctn&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;ethnic all&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;&amp;gt;)*&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;f&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="lit"&gt;5.1&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;,&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; 
 all sub1 &lt;/SPAN&gt;&lt;SPAN class="pun"&gt;/&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; rts&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="lit"&gt;16&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; misstext&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;'--'&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; box&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;_page_ printmiss&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;;&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; format age ageg&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;.&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; sex sex&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;.&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; race race&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;.&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; ethnic ethnic&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;.&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; sub1 &lt;/SPAN&gt;&lt;SPAN class="kwd"&gt;sub&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;.&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; statefip   
 $state&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;.;&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; keylabel all&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;'Total'&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; n&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;'No.'&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; pctn&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;'%'&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;;&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; title1  height&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="lit"&gt;11pt&lt;/SPAN&gt; &lt;SPAN class="str"&gt;'Title A,'&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;;&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; title2  height&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="lit"&gt;11pt&lt;/SPAN&gt; &lt;SPAN class="str"&gt;'Title B'&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;;&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;   
 title3  height&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="lit"&gt;11pt&lt;/SPAN&gt; &lt;SPAN class="str"&gt;'Year = 2013'&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;;&lt;/SPAN&gt; &lt;SPAN class="pun"&gt;*&lt;/SPAN&gt;&lt;SPAN class="str"&gt;/Need to make this a macro*/&lt;/SPAN&gt;

 &lt;SPAN class="kwd"&gt;where&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; statefip IN &lt;/SPAN&gt;&lt;SPAN class="pun"&gt;(&amp;amp;&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;st&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;);&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;   

 run&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;;&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;  

 ods tagsets&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;.&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;tableeditor close&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;;&lt;/SPAN&gt;

 &lt;SPAN class="pun"&gt;%&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;mend testtab&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;;&lt;/SPAN&gt;

 &lt;SPAN class="pun"&gt;%&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;testtab&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;(&lt;/SPAN&gt;&lt;SPAN class="str"&gt;'AL'&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;,&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;AL15&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;)&lt;/SPAN&gt;
 &lt;SPAN class="pun"&gt;%&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;testtab&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;(&lt;/SPAN&gt;&lt;SPAN class="str"&gt;'AR'&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;,&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;AR15&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;)...;&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;run&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Fri, 21 Apr 2017 16:53:06 GMT</pubDate>
    <dc:creator>tipscode</dc:creator>
    <dc:date>2017-04-21T16:53:06Z</dc:date>
    <item>
      <title>How to use a macro to generate htms across years</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/How-to-use-a-macro-to-generate-htms-across-years/m-p/352226#M18379</link>
      <description>&lt;P&gt;I need to generate 50+ htm tabs (by state) across at least 3 years using a large dataset in SAS 9.4. Currently I am generating the 50+ tabs year by year, but would like to try a nested macro so that multiple consecutive years would be run (e.g., 2013, 2014, 2015). I am also having problems creating a macro variable using the numeric variable "year". Below is the current code. Any comments or suggestions are much appreciated!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE class="default prettyprint prettyprinted"&gt;&lt;CODE&gt;&lt;SPAN class="pun"&gt;%&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;include &lt;/SPAN&gt;&lt;SPAN class="str"&gt;"&amp;amp;path\tableEditor.tpl"&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;;&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; 
run&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;;&lt;/SPAN&gt;

&lt;SPAN class="pun"&gt;%&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;macro testtab&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;(&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;st&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;,&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;xst1&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;);&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;ods tagsets&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;.&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;tableeditor file&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;"&amp;amp;path\&amp;amp;xst1..htm"&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;options&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;(&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; 
       frozen_headers&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;"yes"&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;       frozen_rowheaders&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;"yes"&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;       banner_color_even&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;"beige"&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;       banner_color_odd&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;"white"&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;       header_bgcolor&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;"teal"&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;       header_fgcolor&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;"white"&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;       rowheader_bgcolor&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;"lightblue"&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;       gridline_color&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;"gray"&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;       header_size&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;"12"&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;  
       rowheader_size&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;"12"&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; 
       data_size&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;"11"&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;;&lt;/SPAN&gt;

  &lt;SPAN class="pun"&gt;%&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;macro testtab&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;(&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;st&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;,&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;xst1&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;);&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;  ods tagsets&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;.&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;tableeditor file&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;"&amp;amp;path\&amp;amp;xst1..htm"&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;  options&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;(&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; 
       frozen_headers&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;"yes"&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;       frozen_rowheaders&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;"yes"&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;       banner_color_even&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;"beige"&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;       banner_color_odd&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;"white"&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;       header_bgcolor&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;"teal"&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;       header_fgcolor&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;"white"&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;       rowheader_bgcolor&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;"lightblue"&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;       gridline_color&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;"gray"&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;       header_size&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;"12"&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;  
       rowheader_size&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;"12"&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; 
       data_size&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;"11"&lt;/SPAN&gt; 
       &lt;SPAN class="com"&gt;/*sheet_name="&amp;amp;xst1"*/&lt;/SPAN&gt;
      &lt;SPAN class="pun"&gt;);&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;  PROC TABULATE NOSEPS MISSING FORMAT&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;comma7&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;.&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; FORMCHAR&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;'              '&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;  
  data&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;t&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;;&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;  CLASS STATEFIP YR sub1&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;;&lt;/SPAN&gt;
  &lt;SPAN class="kwd"&gt;class&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; age sex race ethnic &lt;/SPAN&gt;&lt;SPAN class="pun"&gt;/&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; style&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;={&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;background&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;lightyellow&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;};&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; tables statefip&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;,&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; all&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;*(&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;n f&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="lit"&gt;5.1&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;*&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;pctn&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;sub1 all&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;&amp;gt;)&lt;/SPAN&gt; 
 &lt;SPAN class="pun"&gt;(&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;sex all&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;)*(&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;pctn&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;sex all&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;&amp;gt;)*&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;f&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="lit"&gt;5.1&lt;/SPAN&gt; 
 &lt;SPAN class="pun"&gt;(&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;age all&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;)*(&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;pctn&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;age all&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;&amp;gt;)*&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;f&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="lit"&gt;5.1&lt;/SPAN&gt; 
 &lt;SPAN class="pun"&gt;(&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;race all&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;)*(&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;pctn&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;race all&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;&amp;gt;)*&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;f&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="lit"&gt;5.1&lt;/SPAN&gt; 
 &lt;SPAN class="pun"&gt;(&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;ethnic all&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;)*(&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;pctn&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;ethnic all&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;&amp;gt;)*&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;f&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="lit"&gt;5.1&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;,&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; 
 all sub1 &lt;/SPAN&gt;&lt;SPAN class="pun"&gt;/&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; rts&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="lit"&gt;16&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; misstext&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;'--'&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; box&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;_page_ printmiss&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;;&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; format age ageg&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;.&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; sex sex&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;.&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; race race&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;.&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; ethnic ethnic&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;.&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; sub1 &lt;/SPAN&gt;&lt;SPAN class="kwd"&gt;sub&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;.&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; statefip   
 $state&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;.;&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; keylabel all&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;'Total'&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; n&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;'No.'&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; pctn&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="str"&gt;'%'&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;;&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; title1  height&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="lit"&gt;11pt&lt;/SPAN&gt; &lt;SPAN class="str"&gt;'Title A,'&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;;&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; title2  height&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="lit"&gt;11pt&lt;/SPAN&gt; &lt;SPAN class="str"&gt;'Title B'&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;;&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;   
 title3  height&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;=&lt;/SPAN&gt;&lt;SPAN class="lit"&gt;11pt&lt;/SPAN&gt; &lt;SPAN class="str"&gt;'Year = 2013'&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;;&lt;/SPAN&gt; &lt;SPAN class="pun"&gt;*&lt;/SPAN&gt;&lt;SPAN class="str"&gt;/Need to make this a macro*/&lt;/SPAN&gt;

 &lt;SPAN class="kwd"&gt;where&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; statefip IN &lt;/SPAN&gt;&lt;SPAN class="pun"&gt;(&amp;amp;&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;st&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;);&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;   

 run&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;;&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;  

 ods tagsets&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;.&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;tableeditor close&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;;&lt;/SPAN&gt;

 &lt;SPAN class="pun"&gt;%&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;mend testtab&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;;&lt;/SPAN&gt;

 &lt;SPAN class="pun"&gt;%&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;testtab&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;(&lt;/SPAN&gt;&lt;SPAN class="str"&gt;'AL'&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;,&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;AL15&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;)&lt;/SPAN&gt;
 &lt;SPAN class="pun"&gt;%&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;testtab&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;(&lt;/SPAN&gt;&lt;SPAN class="str"&gt;'AR'&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;,&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;AR15&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;)...;&lt;/SPAN&gt;&lt;SPAN class="pln"&gt;run&lt;/SPAN&gt;&lt;SPAN class="pun"&gt;;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 21 Apr 2017 16:53:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/How-to-use-a-macro-to-generate-htms-across-years/m-p/352226#M18379</guid>
      <dc:creator>tipscode</dc:creator>
      <dc:date>2017-04-21T16:53:06Z</dc:date>
    </item>
    <item>
      <title>Re: Hot to use a macro to generate htms across years</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/How-to-use-a-macro-to-generate-htms-across-years/m-p/352239#M18380</link>
      <description>&lt;P&gt;First make your macro a little more flexible. &amp;nbsp;For example I would make it so that you have a ST and YR parameter that can take single values or space delimited values. I would also make the input dataset and output folder parameters. You could also make the output filename a parameter, but default to a value that is based on the ST and YR values.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%macro testtab(st,yr,filen=,dsn=t,loc=&amp;amp;path); 
%if 0=%length(&amp;amp;st) %then %let st=ALL ;
%if 0=%length(&amp;amp;yr) %then %let yr=ALL ;
%if 0=%length(&amp;amp;filen) %then %let filen=%sysfunc(translate(&amp;amp;yr\&amp;amp;st,'_',' '));

title1  height=11pt 'Title A,'; 
title2  height=11pt 'Title B';   
title3  height=11pt "STATE= &amp;amp;st  YEAR= &amp;amp;yr;"; 

ods tagsets.tableeditor file="&amp;amp;loc\&amp;amp;filen..htm" 
  options( 
    frozen_headers="yes"
    frozen_rowheaders="yes"
    banner_color_even="beige"
    banner_color_odd="white"
    header_bgcolor="teal"
    header_fgcolor="white"
    rowheader_bgcolor="lightblue"
    gridline_color="gray"
    header_size="12"  
    rowheader_size="12" 
    data_size="11" 
    /*sheet_name="&amp;amp;xst1"*/
  )
;  

PROC TABULATE data=&amp;amp;dsn NOSEPS MISSING FORMAT=comma7. FORMCHAR='              ' ;
%if ("&amp;amp;st" ne "ALL") %then %do;
  where also statefip IN ("%sysfunc(tranwrd(%sysfunc(compbl(&amp;amp;st)),%str( )," "))");
%end;
%if ("&amp;amp;yr" ne "ALL") %then %do;
  where also yr in (&amp;amp;yr);
%end;
  CLASS STATEFIP YR sub1;
  class age sex race ethnic / style={background=lightyellow};
  tables statefip
       , all*(n f=5.1*pctn&amp;lt;sub1 all&amp;gt;) 
        (sex all)*(pctn&amp;lt;sex all&amp;gt;)*f=5.1 
        (age all)*(pctn&amp;lt;age all&amp;gt;)*f=5.1 
        (race all)*(pctn&amp;lt;race all&amp;gt;)*f=5.1 
        (ethnic all)*(pctn&amp;lt;ethnic all&amp;gt;)*f=5.1
       , all sub1 
     / rts=16 misstext='--' box=_page_ printmiss
   ; 
   format age ageg. sex sex. race race. ethnic ethnic. sub1 sub. statefip  $state.;
  keylabel all='Total' n='No.' pctn='%';
run;
ods tagsets.tableeditor close;
%mend testtab;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;You might need to make other parts of the PROC TABULATE code flexible so that it adjusts when the table represents more than one year or more than one state.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Then you can generate calls to create all years for a single state or all states for a single year or any combination.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%let path=\\server\sharename\foldername;
options mprint;

%testtab(AL,2013)
%testtab(AL,2014)
%testtab(st=CA)
%testtab(yr=2013)
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Or you could query the data in your input table and generate all possible combinations.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql noprint;
select cats('%testtab(',statefip,',',yr,')')
  into :calls separated by ';'
  from (select distinct statefip from T)
     , (select distinct yr from T)
;
quit;

&amp;amp;calls;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 21 Apr 2017 16:54:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/How-to-use-a-macro-to-generate-htms-across-years/m-p/352239#M18380</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2017-04-21T16:54:53Z</dc:date>
    </item>
    <item>
      <title>Re: How to use a macro to generate htms across years</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/How-to-use-a-macro-to-generate-htms-across-years/m-p/352265#M18384</link>
      <description>&lt;P&gt;Thank you so much Tom!&lt;/P&gt;&lt;P&gt;Two follow-up questions:&lt;/P&gt;&lt;P&gt;1) Currently all states are spelled out in the original dataset (as variable "statefip", with individual value such as "Alabama"), and a label is applied for the abbreviation ( attrib statefip label='STATE: '; ). The original macro uses "where statefip IN (&amp;amp;st)" - Would this work with the changes that you recommended?&lt;/P&gt;&lt;P&gt;2) Can a macro be used to create each htm's name as "State Abbreviation and Year", e.g., "HI15"?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 21 Apr 2017 17:53:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/How-to-use-a-macro-to-generate-htms-across-years/m-p/352265#M18384</guid>
      <dc:creator>tipscode</dc:creator>
      <dc:date>2017-04-21T17:53:21Z</dc:date>
    </item>
    <item>
      <title>Re: How to use a macro to generate htms across years</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/How-to-use-a-macro-to-generate-htms-across-years/m-p/353372#M18423</link>
      <description>&lt;P&gt;I am not sure about your questions but you can adjust the macro to generate any SAS code that you can figure out.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;From your use of the FORMAT statement in the PROC TABULATE code I assumed that the values were already stored as the abbreviations and that the format STATE that you mentioned would cause the longer state name to be used in the report.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If the values in the data have full state names ('Alabama', 'New York', etc.) and you want to support passing multiple values into the macro then you will need to adjust the logic to use some other separator than a space in the list of values. &amp;nbsp; Or you could use formats or functions to convert between code and state name so that you could still pass in the shorter value.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You should look at some of the functions that SAS has for handling FIPS codes. &amp;nbsp;Like FIPSNAME() and STFIPS().&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 25 Apr 2017 18:30:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/How-to-use-a-macro-to-generate-htms-across-years/m-p/353372#M18423</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2017-04-25T18:30:34Z</dc:date>
    </item>
  </channel>
</rss>

