- •3.6 Заключение 59
- •Глава 1. Определение и виды информационных систем
- •Виды ис
- •Функциональность информационных систем, ориентированных на данные
- •Глава 2. Технология real-it
- •Моделирование схемы данных
- •Описание ограничений целостности
- •Описание экземпляров
- •Создание представлений
- •Расширение uml для моделирования представлений
- •Создание экранов
- •Генерация
- •База данных
- •Программный интерфейс базы данных
- •Экранные формы
- •Заключение
- •Глава 3. Язык описания расширенных ограничений ссылочной целостности
- •Пример диаграммы классов с ограничениями
- •Альтернативные подходы
- •Контекстные ограничения
- •Нотация
- •Семантика
- •Базовая модель Определение 1
- •Модель с отрицаниями Определение 7
- •Модель с ограничениями на отдельные объекты Определение 11
- •3.6 Заключение
- •Глава 4. Разработка пользовательского интерфейса
- •Модельно-ориентированные подходы к разработке пользовательского интерфейса
- •Визуальное моделирование при разработке web-приложений
- •Моделирование интерфейса в real-гг
- •Порядок использования модели интерфейса
- •Диаграммы классов uml
- •Шаблоны экранных форм
- •Разработка отдельных типов экранных форм
- •4.3.1 Список
- •Определение набора столбцов
- •Моделирование фильтров
- •Карточка
- •Форма - отношение
- •Заключение
- •Глава 5. Поддержка итеративной разработки
- •Альтернативные подходы
- •Поддержка «ручных» изменений кода
- •Возможные решения
- •Анализ возможных решений
- •Предлагаемое решение
- •Программный интерфейс базы данных
- •Изменение расположения и размеров элементов управления
- •Изменение поведении элементов интерфейса
- •Изменение визуального представления (замена и добавление элементов управления)
- •Составление сложной формы из нескольких сгенерированных
- •Сохранение содержимого базы данных при обновлении ее схемы
- •Заключение
- •Глава 6. Реализация
- •База данных
- •Архитектура приложения
- •Оптимизация выборки данных
- •Учет зависимостей между полями
- •Отложенная инициализация закладок
- •Передача дополнительной информации между формами
- •Генераторы
- •Заключение
- •Глава 7. Направления дальнейших исследований
- •Моделирование расширенных ограничений ссылочной целостности
- •Моделирование пользовательского интерфейса
- •Распределение прав доступа в терминах модели системы
- •Разработка семейств информационных систем
- •Использование модели бизнес-процессов для реализации системы
- •0. Для профессионалов: Пер. С англ. — сПб: Питер, 2000. — 864 с.
Отложенная инициализация закладок
Данные в карточке распределяются по закладкам, при этом чаше всего пользователь ограничивается одной - двумя закладками. Поэтому можно существенно сократить время отклика, если при открытии карточки инициализировать только тс элементы управления, которые видны на первой закладке (разумеется, речь идет только о тех элементах управления, для инициализации которых нужны отдельные запросы). Все остальные закладки инициализируются при первом обращении пользователя к ним. При этом, даже если пользователь пройдет по всем закладкам, время отклика на каждый переход будет приемлемым, поскольку больше всего времени уходит на инициализацию встроенных списков, которые занимают много места, и на одной закладке обычно располагается не больше одного - двух списков.
Отложенная инициализация ссылочных полей
Как уже говорилось выше, инициализация ссылочного поля также требует отдельного запроса к базе данных для получения списка допустимых значений, причем на одной закладке таких полей может быть много. При этом, каждое такое ноле, помимо значений, полученных из базы, может содержать специальные значения - «Все» и «Не установлен». Значение «Все» могут принимать фильтры в списках (разработчик может запретить это значение для конкрегного фильтра). Значение «Не установлен» могут принимать фильтры в списках и поля в карточках, в зависимости от типа связи - «многие к строго одному» или «многие к одному или нулю». Если иоле выГюра допускает хотя бы одно из этих специальных значений, то именно оно и будет установлено при инициализации. При этом запрашивать из базы данных список допустимых значений можно только в тот момент, котла пользователь решил выбрать значение поля из списка. С учетом того, что инициализация поля происходит каждый раз при изменении значения в одном из полей, от которых оно зависит, данное решение дает заметный выигрыш.
Передача дополнительной информации между формами
Рассмотренный в предыдущем разделе механизм отложенной инициализации ссылочных полей не проходит в том случае, если сразу при инициализации формы поле должно показывать значение, полученное из базы данных. Такое случается:
при вызове карточки для существующего объекта (все поля инициализируются соответствующими свойствами объекта);
при вызове карточки для создания нового объекта из списка с установленными ссылочными фильтрами (соответствующие поля в карточке сразу получают значения из фильтров списка);
при вызове из карточки списка связанных объектов (по крайней мере один ссылочный фильтр в списке получает значение из карточки).
Необходимость обращения к базе вызвана тем. что ссылочные поля визуализируют свое значение (идентификатор выбранного объекта) не напрямую, а с использованием представления данного объекта, которое, как указывалось выше, вычисляется исходя из значений атрибутов этого объекта (и, возможно, атрибутов связанных с ним объектов). Для получения этот представления и требуется обращение к базе. В то же время, в ряде случаев требуемое представление уже было получено, но не в данной форме, а в той, из которой она была вызвана. В REAL-ГГ/VB была реализована передача значений ссылочных полей вместе с представлениями при вызове карточки из списка и списка из карточки, что позволяет не обращаться к БД при инициализации этих полей (точнее, это еще один механизм отложенной инициализации, поскольку инициализируется только текущее значение, но не список возможных значений. Передаче между формами списка значений препятствует наличие зависимостей и дополнительных ограничений на набор значений, коюрые могут быть разными в вызывающей и вызываемой формах).