>>Case Case Item Item >>From To ID Qty. >> 1 1 ABC 5 >> 1 1 DEF 5 >> 2 3 GHI 45 >> 4 4 JKL 3 >>>>
>>Case Item Item >>No ID Qty. >> 1 ABC 5 >> 1 DEF 5 >> 2 GHI 45 >> 3 GHI 45 >> 4 JKL 3 >>>>
>Select From,To, ItemID, ItemQty ; > From myTable ; > Order By From,To,ItemID ; > Into Cursor crsTemp >Create Cursor crsResult (CaseNo i, ItemID c(3), ItemQty i) >Local array arrRecs[Floor(65000/3),3] >Local lnRec, ix >lnRec = 0 >Select crsTemp >Scan > For ix=crsTemp.From To crsTemp.To > lnRec = lnRec + 1 > arrRecs[lnRec,1] = ix > arrRecs[lnRec,2] = crsTemp.ItemID > arrRecs[lnRec,3] = crsTemp.ItemQty > If lnRec >= floor(65000/3) > Insert Into crsResult from array arrRecs > lnRec = 0 > endif > Endfor >EndScan >Dimension arrRecs[lnRec,3] >Insert Into crsResult from array arrRecs >Use In 'crsTemp' >Select crsResult >Brows >Note that array is used to speed up insertion (indiviual inserts would be much slower).