<?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: How to create independent forms for each observation in ODS and Base Reporting</title>
    <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/How-to-create-independent-forms-for-each-observation/m-p/827302#M25888</link>
    <description>&lt;P&gt;I hoped that var7 has a unique value in each observation, so that proc report could be used, but with the data shown, i don't think that proc report could be used, but i am not super-familiar with the proc.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Report Writing Interface could be used, but you will have to write statement for anything you want to see and even for some things you don't want to see. Here's on possible approach:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%let dummy_header = %str(backgroundcolor=colors('headerbg') color=colors('titlefg') );


data _null_;
   set work.have end=jobDone;

   length _dummy $ 200;

   if _n_ = 1 then do;
      declare odsout rwi();
   end;

   rwi.table_start();

   _dummy = catx(': ', vlabel(var7), var7);
   rwi.row_start(type: 'h');
   rwi.format_cell(data: _dummy, inhibit: 'x', column_span: 4, just: 'L');
   rwi.row_end();

   rwi.row_start(type: 'h');
   rwi.format_cell(data: vlabel(var1));
   rwi.format_cell(data: vlabel(var2));
   rwi.format_cell(data: vlabel(var3));
   rwi.format_cell(data: vlabel(var4));
   rwi.row_end();

   rwi.row_start();
   rwi.format_cell(data: var1, just: 'R');
   rwi.format_cell(data: var2, just: 'R');
   rwi.format_cell(data: var3, just: 'R');
   rwi.format_cell(data: var4, just: 'R');
   rwi.row_end();

   rwi.row_start();
   rwi.format_cell(data: vlabel(var5), column_span: 4, just: 'L', style_attr: "&amp;amp;dummy_header.");
   rwi.row_end();
   rwi.row_start();
   rwi.format_cell(data: var5, column_span: 4, just: 'L');
   rwi.row_end();

   rwi.row_start();
   rwi.format_cell(data: vlabel(var6), column_span: 4, just: 'L', style_attr: "&amp;amp;dummy_header.");
   rwi.row_end();
   rwi.row_start();
   rwi.format_cell(data: var6, column_span: 4, just: 'L');
   rwi.row_end();

   rwi.table_end();

run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Fri, 05 Aug 2022 06:42:06 GMT</pubDate>
    <dc:creator>andreas_lds</dc:creator>
    <dc:date>2022-08-05T06:42:06Z</dc:date>
    <item>
      <title>How to create independent forms for each observation</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/How-to-create-independent-forms-for-each-observation/m-p/827292#M25885</link>
      <description>&lt;P&gt;I would like to output the data in the following format, where each observation is independent and the content of one observation is broken into three lines.&lt;BR /&gt;The output is supposed to be an rtf or word file.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="japelin_0-1659673565996.png" style="width: 400px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/74176i4BCBDBE9F3E730CF/image-size/medium?v=v2&amp;amp;px=400" role="button" title="japelin_0-1659673565996.png" alt="japelin_0-1659673565996.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 05 Aug 2022 04:37:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/How-to-create-independent-forms-for-each-observation/m-p/827292#M25885</guid>
      <dc:creator>japelin</dc:creator>
      <dc:date>2022-08-05T04:37:20Z</dc:date>
    </item>
    <item>
      <title>Re: How to create independent forms for each observation</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/How-to-create-independent-forms-for-each-observation/m-p/827298#M25886</link>
      <description>&lt;P&gt;Hardly possible to suggest something without knowing how the data looks like. So please post an excerpt of the data you have in usable form: a data step using datalines statement.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 05 Aug 2022 05:28:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/How-to-create-independent-forms-for-each-observation/m-p/827298#M25886</guid>
      <dc:creator>andreas_lds</dc:creator>
      <dc:date>2022-08-05T05:28:02Z</dc:date>
    </item>
    <item>
      <title>Re: How to create independent forms for each observation</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/How-to-create-independent-forms-for-each-observation/m-p/827299#M25887</link>
      <description>&lt;P&gt;Thanks.&lt;/P&gt;
&lt;P&gt;It is a plain wide data set.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
  length var1 8 var2 -var7 $200;
  format var1 yymmdd10.;
  input var1:yymmdd10. var2-var7;
datalines;
2022-08-01 TypeA 0001 X-01 AAAAAAA BBBBBBBBB SERVERX
2022-08-05 TypeB 0002 X-99 AAAAAAA BBBBBBBBB SERVERX
2022-08-05 TypeA 0004 X-80 AAAAAAA BBBBBBBBB SERVERY
2022-08-10 TypeA 0010 X-30 AAAAAAA BBBBBBBBB SERVERX
;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 05 Aug 2022 05:48:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/How-to-create-independent-forms-for-each-observation/m-p/827299#M25887</guid>
      <dc:creator>japelin</dc:creator>
      <dc:date>2022-08-05T05:48:16Z</dc:date>
    </item>
    <item>
      <title>Re: How to create independent forms for each observation</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/How-to-create-independent-forms-for-each-observation/m-p/827302#M25888</link>
      <description>&lt;P&gt;I hoped that var7 has a unique value in each observation, so that proc report could be used, but with the data shown, i don't think that proc report could be used, but i am not super-familiar with the proc.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Report Writing Interface could be used, but you will have to write statement for anything you want to see and even for some things you don't want to see. Here's on possible approach:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%let dummy_header = %str(backgroundcolor=colors('headerbg') color=colors('titlefg') );


data _null_;
   set work.have end=jobDone;

   length _dummy $ 200;

   if _n_ = 1 then do;
      declare odsout rwi();
   end;

   rwi.table_start();

   _dummy = catx(': ', vlabel(var7), var7);
   rwi.row_start(type: 'h');
   rwi.format_cell(data: _dummy, inhibit: 'x', column_span: 4, just: 'L');
   rwi.row_end();

   rwi.row_start(type: 'h');
   rwi.format_cell(data: vlabel(var1));
   rwi.format_cell(data: vlabel(var2));
   rwi.format_cell(data: vlabel(var3));
   rwi.format_cell(data: vlabel(var4));
   rwi.row_end();

   rwi.row_start();
   rwi.format_cell(data: var1, just: 'R');
   rwi.format_cell(data: var2, just: 'R');
   rwi.format_cell(data: var3, just: 'R');
   rwi.format_cell(data: var4, just: 'R');
   rwi.row_end();

   rwi.row_start();
   rwi.format_cell(data: vlabel(var5), column_span: 4, just: 'L', style_attr: "&amp;amp;dummy_header.");
   rwi.row_end();
   rwi.row_start();
   rwi.format_cell(data: var5, column_span: 4, just: 'L');
   rwi.row_end();

   rwi.row_start();
   rwi.format_cell(data: vlabel(var6), column_span: 4, just: 'L', style_attr: "&amp;amp;dummy_header.");
   rwi.row_end();
   rwi.row_start();
   rwi.format_cell(data: var6, column_span: 4, just: 'L');
   rwi.row_end();

   rwi.table_end();

run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 05 Aug 2022 06:42:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/How-to-create-independent-forms-for-each-observation/m-p/827302#M25888</guid>
      <dc:creator>andreas_lds</dc:creator>
      <dc:date>2022-08-05T06:42:06Z</dc:date>
    </item>
    <item>
      <title>Re: How to create independent forms for each observation</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/How-to-create-independent-forms-for-each-observation/m-p/827309#M25889</link>
      <description>&lt;P&gt;Thankyou! It works.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If there is a unique variable like below, can it be handled by Proc report?&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
  length key 8 var1 8 var2 -var7 $200;
  format var1 yymmdd10.;
  input key var1:yymmdd10. var2-var7;
datalines;
1 2022-08-01 TypeA 0001 X-01 AAAAAAA BBBBBBBBB SERVERX
2 2022-08-05 TypeB 0002 X-99 AAAAAAA BBBBBBBBB SERVERX
3 2022-08-05 TypeA 0004 X-80 AAAAAAA BBBBBBBBB SERVERY
4 2022-08-10 TypeA 0010 X-30 AAAAAAA BBBBBBBBB SERVERX
;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 05 Aug 2022 07:18:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/How-to-create-independent-forms-for-each-observation/m-p/827309#M25889</guid>
      <dc:creator>japelin</dc:creator>
      <dc:date>2022-08-05T07:18:12Z</dc:date>
    </item>
    <item>
      <title>Re: How to create independent forms for each observation</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/How-to-create-independent-forms-for-each-observation/m-p/827316#M25891</link>
      <description>&lt;P&gt;Var7 needs to be unique, so that &lt;EM&gt;by var7&lt;/EM&gt; can be used in proc report. That should create a single table for each value. I still don't know how to include the variables label in the output of the byline, and, because i haven't used compute-blocks in proc report, i still have no idea how they could be defined to print var5 and var6 as requested. &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Maybe &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13549"&gt;@Cynthia_sas&lt;/a&gt; has an idea.&lt;/P&gt;</description>
      <pubDate>Fri, 05 Aug 2022 09:38:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/How-to-create-independent-forms-for-each-observation/m-p/827316#M25891</guid>
      <dc:creator>andreas_lds</dc:creator>
      <dc:date>2022-08-05T09:38:22Z</dc:date>
    </item>
    <item>
      <title>Re: How to create independent forms for each observation</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/How-to-create-independent-forms-for-each-observation/m-p/827327#M25892</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
length sex $ 40;
 set sashelp.class;
 var6=name;
 var7=sex;
run;
data have2;
 set have;
 output;
 call missing(sex ,age, weight, height);
 sex='Label of Var5';output;
 sex=var6;output;

 sex='Label of Var6';output;
 sex=var7;output;
run;
proc sort data=have2;by name;run;

options nodate nonumber missing=' ';
title;
ods rtf file='c:\temp\temp.rtf' startpage=no;
proc report data=have2 nowd style={outputwidth=100% } 
style(header column)={ font_weight=light 
 bordertopcolor=black bordertopwidth=2 borderbottomcolor=black borderbottomwidth=2 };
column name sex age weight height var6 var7;
define name/order noprint ;
define var6/display noprint;
define var7/display noprint;
compute var7;
n+1;
if mod(n,2)=0 then do;
call define(_row_,'style','style=header{font_weight=light}');
call define('_C3_','style','style=header{borderleftcolor=graybb borderleftwidth=2 borderrightcolor=graybb borderrightwidth=2}');
call define('_C4_','style','style=header{borderleftcolor=graybb borderleftwidth=2 borderrightcolor=graybb borderrightwidth=2}');
end;
if mod(n,2)=1 and mod(n,3) ne 1 then do;
call define('_C3_','style','style={borderleftcolor=white borderleftwidth=2 borderrightcolor=white borderrightwidth=2}');
call define('_C4_','style','style={borderleftcolor=white borderleftwidth=2 borderrightcolor=white borderrightwidth=2}');
end;
endcomp;

compute before _page_/style={just=l bordertopcolor=white bordertopwidth=2
borderleftcolor=white borderleftwidth=2 borderrightcolor=white borderrightwidth=2};
line 'Name:' name $40.;
endcomp;
break after name/page;
run;
ods rtf close;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Ksharp_0-1659700779691.png" style="width: 400px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/74186i251E90DD58EC2CD0/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Ksharp_0-1659700779691.png" alt="Ksharp_0-1659700779691.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 05 Aug 2022 11:59:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/How-to-create-independent-forms-for-each-observation/m-p/827327#M25892</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2022-08-05T11:59:40Z</dc:date>
    </item>
    <item>
      <title>Re: How to create independent forms for each observation</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/How-to-create-independent-forms-for-each-observation/m-p/829497#M25910</link>
      <description>&lt;P&gt;Thank you all very much.&lt;BR /&gt;I have solved the problem and here is the sample code.&lt;/P&gt;
&lt;P&gt;The part where the layout is adjusted and output is PROC REPORT, and the subsequent fine tuning was handled by rewriting the RTF control code.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;ods _all_ close;
ods noresults;
filename rtf_in "%sysfunc(pathname(work))\rtf_in.rtf";
filename rtf_out "%sysfunc(pathname(work))\rtf_out.rtf";
ods rtf file=rtf_in;
title;
options nodate nonumber nobyline;
proc sort data=sashelp.class out=class;
  by name;
run;
proc report data=class nowd;
  column name NameLabel sex age height weight;
  by name;
  define NameLabel / ''
                     computed 
                     style(header)=[just=l
                                    backgroundcolor=white
                                    BorderTopColor=White
                                    BorderLeftColor=White
                                    BorderRightColor=White
                                    BorderBottomColor=White];
  define name / noprint;
  compute NameLabel / character length=40;
    call define(_col_,'style','style={just=l 
                                      fontweight=bold
                                      fontsize=14pt
                                      cellwidth=15cm
                                      BorderTopColor=White
                                      BorderLeftColor=White
                                      BorderRightColor=White
                                      BorderBottomColor=White}');
    NameLabel ='Name: '||name;
  endcomp;
  compute sex;
    call define(_col_,'style','style={just=l cellwidth=7.5cm}');
  endcomp;
  compute age;
    call define(_col_,'style','style={just=l cellwidth=7.5cm}');
  endcomp;
  compute height;
    call define(_col_,'style','style={just=l cellwidth=7.5cm}');
  endcomp;
  compute weight;
    call define(_col_,'style','style={just=l cellwidth=7.5cm}');
  endcomp;
run;
ods rtf close;

data _null_;
  infile rtf_in;
  file rtf_out;
  input;
  if _infile_='\pard\par' then _infile_='\pard';
  else if index(_infile_,'\sect') then delete;
  put _infile_;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Results:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="japelin_1-1661007790918.png" style="width: 400px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/74546i8FC8D6AEDAB2E87C/image-size/medium?v=v2&amp;amp;px=400" role="button" title="japelin_1-1661007790918.png" alt="japelin_1-1661007790918.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 20 Aug 2022 15:03:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/How-to-create-independent-forms-for-each-observation/m-p/829497#M25910</guid>
      <dc:creator>japelin</dc:creator>
      <dc:date>2022-08-20T15:03:28Z</dc:date>
    </item>
    <item>
      <title>Re: How to create independent forms for each observation</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/How-to-create-independent-forms-for-each-observation/m-p/829505#M25911</link>
      <description>&lt;P&gt;Looks like a job for PROC FORMS or PROC FSLETTER.&lt;/P&gt;</description>
      <pubDate>Sat, 20 Aug 2022 16:00:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/How-to-create-independent-forms-for-each-observation/m-p/829505#M25911</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2022-08-20T16:00:35Z</dc:date>
    </item>
  </channel>
</rss>

