Even better you can save a keystroke with:
cpay_update # 'D'
>In addition to the other comments which will help you solve this mystery, I am offering a suggestion: You can use the REPLACE...FOR command, or REPLACE...WHILE command and do this with a lot fewer lines. You can replace many fields with one REPLACE. Also, just a personal preference; I find
>
>cpay_update != 'D'
>
>or
>
>!(cpay_update = 'D')
>
>easier to read than
>
>!cpay_update = 'D'
>
>
>Take care,
>Joe
>
>>I have a cursor called cpayment with 3 records. The cpay_flag is .t. and cpay_schdate has a date in all 3 records. When I run the following code it only loops through one record, not all 3. If I comment out the replace cpay_schdate with {} and replace cpay_flag with .f. the SCAN will loop through all records. Now I know whats causing the problem but I don't understand why.
>>
>>
>>select cpayment
>>SCAN FOR ((cpay_flag = .t.) and (!empty(cpay_schdate)))
>> replace cpay_schdate with {}
>> replace cpay_flag with .f.
>> if !cpay_update = 'D' then
>> replace cpay_update with "C"
>> endif
>> replace cpay_amt with 0.00
>>ENDSCAN
>>