>>>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).