Hi:
I made some fake data using sashelp.prdsale and I'm not sure what you mean by an "empty" box in the top left.
If you have this COLUMN Statement:
[pre]
column (con_funding consortia2 con_anticprotnum protocol)
status_Date2, committee, date dummy ;
[/pre]
then you will have 3 header rows on the report. Let's say, for example, that STATUS_DATE2 had 2 possible values of 11 or 22; that COMMITTEE had 3 possible values of o/DSMB, DMCC or NIH and that DATE could have 2 possible values of 01/01/1994 or 02/01/1994. So, the report headers will lay out like this:
[pre]
--------------------------------------------------------------------------***** TOP OF REPORT TABLE *****---------------------------------------------------------------------------
11 22
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
o/DSMB DMCC NIH o/DSMB DMCC NIH
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
# in
Consortia Grant Protocol 01/01/1994 02/01/1994 01/01/1994 02/01/1994 01/01/1994 02/01/1994 01/01/1994 02/01/1994 01/01/1994 02/01/1994 01/01/1994 02/01/1994
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[/pre]
The rows of dashes show where, in my RTF output file, I see border lines between each header row in the table. Yes, there are empty cells above "Consortia # in Grant and Protocol....are these the cells you mean?? They -are- empty above these 3 variable headers because PROC REPORT reserves an entire report row for the values of COMMITTEE and a separate report row for the values of STATUS_DATE2. This is how ACROSS items work...every variable value becomes a column going across the report. On the row for COMMITTEE and on the row for STATUS_DATE2, there is NOTHING to put above the headers Consortia, # in Grant, and Protocol.
Below is the program that I used to fake some data and the HTML and RTF outputs that I created. When I wrote the code, I took out all the LISTING only options like WIDTH, FLOW and HEADSKIP, PAGESIZE and LINESIZE. I also simplified the syntax a bit and added some white space to make the code easier to read. I generally find that outputwidth=100% works better for me, especially with ACROSS -- when I used your original value of 9.75, the table did not fit on the landscape page. I think that's because, especially with ACROSS items, PROC REPORT has some pretty complicated calculating to do to take into account the size of the the values needed for the nested column headers.
Looking at the report, I wonder if an alternate meaning is the fact that "# in Grant" is taking up 2 rows... which puts an empty space above Consortia and Protocol. I believe that's happening because there's not enough room in your cellwidth for the whole string "# in Grant" so that header wraps to 2 lines.
cynthia
[pre]
data rp_basic;
length committee $6 consortia2 $6 con_funding $1;
set sashelp.prdsale;
** make con_funding variable;
con_funding = country;
** make committee variable;
if region = 'EAST' then committee = 'NIH';
else if region = 'WEST' then committee = 'DMCC';
if region = 'EAST' and country = 'CANADA' then committee = 'o/DSMB';
** make consortia2;
if division = 'CONSUMER' then consortia2 = 'abc123';
else consortia2 = 'bdv123';
** make protocol;
if division = 'CONSUMER' then protocol = 590;
else protocol = 680;
if region = 'EAST' then status_date2 = quarter+10;
else if region = 'WEST' then status_date2 = quarter + 21;
date = month;
con_anticprotnum = year;
dummy = 1;
if year = 1994 and month(date) in (1,2) then output;
format date mmddyy10.;
run;
%let rptdate = May 21, 2010;
options orientation=landscape ;
ods listing close;
ods escapechar='~';
ods html body="GEN_I_06_Protocol.html" style=sasweb;
ods rtf body = "GEN_I_06_Protocol.rtf" notoc_data ;
proc report data = rp_basic (where=(con_funding ne ' '))
missing nowindows split = '*'
style(report)={outputwidth=100%}
style(column)={font_size=8pt}
style(header)={font_size=9pt};
column (con_funding consortia2 con_anticprotnum protocol)
status_Date2, committee, date dummy ;
define con_funding/group order=data noprint;
define consortia2/'Consortia'
group order = data style(column)=[cellwidth=1.0in];
define Con_anticprotnum/'# in Grant' group
center flow style(column)=[cellwidth=0.5in ] ;
define protocol/ 'Protocol' group ;
define status_date2/ across' ' ;
define committee/across ' ' order = data ;
define date/across ' ' order = data;
define dummy/'d' noprint;
compute before con_funding /
style = {just=left font_weight = bold background =lightblue};
line con_funding $25.;
endcomp;
break after con_funding/skip;
compute after consortia2/
style(lines) = {font_size= 0.1pt protectspecialchars=off background = black};
line ' ' ;
endcomp;
title "RDCRN";
title2 "GEN.I.06";
title3 "Protocol Development" ;
title4 "Protocol Review by Institute and Consortium" ;
title5 "Data Current as of &rptdate";
run;
ods _all_ close;
ods listing;
title;
[/pre]