Командой File/Working Directory установим текущий каталог,
выбрав псевдоним Учет в списке Аliases. Займемся созданием таблиц.
Таблица Очередники будет иметь поля: ФИО, № очереди, № приказа, Код организации, Код основания, Дата, Паспортные данные, Число членов семьи, Адрес. Первичными ключами служат поля Код организации и Код основания. Все поля, являются обязательными.
Таблицы Организации и Основания будут иметь ключевые поля (код организации\оснолвания).
Для корректировки и просмотра открытой таблицы имеются команды ТаЫе/Restructure (кнопка Restructure) и ТаЫе/Into Structure. Для переименования таблицы следует сохранить ее под новым именем. Для заполнения и редактирования таблицы, после ее связывания с другими таблицами, испочьзуется кнопка Edit Data и меню Record приложения Database Deskot (кириллицу при вводе использовать нельзя).
Создание модуля данных
Модуль данных содержит объекты, связанные с базой, и используется для централизованного управления этими объектами. Его создание производится командой File/New/Data Module. Имя созданного модуля данных лучше сохранить для наглядности под новым именем, например: DataModulGilj. Разместим компонент Table с панели Data Access на странице Components и выделим его. Зададим свойства:
DataBaseNaine=Ychjt (псевдоним базы), TableName=Oheredniki (имя таблицы), Name=Oheredniki (имя компонента приравняем имени таблицы для наглядности
Active=True (чтобы можно было обращаться к таблице из программы). Аналогично сделаем для трех оставшихся таблиц. Далее разместим компонент Data Source (источник данных) и выделим его. Зададим свойства: DataSet=Ocheredniki (имя таблицы) , Name=SourceOcheredniki (имя компонента).
То же проделаем и с другими таблицами. Получим модуль. Источник данных служит посредником между таблицей базы и экранными формами, что позволяет переходить на другие СУБД, меняя только настройку компонента - источника данных, а не программы. После открытия проекта нужно вызвать этот модуль командой View/Units/Unit2.
Поля в таблице можно использовать как динамические (dynamic) либо как постоянные (persistent). Динамические поля должны быть в таблице, и их можно редактировать. Постоянные поля (виртуальные или псевдополя) могут отсутствовать в таблице, и их значения вычисляются. К имени постоянного поля автоматически добавляется имя компонента Table.
При ссылках на объекты модуля данных объект уточняется именем модуля DataModule2 (DataModule2.SourceOcheredniki).
Рекомендуется для всех полей задавать словесные наименования полей в их свойствах Display Label через редактор полей, которые выводятся в формах и компонентах вместо латинских имен полей.
Рекомендуется модуль базы данных создавать под содержательным именем в папке с базой, включать его в новый проект командой Рroject/Add to project и подключать его к головному или другому модулю командой File/Use Unit.
Создание запросов
Запросы служат для выборки нужных записей и объединения нескольких таблиц в одну. С помощью запросов реализуется реляционный доступ к базе данных, который автоматизирует и унифицирует процедуры доступа к распределенным многопользовательским базам. Для создания запросов используются команды языка структурированных запросов (SQL). Этот язык стандартизован и используется в различных СУБД, что унифицирует доступ к данным В Delphi имеются визуальные средства по формированию команд SQL, это упрощает и ускоряет создание простых запросов и не требует знания деталей использования команд SQL.
Для примера составим запрос, в который включим все поля таблицы очередников и городов. Разместим компоненты Querу (со свойсгвом Асtivе=Тruе), DataSource (со свойствами Namе=SourceBazoviZapros, DataSet=Quегу1) с панели Data Access на странице Соmponents модуля данных форме и выберем команду SQL Builder (построитель запросов), и появится окно построителя запросов
В списке Database выберем базу Uchjt Используя список Таblе, выберем таблицы очередники, города, организации, основания. Мышкой установим связь между этими таблицами по полям NO и КO соответственно Галочкой пометим поля, выводимые в запрос На странице Criteria зададим условия отбора записей.
На странице Sorting задается список полей сортировки в порядке убывания приоритетов Порядок сортировки задается кнопками А..Z (по возрастанию), Z...А (по убыванию)
Для проверки запроса нажмем кнопку Execute Querу. Кнопкой Savе the current query сохраним его в базе под именем ВаzoviZapros, ею можно посмотреть и откорректировав редактором запроса, вызываемого кнопкой Show and Edit SQL.
Для отображения запроса на форме, в редакторе полей дпя объекта Оuегу1 добавим все или отдельные поля запроса. Разместим компонент DBGrid на форме со значением его свойства DataSource, равным DataModule2. SourceBazoviiZapros, сформируем столбцы этой таблицы
Запрос может быть выполнен непосредственно из программы
методами ЕхесSQL, Ехесute или из проводника SQL Ехр1огег, вызываемого командой DataBase/Explore. В проводнике можно набрать текст запроса на странице Епter SQL, выполнить его кнопкой Ехcute Querу и сохрани гь его в текстовом файле командой Оbject/Save As.
Установка связей между таблицами
Имя источника главной (родительской) таблицы, с которой останавливается связь, и имя поля главной таблицы, по которому связывается таблица, задаются в свойствах подчиненной (дочерней) таблицы МаsterSouгсе и МаsterFields соответственно В нашем примере цля таблицы организаций этим свойствам присвоим значения МаsterSouгсе =SourceOcheredniki, Маster,
МаsterFields =KO
Существует визуальный способ установки связей Выберем модуль данных и откроем страницу Data Diagram окна DataModule2 Перенесем последовательно мышкой из проводника этого окна узлы с именами таблиц Ocheredniki, Orgahizacy, Gorod, Osnovany на страницу Data Diagram Щелкните на кнопке Маster Datail Проведите линию при нажатой левой кнопке мыши от таблицы Ocheredniki до таблицы Organizacy; появится окно Field Link Designer. Установите значения для полей и нажмите кнопку Аdd и ОК, связь установлена, и появится линия связи. Аналогично устанавливается связь и остальных таблиц. Объекты схемы данных можно прокомментировать: нажмите кнопку Соттеnt В1осК и щелкните мышкой на свободном месте схеме и в появившемся прямоугольнике введите текст комментария, щелкните по кнопке Соттеnt Аlludе и протяните линию от комментария к нужному объекту.
Мастер форм вызывается командой DataBase/Form Wizard. На первом шаге выбирается тип формы: Сreate a simple form (простая форма), Create a master/detail form (составная форма, состоящая из главной и детальной форм, например: очередники и организации). Выбирается тип источника данных (таблицы или запросы), выбираются таблицы (запросы) и их поля, выводимые в форму. Если форма составная, то указываются поля связи главной и детальной таблицы (в нашем примере - код организации).Выбирается тип формы: вертикальная, горизонтальная или табличная.
Полученную форму можно откорректировать.
Выделяются четыре типа отчетов: простой,
с группировкой данных, связанный отношением "мастер/детальный" и составной, объединяющий несколько отчетов.
Компоненты отчета находятся на панели QReport. Создание отчета обычно начинается с размещения на отдельной форме компонента QuickRep. Он выполняет роль формы, на которой размещаются другие компоненты отчета.
Отчет делится на горизонтальные полосы (разделы). Каждая полоса является отдельным настраиваемым компонентом, тип ее задается в свойствах Ваnds, ВаndТуре компонентов QuickRep, QRBand соответственно. При проектировании отчета можно его просмотреть командой Ргеview контекстного меню. После формирования отчета он просматривается в окне предварительного просмотра, вызываемого методом Ргеview, или выводится на печать методом Ргint. Можно создать отдельное окно предварительного просмотра, используя компонент QRPreview. Рекомендуется для отчета выделять отдельную невидимую форму.
Пользователь может воспользоваться готовыми заготовками (шаблонами) отчетов, если выполнит команды File/New/Forms. Имеются три шаблона: Quick Report Master/Detail (отчет из главной и подчиненной таблицы), Quick Report Labels (почтовые этикетки),Quick Report List (опись). Можно воспользоваться мастером отчета, который вызывается командой File/New /Виziness/ Quick Report Wizard. Используемые заготовки или отчет, полученный мастером, можно откорректировать.
Сочетание возможностей быстрого прототипирования приложений с технологиями уровня предприятия обеспечивает плавное и предсказуемое развитие проектов любого масштаба. Следование стандартам индустрии и открытость к взаимодействию с любыми частными решениями гарантирует успех проектов, разрабатываемых с использованием Delphi.