<?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: ODS HTML Page customisation in ODS and Base Reporting</title>
    <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/ODS-HTML-Page-customisation/m-p/57283#M6898</link>
    <description>Share all of your executed SAS code, including the ODS statement and any PROC execution that generates output, preferably as a SAS log output, pasted in your post-reply.&lt;BR /&gt;
&lt;BR /&gt;
Scott Barry&lt;BR /&gt;
SBBWorks, Inc.</description>
    <pubDate>Mon, 15 Feb 2010 13:56:08 GMT</pubDate>
    <dc:creator>sbb</dc:creator>
    <dc:date>2010-02-15T13:56:08Z</dc:date>
    <item>
      <title>ODS HTML Page customisation</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/ODS-HTML-Page-customisation/m-p/57280#M6895</link>
      <description>Gday,&lt;BR /&gt;
&lt;BR /&gt;
I was wondering if it's possible to customise the way the links show up on the left frame of some ODS HTML output.&lt;BR /&gt;
&lt;BR /&gt;
Here's the structure of the code that I'm running:&lt;BR /&gt;
&lt;BR /&gt;
ods html file  = "f.html"&lt;BR /&gt;
         frame = "t.html"&lt;BR /&gt;
         page  = "p.html"&lt;BR /&gt;
         path  = "&amp;amp;base_dir.\&amp;amp;eom.\Distribution\html\"&lt;BR /&gt;
         newfile=page&lt;BR /&gt;
         style = newstyle;&lt;BR /&gt;
&lt;BR /&gt;
title1 'Personal Specialty';&lt;BR /&gt;
&lt;BR /&gt;
ods proclabel "Personal Specialty: Accident Year Summary Report";&lt;BR /&gt;
proc report data = Summary.Uw_data_dom nowd &amp;amp;proc_rpt_opt. &amp;amp;macro_style.;&lt;BR /&gt;
   column &lt;BR /&gt;
      accyr &lt;BR /&gt;
      &amp;amp;macro_vars.&lt;BR /&gt;
   ;&lt;BR /&gt;
&lt;BR /&gt;
   define accyr         / 'AccYr' group order=formatted ;&lt;BR /&gt;
&lt;BR /&gt;
   %common_calcs;&lt;BR /&gt;
&lt;BR /&gt;
   rbreak after / summarize;&lt;BR /&gt;
run;&lt;BR /&gt;
ods html close;&lt;BR /&gt;
^^&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
&lt;A href="http://img41.imageshack.us/img41/586/odshtmlpage.png" target="_blank"&gt;http://img41.imageshack.us/img41/586/odshtmlpage.png&lt;/A&gt;&lt;BR /&gt;
^^&lt;BR /&gt;
&lt;BR /&gt;
I want p.html to have the text highlighted in red (see link) to be the link and remove the rest of the text.&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
Thanks.&lt;BR /&gt;
-John T.</description>
      <pubDate>Mon, 15 Feb 2010 03:43:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/ODS-HTML-Page-customisation/m-p/57280#M6895</guid>
      <dc:creator>JohnT</dc:creator>
      <dc:date>2010-02-15T03:43:04Z</dc:date>
    </item>
    <item>
      <title>Re: ODS HTML Page customisation</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/ODS-HTML-Page-customisation/m-p/57281#M6896</link>
      <description>Start here:&lt;BR /&gt;
&lt;BR /&gt;
&lt;A href="http://support.sas.com/rnd/base/ods/templateFAQ/index.html" target="_blank"&gt;http://support.sas.com/rnd/base/ods/templateFAQ/index.html&lt;/A&gt;&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
Under the heading ODS HTML, there are SAS notes with details on the topic/post you requested.&lt;BR /&gt;
&lt;BR /&gt;
Scott Barry&lt;BR /&gt;
SBBWorks, Inc.</description>
      <pubDate>Mon, 15 Feb 2010 04:46:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/ODS-HTML-Page-customisation/m-p/57281#M6896</guid>
      <dc:creator>sbb</dc:creator>
      <dc:date>2010-02-15T04:46:20Z</dc:date>
    </item>
    <item>
      <title>Re: ODS HTML Page customisation</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/ODS-HTML-Page-customisation/m-p/57282#M6897</link>
      <description>Thanks for the response sbb, I have looked at a lot the links on the URL you provided a couple of months ago, and had no luck on this topic.  Do you have a more specific link?&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
When I first attempted this exercise, I found the following:&lt;BR /&gt;
proc template;&lt;BR /&gt;
   define style newstyle;&lt;BR /&gt;
      parent=styles.default;&lt;BR /&gt;
      style PagesItem from IndexItem / Posttext=" of the Personal Specialty";&lt;BR /&gt;
   end;&lt;BR /&gt;
run;&lt;BR /&gt;
^^&lt;BR /&gt;
&lt;BR /&gt;
It's close, but it doesn't change what the link is and it doesn't remove the text.&lt;BR /&gt;
&lt;BR /&gt;
I got the above from:&lt;BR /&gt;
&lt;A href="http://support.sas.com/kb/23/434.html" target="_blank"&gt;http://support.sas.com/kb/23/434.html&lt;/A&gt;&lt;BR /&gt;
^^&lt;BR /&gt;
&lt;BR /&gt;
Message was edited by: John T&lt;BR /&gt;
&lt;BR /&gt;
Message was edited by: John T</description>
      <pubDate>Mon, 15 Feb 2010 04:55:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/ODS-HTML-Page-customisation/m-p/57282#M6897</guid>
      <dc:creator>JohnT</dc:creator>
      <dc:date>2010-02-15T04:55:51Z</dc:date>
    </item>
    <item>
      <title>Re: ODS HTML Page customisation</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/ODS-HTML-Page-customisation/m-p/57283#M6898</link>
      <description>Share all of your executed SAS code, including the ODS statement and any PROC execution that generates output, preferably as a SAS log output, pasted in your post-reply.&lt;BR /&gt;
&lt;BR /&gt;
Scott Barry&lt;BR /&gt;
SBBWorks, Inc.</description>
      <pubDate>Mon, 15 Feb 2010 13:56:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/ODS-HTML-Page-customisation/m-p/57283#M6898</guid>
      <dc:creator>sbb</dc:creator>
      <dc:date>2010-02-15T13:56:08Z</dc:date>
    </item>
    <item>
      <title>Re: ODS HTML Page customisation</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/ODS-HTML-Page-customisation/m-p/57284#M6899</link>
      <description>2055  data _null_;&lt;BR /&gt;
2056     lm = intnx('month', today(), -1, 'e');&lt;BR /&gt;
2057&lt;BR /&gt;
2058     call symput('yr', year(lm) );&lt;BR /&gt;
2059     call symput('eom', put(lm, yymmn6.) );&lt;BR /&gt;
2060  run;&lt;BR /&gt;
&lt;BR /&gt;
NOTE: Numeric values have been converted to character values at the places given by:&lt;BR /&gt;
      (Line):(Column).&lt;BR /&gt;
      2058:22&lt;BR /&gt;
NOTE: DATA statement used (Total process time):&lt;BR /&gt;
      real time           0.00 seconds&lt;BR /&gt;
      cpu time            0.00 seconds&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
2061  %put &amp;amp;yr.;&lt;BR /&gt;
2010&lt;BR /&gt;
2062  %put &amp;amp;eom.;&lt;BR /&gt;
201001&lt;BR /&gt;
2063&lt;BR /&gt;
2064&lt;BR /&gt;
2065  %macro common_calcs();&lt;BR /&gt;
2066     define gwp      / analysis sum format=comma15.;&lt;BR /&gt;
2067     define gep      / analysis sum format=comma15.;&lt;BR /&gt;
2068     define Incurred / analysis sum format=comma15.;&lt;BR /&gt;
2069&lt;BR /&gt;
2070     define AttrIncurred  / noprint ;&lt;BR /&gt;
2071     define LgeIncurred   / noprint ;&lt;BR /&gt;
2072     define CatIncurred   / noprint ;&lt;BR /&gt;
2073     define ibnr          / noprint ;&lt;BR /&gt;
2074     define GEC           / noprint ;&lt;BR /&gt;
2075     define AdminExp      / noprint ;&lt;BR /&gt;
2076     define OpProfitAT           / noprint ;&lt;BR /&gt;
2077     define Capital      / noprint ;&lt;BR /&gt;
2078&lt;BR /&gt;
2079     define Attr_GLR   / computed format = percent12.;&lt;BR /&gt;
2080     define Lge_GLR    / computed format = percent12.;&lt;BR /&gt;
2081     define Cat_GLR    / computed format = percent12.1;&lt;BR /&gt;
2082     define Inc_GLR    / computed format = percent12.1;&lt;BR /&gt;
2083     define Ult_GLR    / computed format = percent12.1;&lt;BR /&gt;
2084&lt;BR /&gt;
2085     define Comm_rate  / 'Comm_%' computed format = percent12.1;&lt;BR /&gt;
2086     define ExpRate    / computed format = percent12.1;&lt;BR /&gt;
2087     *define ROC        / computed format = percent12.1;&lt;BR /&gt;
2088     define ROC        / computed format = pctpic.;&lt;BR /&gt;
2089&lt;BR /&gt;
2090&lt;BR /&gt;
2091     compute Attr_GLR;&lt;BR /&gt;
2092        if -AttrIncurred.sum/gep.sum = . then&lt;BR /&gt;
2093           Attr_GLR = 0;&lt;BR /&gt;
2094        else&lt;BR /&gt;
2095           Attr_GLR = -AttrIncurred.sum/gep.sum;&lt;BR /&gt;
2096     endcomp;&lt;BR /&gt;
2097&lt;BR /&gt;
2098     compute Lge_GLR;&lt;BR /&gt;
2099        if -LgeIncurred.sum/gep.sum = . then&lt;BR /&gt;
2100           Lge_GLR = 0;&lt;BR /&gt;
2101        else&lt;BR /&gt;
2102           Lge_GLR  = -LgeIncurred.sum/ gep.sum ;&lt;BR /&gt;
2103     endcomp;&lt;BR /&gt;
2104&lt;BR /&gt;
2105     compute Cat_GLR;&lt;BR /&gt;
2106        if -CatIncurred.sum/gep.sum = . then&lt;BR /&gt;
2107           Cat_GLR = 0;&lt;BR /&gt;
2108        else&lt;BR /&gt;
2109           Cat_GLR  = -CatIncurred.sum/ gep.sum ;&lt;BR /&gt;
2110     endcomp;&lt;BR /&gt;
2111&lt;BR /&gt;
2112     compute Inc_GLR;&lt;BR /&gt;
2113        if -incurred.sum /gep.sum = . then&lt;BR /&gt;
2114           Inc_GLR = 0;&lt;BR /&gt;
2115        else&lt;BR /&gt;
2116           Inc_GLR  = -incurred.sum/ gep.sum ;&lt;BR /&gt;
2117     endcomp;&lt;BR /&gt;
2118&lt;BR /&gt;
2119     compute Ult_GLR;&lt;BR /&gt;
2120        if -sum(incurred.sum, ibnr.sum) / gep.sum  = . then&lt;BR /&gt;
2121           Ult_GLR = 0;&lt;BR /&gt;
2122        else&lt;BR /&gt;
2123           Ult_GLR  = -sum(incurred.sum, ibnr.sum) / gep.sum ;&lt;BR /&gt;
2124     endcomp;&lt;BR /&gt;
2125&lt;BR /&gt;
2126&lt;BR /&gt;
2127     compute Comm_rate;&lt;BR /&gt;
2128        if -gec.sum/gep.sum = . then&lt;BR /&gt;
2129           Comm_rate = 0;&lt;BR /&gt;
2130        else&lt;BR /&gt;
2131           Comm_rate = -gec.sum/gep.sum;&lt;BR /&gt;
2132     endcomp;&lt;BR /&gt;
2133&lt;BR /&gt;
2134     compute ExpRate;&lt;BR /&gt;
2135        if -AdminExp.sum /gep.sum = . then&lt;BR /&gt;
2136           ExpRate = 0;&lt;BR /&gt;
2137        else&lt;BR /&gt;
2138           ExpRate  = -AdminExp.sum/ gep.sum ;&lt;BR /&gt;
2139     endcomp;&lt;BR /&gt;
2140&lt;BR /&gt;
2141     compute ROC;&lt;BR /&gt;
2142        if OpProfitAT.sum/Capital.sum  = . then&lt;BR /&gt;
2143           ROC = 0;&lt;BR /&gt;
2144        else&lt;BR /&gt;
2145           ROC = OpProfitAT.sum/Capital.sum ;&lt;BR /&gt;
2146     endcomp;&lt;BR /&gt;
2147  %mend;&lt;BR /&gt;
2148&lt;BR /&gt;
2149  proc format;&lt;BR /&gt;
2150     picture pctpic (round) low-&amp;lt;0  = '0099.9%'  (mult=1000 prefix='-')&lt;BR /&gt;
2151                             0-high = '0099.9%'  (mult=1000) ;&lt;BR /&gt;
NOTE: Format PCTPIC is already on the library.&lt;BR /&gt;
NOTE: Format PCTPIC has been output.&lt;BR /&gt;
2152  run;&lt;BR /&gt;
&lt;BR /&gt;
NOTE: PROCEDURE FORMAT used (Total process time):&lt;BR /&gt;
      real time           0.09 seconds&lt;BR /&gt;
      cpu time            0.01 seconds&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
2153  %let base_dir = H:\Technical\Portfolio Management\Reports\Monthly\UW Performance Report;&lt;BR /&gt;
2154  LIBNAME Summary "&amp;amp;base_dir.\&amp;amp;eom.\Basedata";&lt;BR /&gt;
NOTE: Libref SUMMARY was successfully assigned as follows:&lt;BR /&gt;
      Engine:        V9&lt;BR /&gt;
      Physical Name: H:\Technical\Portfolio Management\Reports\Monthly\UW Performance&lt;BR /&gt;
      Report\201001\Basedata&lt;BR /&gt;
2155&lt;BR /&gt;
2156&lt;BR /&gt;
2157  %let macro_vars =&lt;BR /&gt;
2158        GWP GEP Incurred&lt;BR /&gt;
2159        AttrIncurred LgeIncurred CatIncurred ibnr&lt;BR /&gt;
2160        GEC AdminExp OpProfitAT Capital&lt;BR /&gt;
2161&lt;BR /&gt;
2162        Attr_GLR Lge_GLR Cat_GLR Inc_GLR Ult_GLR&lt;BR /&gt;
2163        Comm_rate ExpRate ROC&lt;BR /&gt;
2164  ;&lt;BR /&gt;
2165&lt;BR /&gt;
2166  %let macro_style =&lt;BR /&gt;
2167     style(report)  = [cellspacing=3 borderwidth=5 bordercolor=blue]&lt;BR /&gt;
2168     style(header)  = [foreground=white  background=purple FONT_WEIGHT=medium font_size=1.7]&lt;BR /&gt;
2169     style(column)  = [foreground=black background=white font_face=helvetica font_size=1]&lt;BR /&gt;
2170     style(lines)   = [foreground=white background=black font_style=italic font_weight=bold&lt;BR /&gt;
2170! font_size=1]&lt;BR /&gt;
2171     style(summary) = [foreground=cx3e3d73 background=cxaeadd9 font_face=helvetica font_size=1&lt;BR /&gt;
2171!  just=r]&lt;BR /&gt;
2172  ;&lt;BR /&gt;
2173&lt;BR /&gt;
2174&lt;BR /&gt;
2175&lt;BR /&gt;
2176  proc template;&lt;BR /&gt;
2177     define style newstyle;&lt;BR /&gt;
2178        parent=styles.default;&lt;BR /&gt;
2179        style PagesItem from IndexItem / Posttext=" of the Personal Specialty";&lt;BR /&gt;
2180     end;&lt;BR /&gt;
NOTE: Overwriting existing template/link: Newstyle&lt;BR /&gt;
NOTE: STYLE 'Newstyle' has been saved to: SASUSER.TEMPLAT&lt;BR /&gt;
2181  run;&lt;BR /&gt;
NOTE: PROCEDURE TEMPLATE used (Total process time):&lt;BR /&gt;
      real time           0.12 seconds&lt;BR /&gt;
      cpu time            0.04 seconds&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
2182&lt;BR /&gt;
2183&lt;BR /&gt;
2184  %let proc_rpt_opt =&lt;BR /&gt;
2185     headline headskip&lt;BR /&gt;
2186     /*NOEXEC*/&lt;BR /&gt;
2187  ;&lt;BR /&gt;
2188&lt;BR /&gt;
2189  *need to output FILE FRAME and PAGE to generate links;&lt;BR /&gt;
2190  *however we will not use the p.html file, we will use one created manually;&lt;BR /&gt;
2191  options nodate pageno=1;&lt;BR /&gt;
2192  ods html /*file  = "&amp;amp;base_dir.\&amp;amp;eom.\Distribution\html\f.html"&lt;BR /&gt;
2193           frame = "&amp;amp;base_dir.\&amp;amp;eom.\Distribution\html\t.html"&lt;BR /&gt;
2194           page  = "&amp;amp;base_dir.\&amp;amp;eom.\Distribution\html\p.html"*/&lt;BR /&gt;
2195           file  = "f.html"&lt;BR /&gt;
2196           frame = "t.html"&lt;BR /&gt;
2197           page  = "p.html"&lt;BR /&gt;
2198           path  = "&amp;amp;base_dir.\&amp;amp;eom.\Distribution\html\"&lt;BR /&gt;
2199           /*base  = "H:\Technical\Portfolio Management\Reports\Monthly\UW Performance&lt;BR /&gt;
2199! Report\&amp;amp;eom.\Distribution\html"*/&lt;BR /&gt;
2200           /*ase = "&amp;amp;base_dir.\&amp;amp;eom.\Distribution\html\"*/&lt;BR /&gt;
2201           newfile=page&lt;BR /&gt;
2202           style = newstyle;&lt;BR /&gt;
NOTE: Writing HTML Body file: f.html&lt;BR /&gt;
NOTE: Writing HTML Pages file: p.html&lt;BR /&gt;
NOTE: Writing HTML Frame file: t.html&lt;BR /&gt;
2203&lt;BR /&gt;
2204  title1 'Personal Specialty';&lt;BR /&gt;
2205&lt;BR /&gt;
2206&lt;BR /&gt;
2207  ods proclabel "Personal Specialty: Accident Year Summary Report";&lt;BR /&gt;
2208  proc report data = Summary.Uw_data_dom nowd &amp;amp;proc_rpt_opt. &amp;amp;macro_style.;&lt;BR /&gt;
2209     column&lt;BR /&gt;
2210        accyr&lt;BR /&gt;
2211        &amp;amp;macro_vars.&lt;BR /&gt;
2212     ;&lt;BR /&gt;
2213&lt;BR /&gt;
2214     define accyr         / 'AccYr' group order=formatted ;&lt;BR /&gt;
2215&lt;BR /&gt;
2216     %common_calcs;&lt;BR /&gt;
2217&lt;BR /&gt;
2218     *break after class_type / summarize;&lt;BR /&gt;
2219     rbreak after / summarize;&lt;BR /&gt;
2220&lt;BR /&gt;
2221    * title '22Sales for the Southeast Sector';&lt;BR /&gt;
2222  run;&lt;BR /&gt;
&lt;BR /&gt;
NOTE: Missing values were generated as a result of performing an operation on missing values.&lt;BR /&gt;
      Each place is given by: (Number of times) at (Line):(Column).&lt;BR /&gt;
      1 at 1:6    1 at 1:21   1 at 1:6    1 at 1:21&lt;BR /&gt;
NOTE: Missing values were generated as a result of performing an operation on missing values.&lt;BR /&gt;
      Each place is given by: (Number of times) at (Line):(Column).&lt;BR /&gt;
      1 at 1:6    1 at 1:21   1 at 1:6    1 at 1:21&lt;BR /&gt;
NOTE: There were 884 observations read from the data set SUMMARY.UW_DATA_DOM.&lt;BR /&gt;
NOTE: PROCEDURE REPORT used (Total process time):&lt;BR /&gt;
      real time           0.23 seconds&lt;BR /&gt;
      cpu time            0.03 seconds&lt;BR /&gt;
2223&lt;BR /&gt;
2224&lt;BR /&gt;
2225  ods proclabel "Personal Specialty: Accident Year Summary Report";&lt;BR /&gt;
2226  proc report data = Summary.Uw_data_dom nowd &amp;amp;proc_rpt_opt. &amp;amp;macro_style.;&lt;BR /&gt;
2227     column&lt;BR /&gt;
2228        class_type accyr&lt;BR /&gt;
2229        &amp;amp;macro_vars.&lt;BR /&gt;
2230     ;&lt;BR /&gt;
2231&lt;BR /&gt;
2232     define class_type    /         group order=formatted ;&lt;BR /&gt;
2233     define accyr         / 'AccYr' group order=formatted ;&lt;BR /&gt;
2234&lt;BR /&gt;
2235     %common_calcs;&lt;BR /&gt;
2236&lt;BR /&gt;
2237     break after class_type / summarize;&lt;BR /&gt;
2238     rbreak after / summarize;&lt;BR /&gt;
2239&lt;BR /&gt;
2240    * title '22Sales for the Southeast Sector';&lt;BR /&gt;
2241  run;&lt;BR /&gt;
&lt;BR /&gt;
NOTE: Writing HTML Body file: f1.html&lt;BR /&gt;
NOTE: Missing values were generated as a result of performing an operation on missing values.&lt;BR /&gt;
      Each place is given by: (Number of times) at (Line):(Column).&lt;BR /&gt;
      6 at 1:6    6 at 1:22   7 at 1:6    7 at 1:21   7 at 1:6    7 at 1:21   6 at 1:6&lt;BR /&gt;
      6 at 1:19   4 at 1:6    2 at 1:34   2 at 1:6    2 at 1:13   2 at 1:6    2 at 1:19&lt;BR /&gt;
      2 at 1:19&lt;BR /&gt;
NOTE: Missing values were generated as a result of performing an operation on missing values.&lt;BR /&gt;
      Each place is given by: (Number of times) at (Line):(Column).&lt;BR /&gt;
      6 at 1:6    6 at 1:22   7 at 1:6    7 at 1:21   7 at 1:6    7 at 1:21   6 at 1:6&lt;BR /&gt;
      6 at 1:19   4 at 1:6    2 at 1:34   2 at 1:6    2 at 1:13   2 at 1:6    2 at 1:19&lt;BR /&gt;
      2 at 1:19&lt;BR /&gt;
NOTE: There were 884 observations read from the data set SUMMARY.UW_DATA_DOM.&lt;BR /&gt;
NOTE: PROCEDURE REPORT used (Total process time):&lt;BR /&gt;
      real time           0.21 seconds&lt;BR /&gt;
      cpu time            0.09 seconds&lt;BR /&gt;
&lt;BR /&gt;
^^&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
There's about 13 more of those proc report steps, and finally:&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
2563  ods html close;</description>
      <pubDate>Mon, 15 Feb 2010 21:59:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/ODS-HTML-Page-customisation/m-p/57284#M6899</guid>
      <dc:creator>JohnT</dc:creator>
      <dc:date>2010-02-15T21:59:13Z</dc:date>
    </item>
    <item>
      <title>Re: ODS HTML Page customisation</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/ODS-HTML-Page-customisation/m-p/57285#M6900</link>
      <description>2151                             0-high = '0099.9%'  (mult=1000) ;&lt;BR /&gt;
NOTE: Format PCTPIC is already on the library.&lt;BR /&gt;
NOTE: Format PCTPIC has been output.&lt;BR /&gt;
2152  run;&lt;BR /&gt;
&lt;BR /&gt;
NOTE: PROCEDURE FORMAT used (Total process time):&lt;BR /&gt;
      real time           0.09 seconds&lt;BR /&gt;
      cpu time            0.01 seconds&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
2153  %let base_dir = H:\Technical\Portfolio Management\Reports\Monthly\UW Performance Report;&lt;BR /&gt;
2154  LIBNAME Summary "&amp;amp;base_dir.\&amp;amp;eom.\Basedata";&lt;BR /&gt;
NOTE: Libref SUMMARY was successfully assigned as follows:&lt;BR /&gt;
      Engine:        V9&lt;BR /&gt;
      Physical Name: H:\Technical\Portfolio Management\Reports\Monthly\UW Performance&lt;BR /&gt;
      Report\201001\Basedata&lt;BR /&gt;
2155&lt;BR /&gt;
2156&lt;BR /&gt;
2157  %let macro_vars =&lt;BR /&gt;
2158        GWP GEP Incurred&lt;BR /&gt;
2159        AttrIncurred LgeIncurred CatIncurred ibnr&lt;BR /&gt;
2160        GEC AdminExp OpProfitAT Capital&lt;BR /&gt;
2161&lt;BR /&gt;
2162        Attr_GLR Lge_GLR Cat_GLR Inc_GLR Ult_GLR&lt;BR /&gt;
2163        Comm_rate ExpRate ROC&lt;BR /&gt;
2164  ;&lt;BR /&gt;
2165&lt;BR /&gt;
2166  %let macro_style =&lt;BR /&gt;
2167     style(report)  = [cellspacing=3 borderwidth=5 bordercolor=blue]&lt;BR /&gt;
2168     style(header)  = [foreground=white  background=purple FONT_WEIGHT=medium font_size=1.7]&lt;BR /&gt;
2169     style(column)  = [foreground=black background=white font_face=helvetica font_size=1]&lt;BR /&gt;
2170     style(lines)   = [foreground=white background=black font_style=italic font_weight=bold&lt;BR /&gt;
2170! font_size=1]&lt;BR /&gt;
2171     style(summary) = [foreground=cx3e3d73 background=cxaeadd9 font_face=helvetica font_size=1&lt;BR /&gt;
2171!  just=r]&lt;BR /&gt;
2172  ;&lt;BR /&gt;
2173&lt;BR /&gt;
2174&lt;BR /&gt;
2175&lt;BR /&gt;
2176  proc template;&lt;BR /&gt;
2177     define style newstyle;&lt;BR /&gt;
2178        parent=styles.default;&lt;BR /&gt;
2179        style PagesItem from IndexItem / Posttext=" of the Personal Specialty";&lt;BR /&gt;
2180     end;&lt;BR /&gt;
NOTE: Overwriting existing template/link: Newstyle&lt;BR /&gt;
NOTE: STYLE 'Newstyle' has been saved to: SASUSER.TEMPLAT&lt;BR /&gt;
2181  run;&lt;BR /&gt;
NOTE: PROCEDURE TEMPLATE used (Total process time):&lt;BR /&gt;
      real time           0.12 seconds&lt;BR /&gt;
      cpu time            0.04 seconds&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
2182&lt;BR /&gt;
2183&lt;BR /&gt;
2184  %let proc_rpt_opt =&lt;BR /&gt;
2185     headline headskip&lt;BR /&gt;
2186     /*NOEXEC*/&lt;BR /&gt;
2187  ;&lt;BR /&gt;
2188&lt;BR /&gt;
2189  *need to output FILE FRAME and PAGE to generate links;&lt;BR /&gt;
2190  *however we will not use the p.html file, we will use one created manually;&lt;BR /&gt;
2191  options nodate pageno=1;&lt;BR /&gt;
2192  ods html /*file  = "&amp;amp;base_dir.\&amp;amp;eom.\Distribution\html\f.html"&lt;BR /&gt;
2193           frame = "&amp;amp;base_dir.\&amp;amp;eom.\Distribution\html\t.html"&lt;BR /&gt;
2194           page  = "&amp;amp;base_dir.\&amp;amp;eom.\Distribution\html\p.html"*/&lt;BR /&gt;
2195           file  = "f.html"&lt;BR /&gt;
2196           frame = "t.html"&lt;BR /&gt;
2197           page  = "p.html"&lt;BR /&gt;
2198           path  = "&amp;amp;base_dir.\&amp;amp;eom.\Distribution\html\"&lt;BR /&gt;
2199           /*base  = "H:\Technical\Portfolio Management\Reports\Monthly\UW Performance&lt;BR /&gt;
2199! Report\&amp;amp;eom.\Distribution\html"*/&lt;BR /&gt;
2200           /*ase = "&amp;amp;base_dir.\&amp;amp;eom.\Distribution\html\"*/&lt;BR /&gt;
2201           newfile=page&lt;BR /&gt;
2202           style = newstyle;&lt;BR /&gt;
NOTE: Writing HTML Body file: f.html&lt;BR /&gt;
NOTE: Writing HTML Pages file: p.html&lt;BR /&gt;
NOTE: Writing HTML Frame file: t.html&lt;BR /&gt;
2203&lt;BR /&gt;
2204  title1 'Personal Specialty';&lt;BR /&gt;
2205&lt;BR /&gt;
2206&lt;BR /&gt;
2207  ods proclabel "Personal Specialty: Accident Year Summary Report";&lt;BR /&gt;
2208  proc report data = Summary.Uw_data_dom nowd &amp;amp;proc_rpt_opt. &amp;amp;macro_style.;&lt;BR /&gt;
2209     column&lt;BR /&gt;
2210        accyr&lt;BR /&gt;
2211        &amp;amp;macro_vars.&lt;BR /&gt;
2212     ;&lt;BR /&gt;
2213&lt;BR /&gt;
2214     define accyr         / 'AccYr' group order=formatted ;&lt;BR /&gt;
2215&lt;BR /&gt;
2216     %common_calcs;&lt;BR /&gt;
2217&lt;BR /&gt;
2218     *break after class_type / summarize;&lt;BR /&gt;
2219     rbreak after / summarize;&lt;BR /&gt;
2220&lt;BR /&gt;
2221    * title '22Sales for the Southeast Sector';&lt;BR /&gt;
2222  run;&lt;BR /&gt;
&lt;BR /&gt;
NOTE: Missing values were generated as a result of performing an operation on missing values.&lt;BR /&gt;
      Each place is given by: (Number of times) at (Line):(Column).&lt;BR /&gt;
      1 at 1:6    1 at 1:21   1 at 1:6    1 at 1:21&lt;BR /&gt;
NOTE: Missing values were generated as a result of performing an operation on missing values.&lt;BR /&gt;
      Each place is given by: (Number of times) at (Line):(Column).&lt;BR /&gt;
      1 at 1:6    1 at 1:21   1 at 1:6    1 at 1:21&lt;BR /&gt;
NOTE: There were 884 observations read from the data set SUMMARY.UW_DATA_DOM.&lt;BR /&gt;
NOTE: PROCEDURE REPORT used (Total process time):&lt;BR /&gt;
      real time           0.23 seconds&lt;BR /&gt;
      cpu time            0.03 seconds&lt;BR /&gt;
2223&lt;BR /&gt;
2224&lt;BR /&gt;
2225  ods proclabel "Personal Specialty: Accident Year Summary Report";&lt;BR /&gt;
2226  proc report data = Summary.Uw_data_dom nowd &amp;amp;proc_rpt_opt. &amp;amp;macro_style.;&lt;BR /&gt;
2227     column&lt;BR /&gt;
2228        class_type accyr&lt;BR /&gt;
2229        &amp;amp;macro_vars.&lt;BR /&gt;
2230     ;&lt;BR /&gt;
2231&lt;BR /&gt;
2232     define class_type    /         group order=formatted ;&lt;BR /&gt;
2233     define accyr         / 'AccYr' group order=formatted ;&lt;BR /&gt;
2234&lt;BR /&gt;
2235     %common_calcs;&lt;BR /&gt;
2236&lt;BR /&gt;
2237     break after class_type / summarize;&lt;BR /&gt;
2238     rbreak after / summarize;&lt;BR /&gt;
2239&lt;BR /&gt;
2240    * title '22Sales for the Southeast Sector';&lt;BR /&gt;
2241  run;&lt;BR /&gt;
&lt;BR /&gt;
NOTE: Writing HTML Body file: f1.html&lt;BR /&gt;
NOTE: Missing values were generated as a result of performing an operation on missing values.&lt;BR /&gt;
      Each place is given by: (Number of times) at (Line):(Column).&lt;BR /&gt;
      6 at 1:6    6 at 1:22   7 at 1:6    7 at 1:21   7 at 1:6    7 at 1:21   6 at 1:6&lt;BR /&gt;
      6 at 1:19   4 at 1:6    2 at 1:34   2 at 1:6    2 at 1:13   2 at 1:6    2 at 1:19&lt;BR /&gt;
      2 at 1:19&lt;BR /&gt;
NOTE: Missing values were generated as a result of performing an operation on missing values.&lt;BR /&gt;
      Each place is given by: (Number of times) at (Line):(Column).&lt;BR /&gt;
      6 at 1:6    6 at 1:22   7 at 1:6    7 at 1:21   7 at 1:6    7 at 1:21   6 at 1:6&lt;BR /&gt;
      6 at 1:19   4 at 1:6    2 at 1:34   2 at 1:6    2 at 1:13   2 at 1:6    2 at 1:19&lt;BR /&gt;
      2 at 1:19&lt;BR /&gt;
NOTE: There were 884 observations read from the data set SUMMARY.UW_DATA_DOM.&lt;BR /&gt;
NOTE: PROCEDURE REPORT used (Total process time):&lt;BR /&gt;
      real time           0.21 seconds&lt;BR /&gt;
      cpu time            0.09 seconds&lt;BR /&gt;
&lt;BR /&gt;
^^&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
There's about 13 more of those proc report steps, and finally:&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
2563  ods html close;

Message was edited by: John T</description>
      <pubDate>Mon, 15 Feb 2010 22:01:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/ODS-HTML-Page-customisation/m-p/57285#M6900</guid>
      <dc:creator>JohnT</dc:creator>
      <dc:date>2010-02-15T22:01:31Z</dc:date>
    </item>
    <item>
      <title>Re: ODS HTML Page customisation</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/ODS-HTML-Page-customisation/m-p/57286#M6901</link>
      <description>I encourage you to start out by coding a more reasonable sized SAS program that exercises the SAS programming/function elements you need to accomplish your objective.  &lt;BR /&gt;
&lt;BR /&gt;
Consider using the SASHELP sample data files where one may fit your presentation requirements - or cook up your own "simplified" data structure for testing and validation purposes.&lt;BR /&gt;
&lt;BR /&gt;
Then move on to the repetitive PROC REPORT invocations as you have demonstrated.&lt;BR /&gt;
&lt;BR /&gt;
With the more concise SAS program example, you also may find individuals more responsive on the forum to assist in your overall quest.&lt;BR /&gt;
&lt;BR /&gt;
Scott Barry&lt;BR /&gt;
SBBWorks, Inc.</description>
      <pubDate>Mon, 15 Feb 2010 23:25:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/ODS-HTML-Page-customisation/m-p/57286#M6901</guid>
      <dc:creator>sbb</dc:creator>
      <dc:date>2010-02-15T23:25:00Z</dc:date>
    </item>
    <item>
      <title>Re: ODS HTML Page customisation</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/ODS-HTML-Page-customisation/m-p/57287#M6902</link>
      <description>Sorry, I didn't post the whole segment of code the first time, because I didn't think it was relevant and I didn't want to overwhelm others.&lt;BR /&gt;
&lt;BR /&gt;
At the end of the day the content doesn't really matter, I just want to know if it's possible to change/customise the content in the PAGE frame without manually coding the html myself.&lt;BR /&gt;
&lt;BR /&gt;
I based my code on the SASHELP ODS HTML Statement section.&lt;BR /&gt;
&lt;BR /&gt;
I have found a link on the online documentation I originally used:&lt;BR /&gt;
&lt;A href="http://support.sas.com/onlinedoc/913/getDoc/en/odsug.hlp/a002175885.htm#a002302743" target="_blank"&gt;http://support.sas.com/onlinedoc/913/getDoc/en/odsug.hlp/a002175885.htm#a002302743&lt;/A&gt;&lt;BR /&gt;
^^&lt;BR /&gt;
&lt;BR /&gt;
If you look at the HTML output, you can see that the actual link to the tables is nested.  I just want the link associated with the 1. The Report Procedure text (and change what it says too).</description>
      <pubDate>Tue, 16 Feb 2010 00:30:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/ODS-HTML-Page-customisation/m-p/57287#M6902</guid>
      <dc:creator>JohnT</dc:creator>
      <dc:date>2010-02-16T00:30:18Z</dc:date>
    </item>
    <item>
      <title>Re: ODS HTML Page customisation</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/ODS-HTML-Page-customisation/m-p/57288#M6903</link>
      <description>Hi:&lt;BR /&gt;
  In addition to the Tech Support Note that you already found, these are some other relevant notes:&lt;BR /&gt;
&lt;A href="http://support.sas.com/kb/23/345.html" target="_blank"&gt;http://support.sas.com/kb/23/345.html&lt;/A&gt;&lt;BR /&gt;
&lt;A href="http://support.sas.com/kb/23/344.html" target="_blank"&gt;http://support.sas.com/kb/23/344.html&lt;/A&gt;&lt;BR /&gt;
&lt;A href="http://support.sas.com/kb/23/429.html" target="_blank"&gt;http://support.sas.com/kb/23/429.html&lt;/A&gt;&lt;BR /&gt;
 &lt;BR /&gt;
  I believe that you will need to use different template techniques. The one you have only changes PagesItem and you will probably need to change other style elements, as well. A very good resource for you will be the ODS Template FAQ, which you can find here:&lt;BR /&gt;
Template FAQ:&lt;BR /&gt;
&lt;A href="http://support.sas.com/rnd/base/ods/templateFAQ/index.html" target="_blank"&gt;http://support.sas.com/rnd/base/ods/templateFAQ/index.html&lt;/A&gt;&lt;BR /&gt;
Look specifically for Table of Contents and/or Table of Pages under the ODS HTML topic.&lt;BR /&gt;
 &lt;BR /&gt;
  Also, rather  than go down the template road, you might wish to investigate ODS DOCUMENT -- which is PERFECT for rearranging/relabelling the Table of Contents using either the interactive Document Window or PROC DOCUMENT -- after the TOC is exactly the way you want, then you can replay your output. The only hitch with the ODS DOCUMENT/PROC DOCUMENT approach -- is that PROC REPORT is not supported until SAS 9.2.&lt;BR /&gt;
 &lt;BR /&gt;
  Meanwhile, back in PROC TEMPLATE-land, I'm confused by what you want. Your image showed the following structure to your table of contents:&lt;BR /&gt;
1. Personal Speciality Accident Year Summary Report&lt;BR /&gt;
   - Page 1 of the Personal Speciality (link)&lt;BR /&gt;
2. Personal Speciality Accident Year Summary Report&lt;BR /&gt;
   - Page 2 of the Personal Speciality (link)&lt;BR /&gt;
3. Personal Speciality Accident Year Summary Report&lt;BR /&gt;
   - Page 3 of the Personal Speciality (link)&lt;BR /&gt;
 &lt;BR /&gt;
  You had a red rectangle around #1 and said you wanted #1 text to be the link and not the "- Page 1 of the Personal Speciality" Do you want the equivalent of Option A or Option B?? The style element you change will depend on what you want. &lt;BR /&gt;
[pre]&lt;BR /&gt;
Option A:&lt;BR /&gt;
1. Personal Speciality Accident Year Summary Report (link)&lt;BR /&gt;
2. Personal Speciality Accident Year Summary Report (link)&lt;BR /&gt;
3. Personal Speciality Accident Year Summary Report (link)&lt;BR /&gt;
                    &lt;BR /&gt;
OR is this what you want to see:&lt;BR /&gt;
                 &lt;BR /&gt;
Option B:&lt;BR /&gt;
   - Page 1 of the Personal Speciality (link)&lt;BR /&gt;
   - Page 2 of the Personal Speciality (link)&lt;BR /&gt;
   - Page 3 of the Personal Speciality (link)&lt;BR /&gt;
[/pre]&lt;BR /&gt;
                                                                           &lt;BR /&gt;
cynthia</description>
      <pubDate>Tue, 16 Feb 2010 01:31:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/ODS-HTML-Page-customisation/m-p/57288#M6903</guid>
      <dc:creator>Cynthia_sas</dc:creator>
      <dc:date>2010-02-16T01:31:33Z</dc:date>
    </item>
    <item>
      <title>Re: ODS HTML Page customisation</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/ODS-HTML-Page-customisation/m-p/57289#M6904</link>
      <description>I'm yet to check all those links, but I'm after option b (and only b) in terms of what I want to see.&lt;BR /&gt;
&lt;BR /&gt;
Sorry, I was trying to highlight that I don't want any nesting.&lt;BR /&gt;
&lt;BR /&gt;
Just to confirm, we are currently on 9.1.3.&lt;BR /&gt;
&lt;BR /&gt;
I actually filled a form about getting training from SAS about topics like this, however have not heard back in around a week.  Is there anything out there (well in Sydney Australia) which is suitable?</description>
      <pubDate>Tue, 16 Feb 2010 01:55:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/ODS-HTML-Page-customisation/m-p/57289#M6904</guid>
      <dc:creator>JohnT</dc:creator>
      <dc:date>2010-02-16T01:55:57Z</dc:date>
    </item>
  </channel>
</rss>

