Навигация:  МОДУЛЬ "ЭЛЕКТРОННАЯ МЕДИЦИНСКАЯ КАРТА" > ХРАНЕНИЕ И ОТОБРАЖЕНИЕ ИНФОРМАЦИИ В СИСТЕМЕ > Скрипты и запросы >

Вызов скриптов и запросов

Предыдущая страницаВернуться в начало главыСледующая страница

Вызов скриптов с помощью макроподстановки

Выполнение скрипта может производиться через макроподстановку. Для этого в макроподстановку нужно вставить выражение с вызовом  функции

EXEC_SCRIPT(<Имя скрипта>[,<Параметр1>,<Параметр2>,...]).

Имя скрипта указывается в одинарных кавычках. Параметры перечисляются через запятую в том порядке, в каком они указаны при формировании скрипта (рис. 4.4).

 Рисунок 4.8. Вызов скрипта в макроподстановке


Рисунок 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()


Рисунок 4.9. Вызов запроса с помощью функции QUERY()