SELECT (cMembdepalias) LOCATE FOR (EMPTY(cDepssn) OR ssn == cDepssn) AND ; ALLTRIM(lastname) ==cExtdeplastname AND ; ALLTRIM(firstname)==Alltrim(Evaluate('oExtmember.dep'+cLoop+'fname')) AND ; deptype == cDeptype AND ; gender == Evaluate('oExtmember.dep'+cLoop+'sex') AND ; dob == Evaluate('oExtmember.dep'+cLoop+'birth') AND ; termdate == Evaluate('oExtmember.dep'+cLoop+'termdt') AND ; termcode == Evaluate('oExtmember.dep'+cLoop+'tcd') AND ; extendcode == Evaluate('oExtmember.dep'+cLoop+'extend') AND ; status == Evaluate('oExtmember.dep'+cLoop+'status') IF FOUND() Replace checkflag With .T. In (cMembdepalias) ELSE If Not Empty(cAlias) Select (cAlias) Endif Use In (cMembdepalias) Return 'command1' ENDIFIf some reason this is less desireble I'd go for:
lFound=.F. Select (cMembdepalias) SCAN WHILE lFound = .f. DO CASE CASE Not Empty(cDepssn) And Not (Evaluate(cMembdepalias+'.ssn')==cDepssn) CASE Not (Alltrim(Evaluate(cMembdepalias+'.lastname'))==cExtdeplastname) CASE Not (Alltrim(Evaluate(cMembdepalias+'.firstname'))==Alltrim(Evaluate('oExtmember.dep'+cLoop+'fname'))) CASE Not (Evaluate(cMembdepalias+'.deptype')==cDeptype) CASE Not (Evaluate(cMembdepalias+'.gender')==Evaluate('oExtmember.dep'+cLoop+'sex')) CASE Evaluate(cMembdepalias+'.dob')<>Evaluate('oExtmember.dep'+cLoop+'birth') CASE Evaluate(cMembdepalias+'.termdate')<>Evaluate('oExtmember.dep'+cLoop+'termdt') CASE Not (Evaluate(cMembdepalias+'.termcode')==Evaluate('oExtmember.dep'+cLoop+'tcd')) CASE Not (Evaluate(cMembdepalias+'.extendcode')==Evaluate('oExtmember.dep'+cLoop+'extend')) CASE Not (Evaluate(cMembdepalias+'.status')==Evaluate('oExtmember.dep'+cLoop+'status')) OTHERWISE Replace checkflag With .T. In &cMembdepalias. lFound=.T. ENDSCAN If lFound=.F. If Not Empty(cAlias) Select (cAlias) Endif Use In &cMembdepalias. Return 'command1' Endif