Второй учебный non-code проект также, как и первый, будет на библиотечную тему, но теперь мы будем хранить сведения о книгах, авторах и жанрах, что позволит нам использовать знания о реляционных базах данных и сведения о возможностях редактора MVDB.

Требования заказчика

Цели и задачи

Организация учета книг библиотеки. Хранения сведений о названии книги, авторе и жанре.

Среда выполнения

Windows 7 и старше

СУБД

Бесплатная и простая

Количество пользователей

Один

Входные данные

Автор: фамилия и инициалы.

Жанр: название

Книга: автор, жанр, название, краткое содержание.

Выходные данные

Табличное отображение сведений о книгах.

Процесс обработки

Быстрый ввод данных в таблицу. Поиск книг по названию, автору и краткому содержанию.

Дополнительные требования

Максимально простая реализация

Проектирование

📝 В проектирование входит анализ требований заказчика, выбор СУБД, проектирование структуры данных и ведение проектной документации.

В нашем втором проекте главным требованием будет простота реализации в сочетании с функциональностью и соответствию с правилами нормализации баз данных.

Нам понадобится три таблицы для хранения информации о трёх различных сущностях: авторе, жанре и книге. Так как это наш второй проект, то на основании полученного опыта можно сразу определить не только состав сущностей и их атрибутов, но и типы данных, которые потребуются для их реализации:

Автор

  • Имя – текст, фамилия и инициалы.

Жанр

  • Название – текст

Книга

  • Автор – ссылка на автора
  • Название – текст
  • Жанр – ссылка на жанр
  • Краткое содержание – текст

🔨 Внесите данную информацию в проектную документацию.

Исходя из описаний СУБД, которые можно найти в разделе “Обзор возможностей My Visual Database“, лучше использовать SQLite – простую встраиваемую СУБД.

Необходимая базовая информация о структуре хранения и типах данных находится в разделе “Обзор возможностей My Visual Database“.

Создание таблиц БД

📝 Механика создания таблиц и полей подробно рассмотрена в первом проекте.

🔨 Создайте три таблицы:

  • author – автор
  • genre – жанр
  • book – книга

Добавьте необходимые поля:

☝ Обратите внимание, что все поля, за исключением поля summary (краткое содержание) являются обязательными.

Создание обязательных полей является хорошей практикой, так как в этом случае контроль за вводом данных возлагается на систему, которая будет напоминать вам о необходимости заполнить все необходимые поля. Но все-же приоритет должна иметь бизнес-логика, которая в данном случае основана на том, что краткое содержание является дополнительной информацией, в отличии от сведений о названии, авторе и жанре книги.

Форма

Так как наше приложение должно отвечать требованиям минимализма, то все элементы интерфейса будут располагаться на одной единственной форме, которая создается автоматически.

📝 Базовую информацию о форме и её свойствах можно найти в первом проекте.

🔨 Установите свойства name, caption и sizeable у главной формы. Установите оптимальный размер формы перетягиванием края в окне визуального редактирования или задав свойства width и height.

Таблицы интерфейса

🔨 Создайте на главной форме для каждой из таблиц БД таблицу для отображения и редактирования данных.

Для каждой таблицы выполните настройки (свойство settings) для подключения данных, также настройте свойства anchors таким образом, чтобы при изменении размера формы таблицы растягивались и заполняли пространство формы. Для активации редактирования настройте свойства в группе Editable.

📝 Методика настройки таблицы подробно описана в первом проекте.

Простой поиск

Если вы внимательно читали Требования заказчика, до должны были обратить внимание на то, что необходимо реализовать поиск данных. Хорошая новость состоит в том, что такой поиск уже реализован на уровне визуального компонента отображения табличных данных.

📝 Чтобы воспользоваться поиском, необходимо кликнуть правой кнопкой мыши, чтобы вызвать контекстное меню, и выбрать пункт “Найти”.

В появившемся окне вы можете ввести текст, который будет искаться во всех ячейках таблицы. При нахождении совпадений нужная ячейка будет выделяться, а содержимое таблицы прокручиваться. Поиск может идти с учетом регистра.

Подведение итогов

За несколько минут вы создали ещё одно приложение, закрепив на практике создание нескольких связанных таблиц в базе данных и настроив соответствующие визуальные компоненты.

☝ При редактировании в табличном представлении ссылочных данных появляется выпадающий список. Это хорошо работает, если выбираемых значений немного, но если для выбора нужного элемента вам придется несколько раз прокручивать этот самый список, то вы вскоре задумаетесь о том, как сделать ввод данных более удобным.

Ещё одной проблемой редактирования данных непосредственно в таблице является тот факт, что обновление выпадающего списка для редактирования ссылочных значений производится только при обновлении редактируемой таблицы.

То есть, если вы добавили нового автора, то вы не сможете сразу выбрать его для ввода книги – необходимо либо отредактировать таблицу “Книги”, либо перезапустить приложение.

При реальном использовании программы вы быстро обнаружите, что некоторые ваши книги имеют нескольких авторов. С жанрами такая же история – одну книгу можно отнести к нескольким жанрам одновременно.

Хотя приложение было создано очень быстро, у него много недостатков: нет возможности вводить нескольких авторов или жанров у одной книги, нагромождение таблиц на одной форме, отсутствие фильтрации данных. И, чтобы двигаться дальше, необходимо тщательно изучить все свойства компонентов “Форма” и “Таблица”, а затем добавить в свой арсенал ещё один мощнейший компонент MVDB: “Волшебную кнопку”.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *