<?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: Report using Base SAS techniques in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Report-using-Base-SAS-techniques/m-p/236527#M43336</link>
    <description>Thank you RW9</description>
    <pubDate>Thu, 26 Nov 2015 07:30:35 GMT</pubDate>
    <dc:creator>nrk1787db1</dc:creator>
    <dc:date>2015-11-26T07:30:35Z</dc:date>
    <item>
      <title>Report using Base SAS techniques</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Report-using-Base-SAS-techniques/m-p/236399#M43314</link>
      <description>&lt;P&gt;&lt;FONT face="courier new,courier"&gt;Hi,&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;This may be a silly question &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;Event&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Time &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;A&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1:30&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;FONT face="Courier New"&gt;B&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1:30&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;FONT face="Courier New"&gt;C&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; 1:35&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;FONT face="Courier New"&gt;D&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; 1:36&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;FONT face="Courier New"&gt;E&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; 1:36&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;FONT face="Courier New"&gt;F&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; 1:37&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;FONT face="Courier New"&gt;G&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; 1:37&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;FONT face="Courier New"&gt;H&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; 1:37&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;FONT face="Courier New"&gt;Using the data above I'm trying to generate a report / output as below &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;FONT face="Courier New"&gt;If an Event&amp;nbsp;occurred at the same Time as previous Event then report need to list both Events one below the other. &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;FONT face="Courier New"&gt;A&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;FONT face="Courier New"&gt;B&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;FONT face="Courier New"&gt;If an Event occurred at different Time than previous Event then report&amp;nbsp;need to list Events as below &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;FONT face="Courier New"&gt;B&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp; C&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;FONT face="Courier New"&gt;Using above conditions full report expected is as below&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;A&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1:30&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;FONT face="Courier New"&gt;B&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1:30&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;C&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; 1:35&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;D&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; 1:36&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; E&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; 1:36&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;F&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; 1:37&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;G&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; 1:37&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; H&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; 1:37&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;FONT face="Courier New"&gt;Can anyone please help ?&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 25 Nov 2015 13:53:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Report-using-Base-SAS-techniques/m-p/236399#M43314</guid>
      <dc:creator>nrk1787db1</dc:creator>
      <dc:date>2015-11-25T13:53:36Z</dc:date>
    </item>
    <item>
      <title>Re: Report using Base SAS techniques</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Report-using-Base-SAS-techniques/m-p/236402#M43316</link>
      <description>&lt;P&gt;I would process it in a datastep before the report section, something like:&lt;/P&gt;
&lt;PRE&gt;data have;&lt;BR /&gt; input Event $ Time $;&lt;BR /&gt;datalines;&lt;BR /&gt;A 1:30&lt;BR /&gt;B 1:30&lt;BR /&gt;C 1:35&lt;BR /&gt;D 1:36&lt;BR /&gt;E 1:36&lt;BR /&gt;F 1:37&lt;BR /&gt;G 1:37&lt;BR /&gt;H 1:37&lt;BR /&gt;;&lt;BR /&gt;run;&lt;BR /&gt;data want (drop=curr_indent);&lt;BR /&gt; set have;&lt;BR /&gt; length curr_indent out_event out_time $200;&lt;BR /&gt; retain curr_indent;&lt;BR /&gt; if _n_=1 then curr_indent="";&lt;BR /&gt; if _n_ ne 1 and lag(time) ne time then curr_indent=cats(curr_indent,"__");&lt;BR /&gt; out_event=tranwrd(cats(curr_indent,event),"_"," ");&lt;BR /&gt; out_time=tranwrd(cats(curr_indent,time),"_"," ");&lt;BR /&gt;run;&lt;/PRE&gt;
&lt;P&gt;Now when you get to your report statement, you will need to put asis=on in the options for those columns otherwise the blanks will get removed:&lt;/P&gt;
&lt;PRE&gt;proc report data=want;
  columns event time;
  define event / "Event" style(column)=[asis=on];
  define Time / "Time" style(column)=[asis=on];
...&lt;/PRE&gt;
&lt;P&gt;Oh, and if your doing this within subgroups, you will need a by line in the data want; and instead of if _n_=1, use a if first.bygroup. &amp;nbsp;(or provide more test data in the form of a datastep with the groups so I can update).&lt;/P&gt;</description>
      <pubDate>Wed, 25 Nov 2015 14:23:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Report-using-Base-SAS-techniques/m-p/236402#M43316</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2015-11-25T14:23:59Z</dc:date>
    </item>
    <item>
      <title>Re: Report using Base SAS techniques</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Report-using-Base-SAS-techniques/m-p/236406#M43318</link>
      <description>&lt;P&gt;You could go really old school and generate a report with PUT statements:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data _null_;&lt;/P&gt;
&lt;P&gt;set have;&lt;/P&gt;
&lt;P&gt;by time;&lt;/P&gt;
&lt;P&gt;retain start -2;&lt;/P&gt;
&lt;P&gt;if first.time then start + 3;&lt;/P&gt;
&lt;P&gt;file print notitles;&lt;/P&gt;
&lt;P&gt;put&amp;nbsp;@start event +10 time;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You can always embellish the report by adding features to the DATA step. &amp;nbsp;The topic to look up is "Customized Reporting".&lt;/P&gt;</description>
      <pubDate>Wed, 25 Nov 2015 14:30:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Report-using-Base-SAS-techniques/m-p/236406#M43318</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2015-11-25T14:30:05Z</dc:date>
    </item>
    <item>
      <title>Re: Report using Base SAS techniques</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Report-using-Base-SAS-techniques/m-p/236412#M43319</link>
      <description>&lt;P&gt;Here's a way to do it by creating a data set with multiple columns instead of producing a report (if you want to go that route):&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input Event$ Time$;
datalines;
A 1:30
B 1:30
C 1:35
D 1:36
E 1:36
F 1:37
G 1:37
H 1:37
;
run;

proc sql;
create table unique_time as
select distinct(Time) as Time
from have;
quit;

options mprint mlogic symbolgen;
%macro create;
data _NULL_;
set unique_time end=lastobs;
call symputx(cats("Time",_n_),Time);
If lastobs then call symputx("n",_n_);
run;

%do i=1 %to &amp;amp;n;
	%if &amp;amp;i=1 %then %do;
	data want;
	set have (rename=(Event=Event&amp;amp;i Time=Time&amp;amp;i));
	Where Time&amp;amp;i="&amp;amp;&amp;amp;Time&amp;amp;i";
	run; %end;
	%else %do;
	data time&amp;amp;i;
	set have (rename=(Event=Event&amp;amp;i Time=Time&amp;amp;i));
	Where Time&amp;amp;i="&amp;amp;&amp;amp;Time&amp;amp;i";
	run;

	data want;
	retain Event1-Event&amp;amp;i Time1-Time&amp;amp;i;
	set want time&amp;amp;i;
	run; %end;
%end;
%mend;

%create;
options nomprint nomlogic nosymbolgen;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 25 Nov 2015 14:54:23 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Report-using-Base-SAS-techniques/m-p/236412#M43319</guid>
      <dc:creator>dcruik</dc:creator>
      <dc:date>2015-11-25T14:54:23Z</dc:date>
    </item>
    <item>
      <title>Re: Report using Base SAS techniques</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Report-using-Base-SAS-techniques/m-p/236526#M43335</link>
      <description>Thank you Astounding for this solution</description>
      <pubDate>Thu, 26 Nov 2015 07:29:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Report-using-Base-SAS-techniques/m-p/236526#M43335</guid>
      <dc:creator>nrk1787db1</dc:creator>
      <dc:date>2015-11-26T07:29:16Z</dc:date>
    </item>
    <item>
      <title>Re: Report using Base SAS techniques</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Report-using-Base-SAS-techniques/m-p/236527#M43336</link>
      <description>Thank you RW9</description>
      <pubDate>Thu, 26 Nov 2015 07:30:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Report-using-Base-SAS-techniques/m-p/236527#M43336</guid>
      <dc:creator>nrk1787db1</dc:creator>
      <dc:date>2015-11-26T07:30:35Z</dc:date>
    </item>
    <item>
      <title>Re: Report using Base SAS techniques</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Report-using-Base-SAS-techniques/m-p/236528#M43337</link>
      <description>Thank you dcruik</description>
      <pubDate>Thu, 26 Nov 2015 07:31:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Report-using-Base-SAS-techniques/m-p/236528#M43337</guid>
      <dc:creator>nrk1787db1</dc:creator>
      <dc:date>2015-11-26T07:31:24Z</dc:date>
    </item>
  </channel>
</rss>

