Поиск объектов
Рассмотрим операцию поиска в приложении. Настроим поиск преподавателя по маске (строке, содержащей фамилию, имя или отчество).
В компонент MainMenuдобавим пункт Найти. При выборе пункта будет создаваться окно, в котором можно будет по введенной строке осуществить поиск.
Создадим новую форму wfLectSearch(классTLectSearch), в свойствеTextформы введем значение Поиск преподавателя. Настроим создание формы по выбору пункта Найти в главном меню формы Преподаватели. Настроим интерфейс созданной формы (см. Рисунок 10 .80).
Рисунок 10.83 – Настройка компонентов интерфейса
На форму поместим компонент TextBoxдля ввода строки, по которой будет осуществляться поиск. Результаты поиска будут выведены в таблице после нажатия кнопки Найти.
Компонент MainMenuсодержит пункты: Редактировать и Удалить, при выборе которых будут производиться соответствующие действия с выбранным в таблице преподавателем. Перед тем как отредактировать либо удалить объект проверим наличие хотя бы одного преподавателя в таблице.
if ehLecturer.GetList.Count <> 0
then
По нажатию кнопки Выход окно Поиск преподавателя закроется.
Добавим в проект дескрипторы ehLecturerиcmhLecturer. Первый потребуются для осуществленияOCL-запроса и вывода полученной коллекции. Второй необходим для оперирования с выбранным в таблице преподавателем.
Настроим поля таблицы так, чтобы можно было отобразить в ней название кафедры каждого преподавателя. Для этого надо настроить ehLecturer. Обратимся к свойствуColumnsэлементаehLecturer. Откроется диалоговое окно, предназначенное для настройки колонок. Новые колонки создаются в дополнение к уже существующим, автоматически созданным на базе текущих атрибутов класса Преподаватель. Для добавления колонок служит кнопкаAdd. При ее нажатии открывается меню выбора типа колонки. Создадим одну колонку. В свойствеNameзадается название колонки, введем в него строкуLectChair. В качестве выраженияOCLвведем конструкцию:
self.roleChair.ChairName
В ней происходит обращение к ссылке на кафедру (к окончанию ассоциативной связи roleChair), связанную с текущим преподавателем. Нажмем кнопку ОК – окно добавления колонки закроется. В таблице появится новая колонка LectChair.
В обработчик нажатия кнопки Найти запишем код:
procedure TLectSearch.Button1_Click(sender: System.Object; e: System.EventArgs);
var
StrSearch: string;
StrExpression: string;
begin
StrSearch := TextBox1.Text;
StrExpression := 'clLecturer.allInstances->select(LecturerSNP. sqlLikeCaseInsensitive(''' + ' %' + StrSearch + ' %' + '''))';
ehLecturer.Expression := StrExpression;
dgLecturer.CaptionText := 'Результаты поиска';
end;
Переменная StrSearchпредназначается для хранения строки-параметра, которую передадим вOCL-запрос. С помощью переменнойStrExpressionбудет формироваться строка, которую передадим дескрипторуehLecturerв качестве выражения. ОперацияsqlLikeCaseInsensitiveиспользуется совместно с операциейSelectи обеспечивает поиск записей, содержащих заданную строку-параметр. При этом применим символ маски поиска (%). В результате запроса будут получены все записи в фамилии, имени или отчестве которых будет встречаться подстрока записанная в переменнуюStrSearch.
Настроим функционирования пунктов главного меню. В обработчике выбора пункта меню Действие > Редактировать запишем операции сохранения текущего объекта Преподаватель в переменную CurLectтипаclLecturerи создания окна Редактирование преподавателя. К форме Редактирование преподавателя подключим форму Преподаватель, в которой уже объявлена переменнаяCurLect. В обработчике выбора пункта меню Действие > Удалить запишем операции удаления текущего объекта Преподаватель, как делали это раньше.
Запустим приложение. Проверим работу поиска и действий с найденными преподавателями (см. Рисунок 10 .84).
Рисунок 10.84 – Поиск и редактирование объектов
- «Технологии разработки программного обеспечения»
- Оглавление
- Введение
- Анализ проблемы. Постановка задачи
- Введение
- Описание примера
- Составление списка заинтересованных лиц
- Анкетирование и проведение интервью
- Список потребностей заинтересованных лиц
- Задания
- Контрольные вопросы
- Моделирование объекта автоматизации
- Введение
- Введение в методологиюAris
- Описание инструментаAris. Начало работы
- Построение организационной модели
- Построение диаграммы цепочек добавленного качества
- ПостроениеeEpCмодели
- Описание объектов автоматизации
- Задания
- Контрольные вопросы
- Разработка модели вариантов использования и их спецификаций
- Введение
- Разработка модели вариантов использования
- Модель вариантов использования
- Построение модели вариантов использования
- Спецификация вариантов использования
- Основной поток
- Альтернативные потоки
- Специальные требования
- Пример спецификации варианта использования
- Алгоритм расчёта рейтингов
- Задания
- Пример написания раздела
- Назначение документа
- Наименование системы
- Сведения о заказчике и исполнителе
- Основания для выполнения работ, сроки и финансирование
- Основные понятия, определения и сокращения
- Актуальность разработки системы
- Назначение и цели создания (развития) системы
- Требования к содержимому раздела
- Пример написания раздела
- Характеристики объекта автоматизации
- Требования к содержимому раздела
- Пример написания раздела
- Организация и планирование научно-исследовательской и инновационной деятельности
- Исполнители научно-исследовательских работ
- Учет и отчетность по научно-исследовательским работам
- Требования к системе
- Требования к содержимому раздела
- Пример написания раздела
- Требования к системе в целом
- Требования к структуре и функционированию системы
- Требования к численности и квалификации персонала
- Требования к функциям (задачам)
- Описание вариантов использования
- Состав и содержание работ по созданию системы
- Требования к содержимому раздела
- Пример написания раздела
- Порядок контроля и приемки системы
- Требования к содержимому раздела
- Пример написания раздела
- Требования к составу и содержанию работ по подготовке объекта автоматизации к вводу системы в действие
- Требования к содержимому раздела
- Пример написания раздела
- Создание служб необходимых для функционирования системы
- Функциональные этапы внедрения системы
- Требования к документированию
- Требования к содержимому раздела
- Пример написания раздела
- Паспорт системы
- Общее описание системы
- Руководство администратора
- Руководство пользователя
- Регламент эксплуатации
- Источники разработки
- Правила оформления
- Задание
- Бизнес-логика
- Объектно-реляционное отображение
- Структура бд
- Создание проекта вBorlandDeveloperStudio
- Добавление нового модуля в проект
- Создание классов с помощью диаграммыUml
- Добавление полей
- Добавление свойств
- Добавление процедуры
- Добавление функции
- Создание отношений между классами
- Ассоциация
- Агрегация
- Наследование
- Пример создания классов
- Создание классов и отношений между ними слоя объектно-реляционного отображения
- Создание классов слоя бизнес-логики
- Невизуальные компоненты интерфейса используемые в примере
- TimageList
- TActionManager
- Визуальные компоненты используемые в примере
- TBitBtn
- TdbGrid
- TcomboBox
- TPageControl
- Пример разработки интерфейса
- Главная форма
- Форма редактирования параметров студента
- Форма редактирования книг
- Форма отображения списка книг
- Подключение классов
- Сохранение проекта
- Задание
- Шаблоны проектирования
- Шаблон InformationExpert(информационный эксперт)
- Преимущества
- Шаблон Creator(создатель)
- Преимущества
- Шаблон LowCoupling(слабое связывание)
- Преимущества
- Шаблон HighCohesion(высокое зацепление)
- Преимущества
- Шаблон Controller(контроллер)
- Преимущества
- Применение шаблонаInformationExpert
- Применение шаблонаCreator
- Использование шаблонаHighCohesion
- Применение шаблонаController
- Задание
- Технология eco
- Язык объектных ограничений ocl
- Mdi-контейнеры
- Создание простого mda-приложения
- Основные этапы разработки приложения
- Обзор возможностей Borland Developer Studio 2006 для разработки mda-приложения
- Создание моделиUml
- Создание бд и настройкаEcOкомпонент
- Создание интерфейса
- Связывание интерфейса с моделью
- Создание логики наOcl
- Задания
- Контрольные вопросы
- РазработкаMda-приложения с использованием машин состояний
- Введение
- Автоматы
- Состояния
- Подавтоматы
- Диаграммы состояний
- Создание mda-приложений с использованием машин состояний
- Модификация модели uml
- Создание машины состояний
- Обновление базы данных
- Модификация пользовательского интерфейса
- Связывание интерфейса с моделью
- Применение автоформ
- Расширение пользовательского интерфейса
- Задания
- Контрольные вопросы
- Расширенные возможности разработкиMda-приложений
- СозданиеMda-приложения с расширенными возможностями
- Модификация моделиUml
- Программное добавление объекта
- Программное удаление объекта
- Программное редактирование объекта
- Работа со справочником
- Поиск объектов
- Задания
- Контрольные вопросы
- Заключение
- Библиографический список