I usually create a UDT for this purpose. The records will have values of 001, 002, 003, etc. If I have 100 records in my UDT, then when I link in this table (with a not equal join), I will have 100 records per line detail. I suppress the detail section when:
ToNumber(<<UDT_Counter>>) > <<SO Line Quantity>>
I also will create a formula that I use for sorting and most times I have to add that as a group. The sort is by whatever the normal sort is plus the counter field from the UDT.