many thanks, but this still isn't quite what I'm looking for

using your approach, I would sort the data to group the applicable fields, then loop through and insert a blank row at 500, 1000, 1500, etc.

net result would look like

group 1 - 500 X ABC001

group 2 - 250 X ABC001 & 100 X ABC002 & 150 X ABC003

Group 3 - 500 X ABC003

Group 4 - 450 X ABC003 & 50 X ABC004

potentially this could result in any given block containing a trivial number of records that have been carried forward from a previous block, where the whole subgroup could have been contained with a block if the groups had been sorted and aligned (by the group subtotals)

if it helps, consider the CD filling model (how many files can I bestfit on a CD)

This must be do-able (the aforementioned CD tools are proof), but how??

Target