>Okay .. here's an untested theory .. but it might work.
>
>Create a local variable in the code just before printing (llFirstPass = .t.)
>
>In the On Exit expression on the Group Footer ... call the following method:
>
>
>FUNCTION ResetPointer
>IF llFirstPass
> SEEK MyDataGroup
> llFirstPass = .f.
>ELSE
> llFirstPass = .t.
>ENDIF
>RETURN
>
>
>I have no idea what this will do to the group header and group footer processing .. but it's the only concept I can think of besides adding each record to the cursor twice.
>
>Good luck ... and I'm curious if this works so let me know.
And llFirstPass would have to be a report local variable, reset to .f. on next outer group? Sounds cool, and might work.
In FPD days I was faking subreports by including a function which would return several lines of text into a stretchable wide field, and the function created chaos if it didn't restore the workarea - but then it didn't mess with record pointer, it used a SQL Select to get what it needed. It worked, to an extent, because of the 255 limit of those days. For longer things like that I rather relied on textmerge.