Список макросов |
«Список макросов» позволяет повышать функциональность при работе с формами пользователя. Свойства компонента: Название. Список макросов. Название – содержит имя (идентификатор) компонента, по которому производится обращение к данному компоненту. Список макросов – используется для вызова «Редактора макросов формы». С помощью «Редактора макросов» можно выполнить следующие действия: - переименовать название макроса; - добавить макрос; - удалить макрос.
В Редакторе, при нажатии кнопки «Добавить», автоматически добавляется макрос с именем «Макрос_формы1». Для данного макроса в «Инспекторе объектов» необходимо выбрать тип макроса. Тип макроса определяет выполнение определенных действий: - Включить/Выключить фильтрацию; - Вызов формы геокодирования; - Закрыть данные; - Записать имя формы в таблицу; - Запустить Dll; - Запустить приложение с параметрами из таблицы. - Запустить приложение; - Нанести точечные объекты; - Открыть URL – адрес; - Открыть данные; - Открыть карту; - Открыть форму из таблицы; - Отчет для НД; - Расчет по карте; - Создать запрос; - Создать параметризованный фильтр; - Создать фильтр; - Сохранение запроса во временную таблицу; - Сохранить НД в файл.
Каждый тип макроса имеет как минимум два свойства: - Название – содержит имя (идентификатор) макроса, по которому производится обращение к этому макросу; - Тип макроса – определяет тип выполняемых действий.
Макрос «Включить/Выключить фильтрацию» имеет свойства: - Набор данных – определяет ссылку на имя компонента доступа к данным (Таблица, Запрос, Параметризованный запрос), обеспечивающего связь с конкретным набором информации из БД. - Установить фильтрацию – при выборе значения «Да» осуществляется фильтрацию «Набора данных», значение «Нет» – сбрасывает фильтр.
Макрос «Вызов формы геокодирования» имеет свойства: - Набор данных – определяет ссылку на имя компонента «Таблица» (или «Запрос»), обеспечивающего связь с конкретным набором информации из БД.
Макрос «Закрыть данные» имеет свойства: - Набор данных – определяет ссылку на имя компонента доступа к данным (Таблица, Запрос, Параметризованный запрос), обеспечивающего связь с конкретным набором информации из БД.
Макрос «Записать имя формы в таблицу» имеет свойства: - Поле с названием формы – указывается имя поля таблицы, в которое записывается название формы пользователя в данном проекте.
Макрос «Запустить Dll» имеет свойства: - Имя поля с Dll, Имя файла Dll – указывается либо имя поля таблицы, содержащее название Dll, либо имя файла с расширением Dll; - Тип Dll – выбирается стандартный или расширенный тип Dll.
Расширенный тип. Для вызова задачи в модуле должна быть объявлена функция: extern "C" { long int _export WINAPI CallMapFunctionDb(HMAP hmap,TASKPARMEX * parm, char *path) ); { ... } }
Переменная hmap содержит идентификатор открытой карты. Структура TASKPARM описана в файле maptype.h. Константа tablename содержит полное имя файла таблицы базы данных (dBase). В процессе работы с макросом создается временная таблица, которая автоматически не удаляется.
Стандартный тип. Для вызова задачи в модуле должна быть объявлена стандартная функция: extern "C" { long int _export WINAPI CallMapFunctionEx(HMAP hmap, TASKPARMEX * parm); { ... } }
Прикладные задачи должны быть формата DLL.
Макрос «Запустить приложение с параметрами из таблицы» имеет свойства: - Имя файла exe – указывается имя файла с расширением EXE, которое выбирается с помощью стандартного диалога выбора файла; - Поле с параметрами – указывается имя поля таблицы, содержащее параметры для запуска приложения.
Макрос «Запустить приложение» имеет свойства: - Имя приложения – указывается имя файла с расширением EXE, которое выбирается с помощью стандартного диалога выбора файла.
Макрос «Нанести точечные объекты» имеет свойства: - Набор данных – определяет ссылку на имя компонента «Таблица» (или «Запрос»), обеспечивающего связь с конкретным набором информации из БД; - Поле с именем карты, поле с координатой X, поле с координатой Y, поле с координатой H – содержат имена соответствующих полей таблицы. - Система координат – указывает систему координат и может принимать значения: метры, градусы, радианы. - Устанавливать связь – устанавливать или нет связь создаваемого объекта с соответствующей ему записью таблицы базы данных. Установленная связь при последующей работе с базой позволяет найти по записи в таблице соответствующий ей объект или, наоборот, по объекту найти запись. Макрос «Открыть URL - адрес» имеет свойства: - Набор данных – определяет ссылку на имя компонента «Таблица» (или «Запрос»), обеспечивающего связь с конкретным набором информации из БД; - Поле с URL – имя поля таблицы, содержащего URL – адреса. - URL – адрес – строка, содержащая URL – адрес.
Компонент "Список макросов" работает в двух режимах (в зависимости от заполненных свойств компонента): - При установленных свойствах «Набор данных» и «Поле с URL» осуществляется переход по ссылкам, которые содержатся в поле таблицы базы данных; - При установленном свойстве «URL – адрес» осуществляет переход по ссылке, которая содержится в свойстве компонента "URL-адрес".
Макрос «Открыть данные» имеет свойства: - Набор данных – определяет ссылку на имя компонента доступа к данным (Таблица, Запрос, Параметризованный запрос), обеспечивающего связь с конкретным набором информации из БД. Макрос «Открыть карту» имеет свойства: - Набор данных – определяет ссылку на имя компонента «Таблица» (или «Запрос»), обеспечивающего связь с конкретным набором информации из БД; - Поле с именем карты, Поле с координатой X, Поле с координатой Y – содержат имена соответствующих полей. - Система координат – указывает систему координат и может принимать значения: метры, градусы, радианы.
Макрос «Открыть форму из таблицы» имеет свойства: - Поле с названием формы – указывается имя поля таблицы, содержащее название формы пользователя в данном проекте.
Макрос «Отчет для НД» имеет свойства: - Имя файла-шаблона – имя файла шаблона, созданного и настроенного заранее в 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.
Набор данных – определяет ссылку на имя компонента «Таблица» (или «Запрос»), обеспечивающего связь с конкретным набором информации из БД.
Макрос «Расчет по карте» имеет свойства: - Набор данных – определяет ссылку на имя компонента доступа к данным «Таблица». Для таблицы данных должна быть установлена связь с картой. - Поле для записи результата – выбирается поле из списка полей набора данных. В данное поле будет записан результат расчетной функции. Тип выбранного поля должен соответствовать типу расчетной функции. Например, результаты расчетных функций «Площадь» и «Длина» записываются в поля типа String или Double, Классификационный код и Номер объекта – в поля типа String или Integer, Название – в поле типа String. - Тип расчетной функции – указывается тип расчетной функции, может принимать следующие значения: длина, классификационный код, название, номер объекта, площадь.
Макрос «Создать запрос» имеет свойства: - SQL-запрос – определяет ссылку на имя компонента «Запрос», обеспечивающего связь с конкретным набором информации из БД.
Макрос «Сохранить НД в файл» имеет свойства: - Набор данных – определяет ссылку на имя компонента «Таблица» (или «Запрос»), обеспечивающего связь с конкретным набором информации из БД.
Макрос «Создать фильтр» имеет свойства: - Тип формы для фильтра – указывает тип формы устанавливаемого фильтра и может принимать значения: расширенный шаблон, облегченный шаблон. Поиск записей в текущей таблице данных осуществляется путем формирования пользователем текста запроса и фильтрации данных по запросу. После выполнения запроса доступными для просмотра и редактирования будут только те записи, которые удовлетворяют заданным условиям. - Набор данных – определяет ссылку на имя компонента «Таблица» (или «Запрос»), обеспечивающего связь с конкретным набором информации из БД.
Макрос «Сохранить запрос» имеет свойства: - Временная таблица – определяет ссылку на имя компонента типа «Сохранить запрос», выполнение которого и осуществляет этот макрос.
Макрос «Создать параметризованный запрос» имеет свойства: - Параметризованный запрос – определяет ссылку на имя компонента типа «Параметризованный запрос», обеспечивающего формирование параметров запроса; - Автоматическое выполнение – определяет надо ли вывести форму редактирования полученного текста запроса (значение «Нет») или выполнить запрос автоматически (значение «Да»).
Макрос «Создать параметризованный фильтр» имеет свойства: - Автоматическое выполнение – определяет, надо ли вывести форму редактирования полученного текста фильтра (значение «Нет») или установить фильтр автоматически (значение «Да»). - Набор данных – определяет ссылку на имя компонента доступа к данным (Таблица, Запрос, Параметризованный запрос), обеспечивающего связь с конкретным набором информации из БД. - Настройки фильтра – содержит текст фильтра. При использовании «Параметризованного фильтра» набор данных ограничивается записями, удовлетворяющими фильтру, задающему условия отбора записей. Для формирования фильтра используется «Редактор фильтра», который вызывается через поле значения данного свойства.
Окно «Редактора» разделено на четыре части: текст фильтра, список полей набора данных, список имен компонентов для ввода значений и список имен компонентов для выбора логических операторов. При наведении на каждую часть «Редактора» указателя мыши отображается подсказка о его назначении.
Макрос «Создать параметризованный фильтр». Окно редактора
Выражение фильтра представляет собой конструкцию, в состав которой могут входить следующие элементы: - имена полей таблиц; - литералы; - имена компонентов для ввода значений; - операции сравнения; - логические операции; - имена компонентов для выбора операторов.
Операции сравнения
В качестве логических операций можно использовать AND, OR, NOT, либо указать имя компонента для выбора логических операторов. Причем имя компонента для выбора логических операторов должно быть заключено в символы «#» (например, #Выбор_оператора1#).
В тексте фильтра имя поля и операции сравнения должны быть разделены пробелом. В качестве примеров задания условий фильтрации таблицы locality.dbf приведем следующие выражения: [SEM9] = ' Аборино ' AND [POSEL_ID] = 6 [SEM9] = $'Ввод_значения1'$ #Выбор_оператора1# [POSEL_ID]=$Ввод_значения2$
Первое выражение обеспечивает отбор всех записей, для которых значения полей задано явно: SEM9 равно 'Аборино' и поле POSEL_ID = 6, а для второго – значения полей задаются с помощью компонентов 'Ввод_значения’ и компонента ‘Выбор_оператора’. В момент активизации фильтра вместо названия параметра – переменной подставляется конкретное значение из соответствующего компонента формы. Для формирования второго выражения необходимо, чтобы форма пользователя содержала компоненты 'Ввод_значения’ и ‘Выбор_оператора’. Чтобы создать данное выражение в «Редакторе», выделите имя поля и «перетащите» его в окно текста фильтра, далее введите операцию сравнения. Выделите и «перетащите» имя компонента для ввода значений, выбора оператора и так далее. Имя поля будет записано без квадратных скобок, если при переносе нажать клавишу «Shift». Для активизации и деактивизации фильтра используется макрос «Включить/Выключить фильтрацию».
Пример создания формы пользователя с использованием компонента «Список макросов» |