LOCAL lcOldPK, lcNewPk, lnI LOCAL ARRAY laOldRecord[1], laNewRecord[1] lcOldPk = ALLTRIM(this.Parent.cboCarriers.value) lcNewPk = ALLTRIM(this.Parent.cboCarrierToMerge.Value) LOCATE FOR cCarriers_pk = m.lcOldPk SCATTER FIELDS EXCEPT CCARRIERS_PK, CCARRIER_NAME, IACTIVE_FLAG, TENTERED_DATE, CENTERED_USER, TLAST_UPDATED_DATE, ; CLAST_UPDATED_USER, CUSER_DEF1, CUSER_DEF2, CUSER_DEF3, CUSER_DEF4 TO laOldRecord replace iActive_flag WITH 0 LOCATE FOR cCarriers_pk = m.lcNewPk SCATTER FIELDS EXCEPT CCARRIERS_PK, CCARRIER_NAME, IACTIVE_FLAG, TENTERED_DATE, CENTERED_USER, TLAST_UPDATED_DATE, CLAST_UPDATED_USER, CUSER_DEF1, CUSER_DEF2, CUSER_DEF3, CUSER_DEF4 TO laNewRecord for lnI =1 to ALEN(laOldRecord) IF NOT EMPTY(laOldRecord[m.lnI]) AND EMPTY(laNewRecord[m.lnI]) laNewRecord[m.lni] = laOldRecord[m.lnI] endif NEXT GATHER FROM laNewRecord FIELDS EXCEPT ; CCARRIERS_PK, CCARRIER_NAME, IACTIVE_FLAG, TENTERED_DATE, CENTERED_USER, TLAST_UPDATED_DATE, ; CLAST_UPDATED_USER, CUSER_DEF1, CUSER_DEF2, CUSER_DEF3, CUSER_DEF4
>>LOCAL lcOldPK, lcNewPk >> >>lcOldPk = ALLTRIM(this.Parent.cboCarriers.value) >>lcNewPk = ALLTRIM(this.Parent.cboCarrierToMerge.Value) >> >>LOCATE FOR cCarriers_pk = m.lcOldPk >>SCATTER FIELDS EXCEPT CCARRIERS_PK, CCARRIER_NAME, IACTIVE_FLAG, TENTERED_DATE, CENTERED_USER, TLAST_UPDATED_DATE, CLAST_UPDATED_USER, CUSER_DEF1, CUSER_DEF2, CUSER_DEF3, CUSER_DEF4 memvar >> >>replace iActive_flag WITH 0>>
>LOCAL lcOldPK, lcNewPk, loOldRecord, loNewRecord, lnFor, lcField, leFieldValue > >lcOldPk = ALLTRIM(this.Parent.cboCarriers.value) >lcNewPk = ALLTRIM(this.Parent.cboCarrierToMerge.Value) > >LOCATE FOR cCarriers_pk = m.lcOldPk >SCATTER FIELDS EXCEPT CCARRIERS_PK, CCARRIER_NAME, IACTIVE_FLAG, TENTERED_DATE, CENTERED_USER, TLAST_UPDATED_DATE,; > CLAST_UPDATED_USER, CUSER_DEF1, CUSER_DEF2, CUSER_DEF3, CUSER_DEF4; >NAME loOldRecord >LOCATE FOR cCarriers_pk = m.lcNewPk >FOR lnFor = 1 TO FCOUNT() > lcField = FIELD(lnFor) > leFieldValue = EVALUATE(lcField) > IF PEMSTATUS(loOldRecord,lcField,5) > IF NOT EMPTY(leFieldValue) && or IF EMPTY() - I can't remember logic :o) > lcField = [loOldRecord.]+lcField > &lcField = leFieldValue > ENDIF > ENDIF >NEXT >GATHER NAME loOldRecord >>Somethig like that (not tested)