Вызов скриптов с помощью макроподстановки
Выполнение скрипта может производиться через макроподстановку. Для этого в макроподстановку нужно вставить выражение с вызовом функции
EXEC_SCRIPT(<Имя скрипта>[,<Параметр1>,<Параметр2>,...]).
Имя скрипта указывается в одинарных кавычках. Параметры перечисляются через запятую в том порядке, в каком они указаны при формировании скрипта (рис. 4.4).
Рисунок 4.8. Вызов скрипта в макроподстановке
При успешном выполнении скрипта функция EXEC_SCRIPT() возвращает значение 1, в противном случае – 0. Таким образом, для контроля выполнения скрипта рекомендуется создать служебное поле логического типа, на которое назначить мароподстановку с вызовом скрипта. Такое поле будет сигнализировать пользователю об успешном выполнении скрипта.
Вызов запросов
Вызов запросов осуществляется с помощью функции
QUERY(<Имя запроса>, <Имя возвращаемого поля> [,<Параметр1>,<Параметр2>,...])
Функция возвращает значение указанного поля. Имя скрипта и имя возвращаемого поля указываются в одинарных кавычках. Параметры перечисляются через запятую в том порядке, в каком они указаны при формировании запроса. Для корректного вызова функции запрос должен возвращать только одну строку, иначе возникает ошибка. Функция QUERY() доступна в любых формулах.
Существует ограничение на частоту выполнения запроса: один и тот же запрос может выполняться не чаще, чем один раз в 0,5 секунды.
Пример применения запроса – печать осмотра из записей врачей разных специальностей. В зависимости от типа записи с помощью формулы выбирается нужный макет с данными осмотра. В этом случае при настройке кнопки печати для разных специалистов не требуется выбирать макет, а достаточно прописать следующую формулу (рис. 4.9):
query('{QUERY_ED_VALUE}','EXAM_TEMPLATE','MODELS_GR','MODELS_ID='+ numstr({MOTCONSU.MODELS_ID})+' and MODELSGROUP_ID=1'), где
'{QUERY_ED_VALUE}' – запрос, возвращающий первую строку таблицы, соответствующую заданному условию (пример запроса см. на рис. 4.6);
'EXAM_TEMPLATE' – поле, значение которого возвращает запрос;
'MODELS_GR' – таблица внешнего справочника, в котором хранятся соответствия типов записей и макетов;
'MODELS_ID='+ numstr({MOTCONSU.MODELS_ID})+' and MODELSGROUP_ID=1' – условие, накладываемое на строку таблицы.
Рисунок 4.9. Вызов запроса с помощью функции QUERY()