>Harsh
>
>It's not good to double code because you have to change the second code everytime you change the first..
>
>And as procedures are not allowed in the same method and external ones are complicated,
>I was looking for a way to put all in the same scan, and Rick's solution is best for me.
>
>Thank you and all guys that helped.
>
>Moises
This is better.
if empty(m.variable1)
lcCond = "field2 = m.variable2"
else
lcCond = "field1 = m.variable1"
endif
scan for &lcCond.
...
The advantages are no duplication in code, single point maintenance, Rushmore will optimize if you have indexes on field1 and field2, the IIF will not fire per row, but once for the entire operation before the scan.
>
>
>>Sir, Scanning like the code you have suggested and the code I gave below makes the difference in Speed or performance.
>>
>>
>>Select mytable
>>if empty (variable1)
>>scan for field2 = variable2
>>Endscan
>>Else
>>scan for field1 = variable1
>>Endscan
>>Endif
>>
>>
>>I am asking this just for my knowledge, if yes I will also make changes in my all of codes accordingly.
>>Regards
>>
>>
>>
>>
>>>
select mytable
>>>
>>>scan for iif(empty(variable1), field2 = variable2, field1 = variable1)
>>> * Code here
>>>endscan
>>>