Для формирования выражения нужно нажать кнопку Новое поле, и в списке полей появится дополнительная строка. |
Выражение локального запроса может быть одного из трех типов:
·Текст
·Мемо-поле
·Форматированный текст
По умолчанию создается выражение типа Текст. В столбце Тип можно изменить тип выражения, в столбце >= - максимальную длину поля.
В колонке Заголовок вводится название выражения, а из колонки Поле вызывается стандартный редактор выражений (выделить строку выражения, щелкнуть в колонке Поле и нажать кнопку, изображенную слева). |
В выражениях можно использовать:
1.Поля различных таблиц. Нажать кнопку Добавить поле, выбрать таблицу, поле, значение. Синтаксис: {Таблица.Поле} – текущее значение {<Таблица.Поле} – предыдущее значение {<<Таблица.Поле} – первое значение {<!Таблица.Поле} – последнее непустое значение {<&Таблица.Поле} – предыдущее значение (текущий тип записи) {<*Таблица.Поле} – предыдущее значение (текущий пользователь) В выражении можно обратиться к полю самого локального запроса: они перечислены в меню, открывающемся по стрелке рядом с кнопкой Добавить поле. Также можно выбрать поле из основной таблицы локального запроса, не попавшее в сам запрос. Синтаксис в этих случаях соответственно: [Поле], [Таблица.Поле]. 2.Активные фильтры. Для выбора активного фильтра служит пункт Фильтры по текущему срезу данных меню кнопки Добавить поле. Синтаксис: {=Активный фильтр}. |
|
3.Кнопкой Добавить локальный запрос можно вставить в выражение другой локальный запрос: {@Локальный запрос} Обратиться к полю другого локального запроса: {@Локальный запрос.Поле} Взять текущее значение поля локального запроса (на котором стоит курсор): {@@Локальный запрос.Поле}
|
|
|
4.Поле из таблицы по срезу данных некоторого локального запроса: {@Локальный запрос.Таблица.Поле} В этом случае с помощью локального запроса происходит позиционирование на определенную запись, и по этому срезу данных берется значение поля. Локальный запрос должен содержать поля PATIENTS_ID и MOTCONSU_ID. |
|
5.Функции, представленные в выпадающем списке. |
|
6.В выражениях типа Форматированный текст можно использовать функцию RTFText() для задания формата текста, а также поля таблиц аналогичного типа. |
Пример 1. Выражение типа Форматированный текст
Форматирование текста в выражении соответствующего типа может задаваться следующими способами:
·использованием в выражении некоторого поля таблицы типа Форматированный текст;
·с помощью функции RTFText(), позволяющей изменять некоторые параметры форматирования (жирность, курсив, подчеркивание, перенос строки).
Рассмотрим в качестве примера выражение:
{Пациенты.ФИО с форматированием}+RTFText('<CR><b>'+'Адрес: </b>'+ '<u>'+{Пациенты.Адрес постоянного места жительства}+'</u>')
В этом выражении:
·{Пациенты.ФИО с форматированием} – поле типа Форматированный текст таблицы Пациенты, вынесенное на экранную форму с возможностью задания формата пользователем;
·"Адрес" – текст, выделенный жирным (начинается с новой строки);
·{Пациенты.Адрес постоянного места жительства} – мемо-поле из таблицы Пациенты, текст которого должен отображаться подчеркнутым.
На экранной форме результат вычисления данного выражения будет выглядеть, как показано на рис. 2.6.
Рисунок 2.6. Выражение типа Форматированный текст на экранной форме
Пример 2. Выражение, вычисляющее количество записей в таблице
Иногда возникает необходимость создать в локальном запросе выражение, вычисляющее количество записей в некоторой таблице. Примером такого запроса является Листок нетрудоспособности число освобождений, необходимый для ограничения числа освобождений по одному листку.
Отбор записей, которые должны считаться, осуществляется с помощью фильтра Условия на строку. Для вычисления количества записей создается выражение Число действий. Текст выражения:
COUNT ({Листок нетрудоспособности текущий.DATA280_ID})
Особенности использования запросов с выражениями подсчета количества строк приведены в разделе Пример локального запроса для подсчета количества записей в n-line таблице.