I don't think that this can be accomplished, as sees the subreport as a block...
well maybe on second thought...going with that idea, push the subreport to the back and align it under the heading and with the other subreport.
Now the fun, you can either 1) conditionally move all the objects in the subreport OR 2) create a second detail line that is 'indented'
Then you only need to conditionally suppress the rows so that only 1 shows at time. You can probably look at row of the data you're on (but I don't know how to do that off the top of my head) or you can create a flag that a shared variable and gets changed in the suppress routine. something like (for the indented line):
shared booleanvar displayed;
local booleanvar hide := true;
if displayed then (
hide:=false;
displayed := false;
);
hide
for the regular detail line the suppression would like:
shared booleanvar display;
not display
this assumes that the indented row is the top detail row(DetailA) while the regular row is below (DetailB).
HTH