Hi:
I have not explained PROC REPORT very well.
Proc Report is not creating "observations" it is writing report rows based on observations. The documentation contains a topic called "How PROC REPORT Builds a Report" which outlines this process step-by-step. It is a very useful explanation.
The report rows for a detail report do show you ALL the observations, but, PROC REPORT can only
display the observations that are in the DATA= data set. PROC REPORT can "insert" extra/blank lines into the report -- but only at specific places, called break points (as described above in my first post). The break points where you can insert extra or blank lines are:
1) at the top of the whole report or page for some destinations (COMPUTE BEFORE/COMPUTE BEFORE _PAGE_)
2) at the bottom of the whole report or page for some destinations (COMPUTE AFTER/COMPUTE AFTER _PAGE_)
3) at the top of a group of observations or at the top of a summary for a group of observations (COMPUTE BEFORE brkvar)
4) at the bottom of a group of observations or at the bottom of a summary for a group of observations (COMPUTE AFTER brkvar)
In a detail report, on SASHELP.CLASS, the report row with "Jane" is NOT at a break point on the report, so there's no way to insert a line with text or a blank line into the report rows being built, using PROC REPORT. What I showed you -- putting the string "An American" into the same report cell on the report row with "Jane" is what you can do with PROC REPORT. (I've put a program at the bottom that illustrates exactly where you can insert lines into the report rows using PROC REPORT.)
I'm still not sure I understand -exactly- what you want or why the insertion of arbitrary text is needed, but I think you have 2 choices --
1) Insert "new" observations into the data, you would would have to manipulate the data with a DATA STEP program and then pass the changed data to a report procedure (like PRINT or REPORT).
2) Or, you could take control of report writing and use a DATA step program to write out report rows based on the observations in the input data set and the conditional logic you use in the program.
At this point, we've gone back and forth several times and seem to be no closer to a solution for you. Perhaps the answer is PROC REPORT, perhaps the answer is data manipulation and inserting observations, perhaps the answer is a DATA _NULL_ report -- I think your best bet for help is to contact Tech Support. They can look at your data and your requirements and help you come up with the best solution.
To send a question to Tech Support, go to
http://support.sas.com/ and in the left-hand navigation pane, click on the link entitled "Submit a Problem".
cynthia
[pre]
ods listing;
ods html file='c:\temp\shoes.html' style=sasweb;
proc report data=sashelp.shoes nowd;
column region product sales note;
where region in ('Asia', 'Canada');
define region /group;
define product / group;
define sales / sum;
define note /computed 'Manager Note';
break after region / summarize;
rbreak after / summarize;
compute note / character length=25;
if sales.sum lt 10000 then
note = 'Discontinue Item???';
endcomp;
compute before _page_;
line 'COMPUTE BEFORE _PAGE_';
endcomp;
compute before;
line 'COMPUTE BEFORE';
endcomp;
compute before region;
line 'COMPUTE BEFORE REGION';
endcomp;
compute after region;
region = 'SubTotal';
line 'COMPUTE AFTER REGION';
endcomp;
compute after;
region = 'Total';
line 'COMPUTE AFTER';
endcomp;
compute after _page_;
line 'COMPUTE AFTER _PAGE_';
endcomp;
run;
ods html close;
[/pre]