4. Активизируется форма «ОТЧЕТ». На ней размещается компонент QuickRep со страницы Qreport. В свойстве DataSet (набор данных) выбирается таблица с соответствующими данными или запрос.
5. В пункте свойства Bands (полосы) необходимо определить параметры:
Ø В свойстве HasTitle устанавливается значение True и в появившейся полосе размещается компонент QRLabel со страницы Qreport со свойством Caption «Полный отчет».
Ø
В свойстве HasColumnHeader устанавливается значение True и в появившейся полосе размещается такое количество компонентов QRLabel, которое соответствует количеству полей в талице БД. Свойства Caption для этих меток содержат названия полей таблицы.
Ø На форме так же можно разместить кнопку с названием «Предварительный просмотр», а в процедуру для нее разместить текст:
Quickrep1.Preview; тогда при запуске программы можно контролировать процесс разработки отчета.
Ø Для дальнейшей разработки необходимо вернуться к форме «ОТЧЕТ» и в свойстве HasDetail установить параметр True. В образовавшейся строке, разместить такое количество компонентов RQDBText со страницы Qreport, которое соответствует количеству компонентов QRLabel. Для каждого компонента RQDBText в свойстве DataSet выбрать имя таблицы или запроса по которому составляется отчет, а в свойстве DataField прописать имя соответствующего поля.
Ø Сохранив все изменения можно посмотреть полученный отчет в процессе работы программы.
Ø Для того чтобы сразу попасть в режим просмотра отчета необходимо в код кнопки «отчет» внести команду:
Form2. Quickrep1.Preview;
Ø Оформление отчета производится установкой параметров свойства Font
Контрольные вопросы:
1. Понятие отчета.
2. Виды отчетов.
3. Компоненты, используемые для создания отчета и их свойства.
Лабораторная работа № 5.
Создание многотабличной базы данных в среде Delphi.
Цель работы:
Образовательные:
- Изучить принципы работы с многотабличными базами данных в среде Borland Delphi;
- научиться создавать простые приложения для работы с БД;
- рассмотрение правил организации просмотра, редактирования данных различных типов многотабличной базы данных.
Воспитательные:
- развитие навыков самостоятельного мышления;
- выработка умений использовать справочные материалы для решения практических задач;
- формирование практических навыков при работе с ЭВМ.
Оборудование и оснащение работы:
Текст лабораторной работы; справочные материалы (типы данных БД различных форматов), ЭВМ.
Теоретический материал:
Формирование взаимосвязей между таблицами определяется на двух уровнях: на уровне структуры таблиц через утилиту Database Desktop и на уровне настройки компонентов таблиц данных определяя связываемые поля. При связывании таблиц необходимым условием является организация контроля целостности данных и связей.
В настоящий момент большое внимание уделяется возможности представления данных БД не традиционных типов: графика, текст, аудио - и видеоинформация. Подобный тип данных возможно реализовать и в среде Delphi. В большинстве случаев данные такого типа представляются отдельными файлами и доступ к ним производится при активизации соответствующей записи баз данных. В ячейках, соответствующих такому типу формируется путь к файлу с конкретным значением (или другому источнику, где физически располагается значение).
Задача: Необходимо создать приложение, предназначенное для учета продаваемых в магазине товаров. База данных состоит из двух таблиц: “ТОВАРЫ” и “ПРОДАЖИ ТОВАРОВ” заданной структуры.
Ход работы:
Создание таблиц
Структура таблицы данных “ТОВАРЫ” дана в таблице 1.
Таблица 1 Структура таблицы “ТОВАРЫ”
Идентификатор поля | Наименование | Тип | Длина |
NameGoods | Наименование товара | Строка | 20 |
TypeGoods | Тип товара | Строка | 16 |
Ed | Единица измерения | Строка | 12 |
Guarantee | Гарантия (лет) | Целочисленный | |
PriceEd | Стоимость единицы | Число с плавающей точкой | |
Note* | Примечание | Строка более 255 симв. | |
Image* | Изображение | Изображение |
Структура данных таблицы “ПРОДАЖИ ТОВАРОВ” - в таблице 2.
Таблица 2. Структура таблицы “ПРОДАЖА ТОВАРОВ”
Идентификатор поля | Наименование | Тип | Длина |
Code | Номер квитанции | Авто инкремент | |
DateSate | Дата продажи | Дата | |
NameGoods | Наименование товара | Строка | 20 |
Amount | Количество | Целочисленный |

Для создания таблиц БД нужно выбрать тип создаваемой таблицы - Paradox. В таблице “ТОВАРЫ” первичный ключ построить по полю NameGoods, а в таблице “ПРОДАЖИ ТОВАРОВ” – по полю Code.
Для реализации ссылочной целостности между таблицами в таблице “ПРОДАЖИ ТОВАРОВ” внешний ключ построить по полю NameGoods. Для сортировки записей при их выводе, в таблице “ТОВАРЫ” необходимо построить индексы по полям NameGoods, TypeGoods, PriceEd, Guarantee.
Рисунки показывают вид окна при создании структур таблиц
«Товары» и «Продажа товаров»
Для создания или изменения вторичного индекса необходимо в таблице Tovari в списке Table properties выбрать строку Secondary Indexes. Чтобы определить новый индекс нужно нажать кнопку Define. В появившемся диалоговом окне в поле Fields содержится список полей определяемой таблицы. Поле Indexed Field предназначено для хранения полей, входящих в создаваемый индекс.
Задаются условия ссылочной целостности между данными таблиц. Ссылочная целостность в Paradox определяет, во-первых, связь между таблицами, а во-вторых, вид каскадных воздействий.
Открывается таблица Sendtovari. db (элемент меню File – Table - Open) и затем выбирается режим изменения структуры таблицы {Table \ Restructure). В выпадающем списке Table Properties выберается элемент Refеrential Integrity и нажимается кнопка Define. В появившемся диалоговом окне (см рис. ) в списке Fields показаны поля таблицы Sendtovari. db, а в списке Tables - таблицы базы данных. Сначала указывается поле связи для дочерней таблицы Sendtovari. db: выбором в списке Fields поля NameGoods и нажимается кнопка с изображением стрелки вправо.
Название NameGoods будет записано в поле Child Fields -(поле внешнего ключа дочерней таблицы.
В списке Tables выбирается таблица Tovari. db и нажимается кнопка с изображением стрелки влево. В поле Parents Key (ключ родительской таблицы) будут показаны поля из первичного ключа таблицы Tovari. В данном случае это поле NameGoods.
Переключатели Update rules определяют вид каскадных воздействий на таблицу Sendtovari при изменении значения поля связи в таблице Tovari или при удалении в ней записи:
• Cascade - разрешены каскадные изменения и удаления подчиненных записей в дочерней таблице;
• Prohibit - запрещены изменения полей связи или удаление записи в родительской таблице, если для данной записи есть связанные записи в дочерней таблице.
Фиксируется Cascade; DBD запросит имя ссылочной целостности (в базах данных формата Paradox каждое условие ссылочной целостности именуется). Определяется имя, например Tovari_Prihod_Integrity. Теперь имя новой ссылочной целостности будет помещено в список.
Сохраняются изменения в таблице Sendtovari (кнопка Save) и заново в режим реструктуризации (Table | Restructure). В выпадающем списке Table properties выберите элемент Secondary Indexes (индексы таблицы, кроме индекса, построенного по определению первичного ключа). В списке индексов пропишется новый индекс с именем NameGoods. Этот индекс построен автоматически по неявному определению внешнего ключа при создании ссылочной целостности.
После указания необходимых параметров осуществляется выход из режима реструктуризации (кнопка Cancel) .
Создание приложения согласно исходному заданию.
Для разработки главной формы просмотра данных связанных таблиц необходимо:
- вставьте в форму по два компонента TTable, TdataSource, TDBGrid, TDBNavigator а также по одному компоненту DBImage, DBMemo, SaveDialog, OpenPictureDialog, OpenDialog и три компонента TBitBtn.
Далее определяются следующие изменения свойств этих объектов в инспекторе объектов:
1) Для объекта DataSource1:
- свойству Name присвоим значение DS_Tovari;
- свойству DataSet присвоим значение TableTovari.
2) Для объекта DataSource2:
- свойству Name присвоим значение DS_Sendtovari;
- свойству DataSet присвоим значение TableSendtovari.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 |


