>Dear all,
>
>I need all the help I can get.Please do help. THanks in advance.
>Here's my problem.
>
>DO WHILE thisform.check = .f.
> thisform.aperiod = thisform.aperiod + 1
> if thisform.aperiod > acperiod
> thisform.aperiod = 1
> thisform.ayear = thisform.ayear + 1
> endif
> thisform.i = thisform.i + 1
>[ if thisform.text2.value = thisform.aperiod and;
> thisform.text4.value = thisform.ayear
> thisform.check = .t.
> endif]
>ENDDO
>
>Logically I think the part with [] works but something weird
>happens instead, I do not know where I go wrong.
>GIven thisform.aperiod the value of 10 and thisform.ayear=1997,
>thisform.text2.value = 10 and thisform.text4.value = 1998
>when it reached the checking part [] the
>thisform.ayear's value is changed back to 1997 causing
>an endless loop. Why does the IF..ELSE..ENDIF statement
>not working?
>
>Dora
The easiest thing to do:
Put a SET STEP ON before the DO WHILE. This will open the debugger right before the DO WHILE and you can check the value of each variable, trace the code, etc.
Now, in your case, for the first execution of the DO WHILE:
aperiod is 10 and becomes 11.
If 11 > acperiod
then aperiod = 1 and ayear = 1998
else aperiod = 11 and ayear = 1997
In both cases (then or else) the next if is false, so check stays .f.
What's the value of acperiod?
Vlad
Previous
Next
Reply
View the map of this thread
View the map of this thread starting from this message only
View all messages of this thread
View all messages of this thread starting from this message only