Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИОСУ.doc
Скачиваний:
33
Добавлен:
19.03.2015
Размер:
14.55 Mб
Скачать

49. Навигация по набору данных. Использование визуального компонента tdbNavigator.

TDBNavigator - навигатор, позволяющий пользователю перемещаться по записям набора данных, редактировать данные и пересылать их в базу данных.

Компонент имеет ряд кнопок, служащих для управления данными. Перечислим их названия и назначение, начиная с левой кнопки:

nbFirst

Перемещение к первой записи

nbPrior

Перемещение к предыдущей записи

nbNext

Перемещение к следующей записи

nbLast

Перемещение к последней записи

nbInsert

вставить новую запись перед текущей

nbDelete

удалить текущую запись

nbEdit

Редактировать текущую запись

nbPost

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

nbCancel

отменить результаты редактирования или добавления новой записи

nbRefresh

очистить буфер, связанный с набором данных

Лучше всего подходит для работы с отдельной записью или полем. По умолчанию все кнопки видимы. Видимость кнопок определяется свойством VisibleButton:TButtonSet. МетодButtonClick(Index:TNavigateButton) служит для имитации нажатия кнопок, заданных параметромIndex. СвойствоHuntsсоздает подсказку для каждой кнопки. Если использовать один компонентNavigatorдля нескольких наборов, то связывать набор иTDBNavigatorнеобходимо через свойствоDataSource.

Procedure TForm1.dbgZakazEnter(…);

begin

DBNavigator1.DataSource:=dsZakaz;

end;

50. Создание поля просмотра и вычисляемого поля. Основные проблемы и пути их решения.

Создание вычисляемого поля. После выбора Calculated необходимо создать обработчик события onCalcFields типа TDataSetNotifyEvents, в котором данному полю присваивается требуемое значение. В выражении имени вычисляемого поля могут входить другие поля, переменные и константы. Событие onCalcFields генерируется каждый раз при считывании записи из таблицы и при изменении значения вычисляемого поля, если свойство AutoCalcFields установлено в true.

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

Procedure TForm1.Param_ZakazCalcFields(…);

begin

Param_Zakaz.Value:=Param_ZakazKolichestvo.Value*Param_ZakazCena.Value;

end;

Создание поля просмотра. Нужно, если надо использовать значение из аналогичного поля из другого набора данных. Как и при создании вычисляемого поля, необходимо определить общие свойства этого поля и на панели FieldsType поставить флаг около значения LookUp. Затем станет доступна панель LookUpDefinition, где необходимо выполнить настройки поля KeyFields – поля, где содержится список, построенный на основании значения поля LookUpKeys; DataSet – поле, в которое заносится имя таблицы; ResultField – поле, содержащее имя вновь создаваемого поля.

51. Разработка отчетов с помощью средства Quick Report.

Центральным компонентом для построения отчетов является компонент TQuickRep. он определяет поведение отчета в целом и с помощью него создаются составные части отчета. КомпонентTQRBand– заготовка для расположения данных, заголовков и в основном он строится из компонентов, входящих вTQRBand. Этот компонент позволяет создать область заголовка отчета, заголовка страницы, заголовка группы, область названия столбцов отчета, область детальных данных для отображения данных нижнего уровня детализации. Позволяет создавать подвал группы, страницы и отчета.

TQRGroupиспользуется для группировки данных в отчете.

TQRLabel– размещает текстовые строки.

TQRDBText– выводит в отчет текстовые поля набора данных.

Для разработки отчета достаточно присутствия двух компонентов: TQuickRepиTQRBand.TQuickRepразмещает на форме сетку отчета, в которой в дальнейшем размещаются составные части отчета с помощьюTQRBand. Для работы по созданию отчета уTQRBandнадо установить свойства:

DataSet– указывает набор данных, на основе которого будет создаваться отчет, но если необходимо вывести информацию из нескольких таблиц БД, ее объединяют в один набор данных с помощью компонентаTQuery. Информацию из нескольких наборов данных можно включить в отчет, если они связаны отношением главный-подчиненный, тогда в качестве набора данных указывается главный, а ссылка на подчиненный осуществляется в компонентеTQRSubDetail.

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

Свойство Bands– составное, объекты свойства имеют логический тип.

Заголовок столбцов можно установить с помощью значения HasColumnHeader. Детализацию информации определяют черезHasDetail.HasPageFouter– позволяет создать подвал страницы.HasPageHeader– позволяет создать заголовок страницы.HasSummary– подвал отчета.HasType- заголовок отчета.

Свойство Frame– определяет параметры рамки отчета.

Свойство Page– определяет параметры страницы отчета.

Для формирования имени отчета необходимо использовать свойство ReportTitle. Для отображения различных частей отчета используется компонентTQRBand, на котором можно разместить такие объекты какTQRTable,TQRTextи др.

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

Для работы с отчетом необходимо произвести предварительный просмотр отчета для его оценки, для этого можно использовать обработчик события onActiveформы:

Procedure TForm1.FormActivate(…);

begin

QuickRep1.Preview;

end;

Для закрытия используется:

Procedure TForm1.QuickRep1.AfterPreview(…);

begin

Form1.Close;

end;