VarRecordRenObject.RESET; VarRecordRenObject.SETRANGE("Source Type",VarRecordRenObject."Source Type"::Record); VarRecordRenObject.SETRANGE("Source ID",INTStart,INTEnd); IF VarRecordRenObject.FINDSET THEN BEGIN DLGWindow.OPEN(TXCMess1); REPEAT DLGWindow.UPDATE(1,VarRecordRenObject."Source ID"); VarRecordField.RESET; VarRecRefOld.OPEN(VarRecordRenObject."Source ID"); VarRecRefNew.OPEN(VarRecordRenObject."Destination ID"); IF VarRecRefNew.FINDSET THEN BEGIN ERROR('table not empty'); END; IF VarRecRefOld.FINDSET THEN BEGIN INTRec := 1; REPEAT DLGWindow.UPDATE(2,INTRec); VarRecordField.SETRANGE(TableNo,VarRecordRenObject."Source ID"); IF VarRecordField.FINDSET THEN BEGIN REPEAT VarFieldRefFrom := VarRecRefOld.FIELD(VarRecordField."No."); VarFieldRefTo := VarRecRefNew.FIELD(VarRecordField."No."); VarFieldRefTo.VALUE := VarFieldRefFrom.VALUE; VarRecRefNew := VarFieldRefTo.RECORD; UNTIL VarRecordField.NEXT = 0; END; IF VarRecRefNew.INSERT THEN BEGIN END; INTRec += 1; UNTIL VarRecRefOld.NEXT = 0; END; VarRecRefOld.CLOSE; VarRecRefNew.CLOSE; UNTIL VarRecordRenObject.NEXT = 0; DLGWindow.CLOSE; END;It works fine but in one case it gives me an error of overflow in the conversion from Code to Code.
... if VarFieldRefFrom.active then begin VarFieldRefTo.VALUE := VarFieldRefFrom.VALUE; VarRecRefNew := VarFieldRefTo.RECORD; end; ...So a colleague of mine suggest me a solution that works.
... if VarRecordField.enabled then begin VarFieldRefFrom := VarRecRefOld.FIELD(VarRecordField."No."); VarFieldRefTo := VarRecRefNew.FIELD(VarRecordField."No."); VarFieldRefTo.VALUE := VarFieldRefFrom.VALUE; VarRecRefNew := VarFieldRefTo.RECORD; end; ...The only thing we wonder is if anyone already knows this problem...
Comments
"Never memorize what you can easily find in a book".....Or Mibuso
My Blog