Условные операторы позволяют выполнять те или иные наборы команд в зависимости от результата проверки заданного условия. В FoxPro существует две структуры позволяющие делать такие разветвления:
IF ... ELSE ... ENDIF DO CASE ... ENDCASE
Их можно сочетать вместе. Обе структуры допускают вложенность. Пример:
if nStat=5 or nStat=6 or nStat=7 do case case nStat=5 cErrorMsg='Изменился счет или сумма!' case nStat=6 cErrorMsg='Изменилось состояние документа!' case nStat=7 cErrorMsg='Документ удален в ИБС!' endcase messagebox(cErrorMsg, 16, 'Контроль') endif
Суда же можно отнести и функцию IIF(), возвращающую одну из двух величин в зависимости от логического выражения. Например:
nOstatok=iif(curost.dt_=.t., curost.ost_-curost.sum_, curost.ost_+curost.sum_)