Использование преимуществ клиент-серверной архитектуры при проектировании приложений БД в Delphi, страница 4

Оставшиеся 10%  ошибок обусловлены невозможностью выполнить запрос по причине нарушения сущностной и ссылочной целостности, уникальности ключей, отсутствия у пользователя доступа к запрашиваемым таблицам и пр. 

Напоследок рассмотрим несколько тонких настроек компонента DBGrid. Для их осуществления в инспекторе объектов  у данного компонента необходимо развернуть ветвь свойств Options. весьма привлекательное для выделения строк целиком  и  добавления их в учебный план свойство TdbGrid.Options.dbRowSelect, установленное в true автоматически переводит компонент в режим  «Только чтение». При обратной установке в False автоматического перехода в режим чтение-запись не происходит! нужно  вручную менять свойство TdbGrid.Options.dbEditing

Еще одна интересная возможность DBGrid'a касается отдельно каждой из его колонок. Им можно ставить в соответствие списки допустимых значений. Дважды щелкните по DBGrid, отображающему дисциплины и в открывшемся окне колонок выберите колонку «Kafedra», в инспекторе объектов найдите свойство PickList, дважды щелкните слева от него мышью и добавьте в список названия кафедр. То же самое можно сделать с DBGrid, отображающим успеваемость в отношении колонок «Форма отчетности» и «Оценка». О том каким образом заполнять данные списки динамически, во время выполнения программы, предлагается подумать самостоятельно.


Лабораторная работа № 5.

Создание отчетов к БД в Delphi.

Отчеты БД – это  бумажные документы, формируемые программой работы с БД. Отчет является конечным результатом работы с БД. Данные, содержащиеся в отчете, являются выходной информацией  информационной системы. Как правило, эти данные отформатированы в соответствии с требованиями международных, государственных, межотраслевых и отраслевых стандартов, стандартов предприятия и т.п.

Для создания отчетов в Delphi традиционно использовались  либо стандартные  компоненты Delphi, расположенные на странице QReport,  либо компоненты сторонних производителей – компоненты семейств RaveReport и FastReport. Стандартные компоненты имеют один существенный недостаток: отчеты, формируемые с их помощью, имеют свой собственный формат, который «не понимают» программы Microsoft Word и Excel.  Отчеты такого типа можно экспортировать во внешние файлы типов   *.txt (при этом, разумеется, почти все форматирования теряются) и *.html (качество html –кода также оставляет желать лучшего).  Компоненты семейств RaveReport и FastReport способны экспортировать отчет в файл типа *.rtf , распознаваемый подавляющим большинством текстовых процессоров. К сожалению, лицензионные ограничения Turbo Delphi не допускают установки этих компонентов, страница Qreport также отсутствует.

С приемами создания отчетов средствами компонентов FastReport можно познакомиться ниже.

Здесь же мы рассмотрим радикально отличающийся способ создания отчетов – генерация *.doc, *.rtf, *.html файлов вручную. Для первых двух форматов требуется использовать компоненты TWordApplication и TWordDocument  закладки Servers палитры компонентов (главный недостаток, в том, что надо знать не меньше чем десятка полтора свойств этих компонентов и их методов). Для ручного формирования *.html документа достаточно знать только три-четыре функции работы с файлами, одну API функцию Windows и, разумеется, основные тэги языка разметки гипертекста - html.  При примерно одинаковых затратах времени на написание программного кода по этим двум вариантам, вариант с html выполняется на порядок быстрее, чем формирование *.doc или *.rtf файла. Рассмотрим программный код, формирующий такой отчет как «Экзаменационная ведомость» в формате *.html.

Добавим на главной форме кнопку «Экзаменационная ведомость», два компонента CheckBox для управления настройками отчета при распечатке.  В обработчике нажатия кнопки напишем следующий код: