Hi:
A followup...PROC REPORT is doing exactly what you tell it to do. If you compare the output for R=R1 versus R=R3, you will see that you are getting exactly the same output for both groups. PROC REPORT does not care whether the group has 1 detail row or 1000 detail rows. See the annotated output below:
[pre]
r x y z
r1 a a1 1 <-- detail line for a1 X=a
a2 1 <-- detail line for a2 X=a
== = =========
r1 a 2 <-- break after X=a
== = =========
b a1 1 <-- detail line for a1 X=b
a2 1 <-- detail line for a2 X=b
== = =========
r1 b 2 <-- break after X=b
== = =========
== =========
r1 4 <-- break after R
== =========
r3 e e1 1 <-- detail line for e1 X=e
== = =========
r3 e 1 <-- break after X=e
== = =========
== =========
r3 1 <-- break after R
== =========
=========
11 <-- summary from RBREAK statement
=========
[/pre]
As you can see, when R=R1, there are detail lines and summary lines, placed by the BREAK AFTER X and BREAK AFTER R. And with R=R3, even though you only have 1 detail line, you see the detail line, followed by the same summary lines which were produced for R=R1 (or R=R2 -- R2 not shown here to save space).
PROC REPORT will not treat the group for R3 any differently than it treats the groups for R1 or R2. So, PROC REPORT is giving you the only results that it can give you -- expecting anything different from PROC REPORT is unrealistic and contrary to the way that PROC REPORT has always worked.
cynthia