If used('tmpCnt') If inlist(thisform.pmnaddrtype, 2, 4) && Contact Address -----10/13 changed from 2,4 because on page 5, slcSel = rpt_dict.pmSelect1 && Contact is value 1 Else && Permanent slcSel = rpt_dict.pmSelect1 Endif Else slcSel = rpt_dict.pmSelect1 Endif *------------ IF ThisForm.AddNames # .F. *------------ .cbNext.Enabled = IIF(EMPTY(ThisForm.pmaRptList[1,1]), .F., .T.)Of course, later years brought more progress. I saw 200 line routines with "return" in line 3, pieces of code which were never called, but there's one FoxPlus guy who takes the cake: he issued a separate READ statement after each Say/Get pair. Obviously, to simulate how it used to work in Cobol. He ran them in a do while .t. loop, increasing the counter, and then had a long case statement...
case nCounter=32 @12, 40 say "Amount " @12, 50 get nAmount valid SomeFunction() read nCounter=nCounter+1I don't remember how he left the loop, probably via if nCounter=45 /exit / endif or some such construction. I didn't get that far reading the code, my head was spinning from the slap I gave my forehead...