Список макросов позволяет повышать функциональность при работе с формами пользователя.
Свойства компонента:
- Название – содержит имя (идентификатор) компонента, по которому производится обращение к этому компоненту;
- Список макросов – используется для вызова Редактора макросов формы. С помощью Редактора макросов можно выполнить следующее:
- Переименовать название макроса;
- Добавить макрос;
- Удалить макрос.
В Редакторе, при нажатии кнопки Добавить, автоматически добавляется макрос с именем “Макрос_формы1”. Для данного макроса в Инспекторе объектовнеобходимо выбрать тип макроса. Тип макроса определяет выполнение определенных действий:
- Вызов формы геокодирования;
- Отчет для НД ;
- Запустить приложение;
- Открыть карту;
- Сохранить НД в файл;
- Нанести точечные объекты;
- Создать фильтр;
- Создать запрос;
- Сохранение запроса во временную таблицу;
- Формирование параметризованного запроса;
- Построение изолиний по точечным объектам;
- Включить/Выключить фильтрацию;
- Открыть данные;
- Закрыть данные;
- Расчет по карте;
- Создать параметризованный фильтр.
Каждый тип макроса имеет как минимум два свойства:
- Название - содержит имя (идентификатор) макроса, по которому производится обращение к этому макросу;
- Тип макроса - определяет тип выполняемых действий.
Макрос Вызов формы геокодирования имеет свойства:
- Набор данных - определяет ссылку на имя компонента Таблица (или Запрос), обеспечивающего связь с конкретным набором информации из БД.
Макрос Отчет для НД имеет свойства:
- Имя файла-шаблона – имя файла шаблона, созданного и настроенного заранее в Microsoft Office.
Создание отчетов осуществляется средствами Microsoft Office (для шаблонов с расширением XLT – MS Excel, с расширением DOT – MS Word).
Шаблон документа состоит из описательной части, которая автоматически не редактируется, и полей данных (ключевых полей), которые в процессе создания отчета заменяются на соответствующие им значения из таблицы. Поля данных представляют собой имена полей таблицы в виде набора заглавных букв , заключенных между символами “#”. Например, NUMBER – имя поля таблицы , # NUMBER # - имя поля данных в шаблоне.
Тип отчета - указывает тип создаваемого отчета и может принимать значения: Excel – отчет для всех записей (по умолчанию), Excel – отчет для текущей записи, Word – отчет для текущей записи, по типу шаблона.
Отчеты могут быть табличными и по форме.
Табличный отчет может создаваться только на основе шаблона MS Excel и содержит данные в виде таблицы. В первой строке шаблона отчета, где необходимо начать печать данных в виде таблицы должны быть перечислены имена полей данных. В качестве примера поставляется табличный отчет на основе шаблона с именем ExExcel.xlt.
Отчет по форме представляет собой документ, в котором имена полей данных задаются в любом выбранном пользователем месте, причем они могут повторяться. Отчет по форме создается на основе шаблона MS Word или MS Excel. В качестве примера поставляется табличный отчет на основе шаблона с именем ExWord.xlt.
Набор данных - определяет ссылку на имя компонента Таблица (или Запрос), обеспечивающего связь с конкретным набором информации из БД;
Макрос Запустить приложение имеет свойства:
Имя приложения – указывается имя файла с расширением *.exe , которое выбирается с помощью стандартного диалога выбора файла;
Макрос Открыть карту имеет свойства:
Набор данных - определяет ссылку на имя компонента Таблица (или Запрос), обеспечивающего связь с конкретным набором информации из БД;
Поле с именем карты, Поле с координатой X, Поле с координатой Y – содержат имена соответствующих полей.
Система координат - указывает систему координат и может принимать значения : метры, градусы, радианы.
Макрос Сохранить НД в файл имеет свойства :
Набор данных - определяет ссылку на имя компонента Таблица (или Запрос), обеспечивающего связь с конкретным набором информации из БД.
Макрос Нанести точечные объекты имеет свойства:
Набор данных - определяет ссылку на имя компонента Таблица (или Запрос), обеспечивающего связь с конкретным набором информации из БД;
Поле с именем карты, поле с координатой X, поле с координатой Y, поле с координатой H– содержат имена соответствующих полей таблицы.
Система координат - указывает систему координат и может принимать значения : метры, градусы, радианы.
Устанавливать связь - устанавливать или нет связь создаваемого объекта с соответствующей ему записью таблицы базы данных. Установленная связь при последующей работе с базой позволяет найти по записи в таблице соответствующий ей объект или, наоборот, по объекту найти запись.
Макрос Создать фильтр имеет свойства:
Тип формы для фильтра – указывает тип формы устанавливаемого фильтра и может принимать значения: расширенный шаблон, облегченный шаблон. Поиск записей в текущей таблице данных осуществляется путем формирования пользователем текста запроса и фильтрации данных по запросу. После выполнения запроса доступными для просмотра и редактирования будут только те записи, которые удовлетворяют заданным условиям.
Набор данных - определяет ссылку на имя компонента Таблица (или Запрос), обеспечивающего связь с конкретным набором информации из БД;
Макрос Создать запрос имеет свойства:
SQL – запрос - определяет ссылку на имя компонента Запрос, обеспечивающего связь с конкретным набором информации из БД;
Макрос Сохранить запрос имеет свойства:
Временная таблица - определяет ссылку на имя компонента типа Сохранить запрос, выполнение которого и осуществляет этот макрос ;
Макрос Создать параметризованный запрос имеет свойства:
Параметризованный запрос - определяет ссылку на имя компонента типа Параметризованный запрос, обеспечивающего формирование параметров запроса;
Автоматическое выполнение - определяет надо ли вывести форму редактирования полученного текста запроса (значение Нет) или выполнить запрос автоматически (значение Да).
Макрос Построение изолиний имеет свойства:
Набор данных - определяет ссылку на имя компонента Таблица (или Запрос), обеспечивающего связь с конкретным набором информации из БД. Для этого набора данных будет вызвана функция построения изолиний .
Для выполнения макроса на форму вместе с компонентом Список макросов необходимо поместить компонент Кнопка и для его свойства Макрос выбрать требуемый из списка.
Макрос Включить/Выключить фильтрацию имеет свойства:
Набор данных - определяет ссылку на имя компонента доступа к данным (Таблица,Запрос,Параметризованный запрос), обеспечивающего связь с конкретным набором информации из БД.
Установить фильтрацию – при выборе значения Да осуществляется фильтрацию Набора данных, значение Нет – сбрасывает фильтр.
Макрос Открыть данные имеет свойства:
Набор данных - определяет ссылку на имя компонента доступа к данным (Таблица,Запрос,Параметризованный запрос), обеспечивающего связь с конкретным набором информации из БД.
Макрос Закрыть данные имеет свойства:
Набор данных - определяет ссылку на имя компонента доступа к данным (Таблица,Запрос,Параметризованный запрос), обеспечивающего связь с конкретным набором информации из БД.
Макрос Расчет по карте имеет свойства:
Набор данных - определяет ссылку на имя компонента доступа к данным Таблица. Для таблицы данных должна быть установлена связь с картой.
Поле для записи результата – выбирается поле из списка полей набора данных. В данное поле будет записан результат расчетной функции. Тип выбранного поля должен соответствовать типу расчетной функции. Например, результаты расчетных функций Площадь и Длина записываются в поля типа String или Double, Классификационный код и Номер объекта - в поля типа String или Integer, Название - в поле типа String.
Тип расчетной функции - указывается тип расчетной функции, может принимать следующие значения: длина, классификационный код, название, номер объекта, площадь.
Макрос Создать параметризованный фильтримеет свойства:
Автоматическое выполнение – определяет надо ли вывести форму редактирования полученного текста фильтра (значение Нет) или установить фильтр автоматически (значение Да).
Набор данных - определяет ссылку на имя компонента доступа к данным (Таблица,Запрос,Параметризованный запрос), обеспечивающего связь с конкретным набором информации из БД.
Настройки фильтра - содержит текст фильтра. При использовании Параметризованного фильтра набор данных ограничивается записями, удовлетворяющими фильтру, задающему условия отбора записей. Для формирования фильтра используется Редактор фильтра, который вызывается через поле значения данного свойства.
Окно Редактора (рисунок 26 разделено на четыре части:
- текст фильтра;
- список полей набора данных;
- список имен компонентов для ввода значений;
- список имен компонентов для выбора логических операторов.
При наведении на каждую часть Редактора указателя «мыши» отображается подсказка о его назначении.
Рисунок 26- Редактор фильтра
Выражение фильтра представляет собой конструкцию, в состав которой могут входить следующие элементы:
- Имена полей таблиц;
Литералы;
Имена компонентов для ввода значений;
Операции сравнения;
Логические операции;
Имена компонентов для выбора операторов.
Если имя поля содержит русские буквы, то его заключают в квадратные скобки.
Литерал представляет собой значение, заданное явно (например, число, строка или символ).
В выражении фильтра можно использовать имена компонентов для ввода значений, с помощью которых значение для фильтрации будет задаваться во время просмотра формы пользователя.
Если значение имеет числовой тип, то имя компонента Ввод значения заключается в символы $ (например, $Ввод_значения$).
Если значение имеет символьный тип, то имя компонента Ввод значения заключается в символы $ и апостроф (например, $'Ввод_значения2'$).
Операции сравнения :
- = - равно
- < - меньше
- > - больше
- <= - меньше и равно
->= - больше и равно
-<> - не равно.
В качестве логических операций можно использовать AND, OR, NOT, либо указать имя компонента для выбора логических операторов. Причем имя компонента для выбора логических операторов должно быть заключено в символы # (например, #Выбор_оператора1#).
В тексте фильтра имя поля и операции сравнения должны быть разделены пробелом.
В качестве примеров задания условий фильтрации таблицы POINTGEO.dbf приведены следующие выражения :
[SEM9] = 'Бензоколонка 1' AND [EXCODE] = 51220000
[SEM9] = $'Ввод_значения1'$ #Выбор_оператора1# [EXCODE]=$Ввод_значения2$
Первое выражение обеспечивает отбор всех записей, для которых значения полей задано явно: SEM9 равно 'Бензоколонка 1' и поле EXCODE = 51220000, а для второго –значения полей задаются с помощью компонентов 'Ввод_значения’ и компонента ‘Выбор_оператора’. В момент активизации фильтра вместо названия параметра – переменной подставляется конкретное значение из соответствующего компонента формы.
Для формирования второго выражения необходимо, чтобы форма пользователя содержала компоненты 'Ввод_значения’ и ‘Выбор_оператора’. Чтобы создать данное выражение в Редакторе, выделить имя поля и “перетащить“ его в окно текста фильтра, далее ввести операцию сравнения. Выделить и “перетащить “ имя компонента для ввода значений, выбора оператора и т.д.. Имя поля будет записано без квадратных скобок, если при переносе нажать клавишу <Shift> .
Для активизации и деактивизации фильтра используется макрос Включить/Выключить фильтрацию.
Пример создания формы пользователя с использованием компонента “Список макросов”.
Рассмотривается создание формы пользователя “Печать_отчета”. Данная форма предназначена для создания отчета на основе информации из таблицы данных. Отчет печатается на основе шаблона, созданного и настроенного заранее в Microsoft Office.
Для создания формы необходимо выполнить действия:
1) В Администраторе данных в закладке Формы пользователя нажать кнопку Добавить. Активизируется Конструктор форм.
2) Создать новую форму (проще всего это сделать с помощью команды Форма/Новая, либо выбрав кнопку Создать новую форму).
3) Поместить на форму компонент Таблица (или Запрос) и настроить его.
4) Поместить на форму компонент Список макросов. С помощью специализированного Редактор макросов формы компонента (который вызывается через поле значения свойства – объекта Список макросов в Инспекторе объектов):
- добавить макрос;
- задать набор данных, название, выбрать тип макроса - Отчет для НД ;
- выбрать тип отчета и имя файла-шаблона (необязательный параметр);
- переименовать макрос, для более наглядного и удобного использования. Например, заменим имя “Макрос_формы1” на “Макрос_Отчет”;
- нажать кнопку Выход Редактора макросов формы.
5) Поместить на форму компонент Кнопка. Задать свойству Макрос значение “Макрос_Отчет”.
6) Сохранить созданную форму