Основы языка формул. Синтаксис и лексические элементы формул, страница 4

Еще один способ применения функции @Return — это использование ее в комбинации с функцией @Success, чтобы прекратить выполнение формулы изначально, если существует определенное условие. Функция @Success дает в результате значение true (или 1). Совместно с функцией @If функцию @Success можно использовать для того, чтобы продолжить выполнение формулы. В следующем примере внутри опе-ia?repi? МУ йшлггег ^нкшта" ^РОг иилильзуется функция @Success как оператор, выполняемый, если проверяемое условие истинно. Когда пользователь отвечает Yes, формула продолжает выполняться, сохраняя при этом соответствующие значения в полях cDocStatus и nStatusSort. Если пользователь отвечает No, функция @Return прекращает выполнение формулы.

REM   "Отправить   документ  для  рассмотрения";

jnYesNo   :=   @Prompt([yESNO];    "Are  you   sure?";    "Do  you  want  to  release   this document?") ;

@If(jnYesNo;   @Success;   SReturn (""));

@SetField("cDocStatus";    "Pending");

@SetFieldC'nStatusSort";   4)

Применение в формулах операторов действий

Операторы и формулы действий могут вызвать определенные побочные эффекты и внешние по отношению к формуле события. Сами формулы действий не возвращают полезных значений. Например, функция @MailSend() является оператором действия, так как она отправляет почтовые сообщения. Эта функция имеет возвращаемое значение, но оно играет второстепенную роль. Главным является то, что эта функция отправляет почтовое сообщение; данное действие происходит вне самой формулы. Команды @Commands часто выполняют действия, так как в их основе лежит структура меню. Например, команда @Command([EditProfile]) открывает профильный документ базы данных, но не возвращает никакого значения. Формулы действий могут быть созданы для:

• кнопок панели действий (как в форме, так и в представлении);

• программ-агентов;

• кнопок;

• полей (иногда это возможно);

• "горячих" ссылок;

• значков.

Логические функции @Functions

Имеется большое количество функций @Functions, которые могут быть классифицированы как логические функции @Functions. Эти функции возвращают значение типа Boolean. Помните, что в языке формул булево значение true представлено числом 1, а значение false — числом 0. Возвращаемые значения логических функций @Functions соответствуют числовым эквивалентам значений true и false. В табл. 19.2 перечислены логические функции @Functions:

Булевы или логические функции @Functions из табл.19.2 могут использоваться в различных ситуациях. Многие из этих функций имеют отношение к состоянию документа, например, функции @IsDocBeingEdited или @IsNewDoc. Функции, подобные этим, могут использоваться для сокрытия действий или, чтобы определить, следует ли заполнять поле данными. Например, если поместить функцию @IsNewDoc для кнопки действия Hide When, то при создании документа эта кнопка будет скрыта.

Аналогично, если имеется вычисляемое поле отображения, которое зависит от другого поля документа, отобразить значение поля можно с помощью функции @IsNewDoc:

@If (@IsNewDoc; "New Service Request"; cStatus)

Таблица 19.2 Логические функции @Functions