Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 16.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.35 Mб
Скачать

Var Align: thtmlAlign; var vAlign: thtmlvAlign; var CustomAttrs,

CellData: String); begin if CellColumn > 2

then CellData := '<Font size=6>' + CellData + '</Font>'; if Length(CellData) > 2

then CellData := '<b>' + CellData + '</b>' if CellRow > 5 BgColor:='silver'; end;

end.

Инициализация наборов данных Table1 и Queryl осуществляется в процедуре FormCreate. Псевдоним Authors используется для связи набора данных Queryl с БД, входящей в состав учебника по ASP-страницам, устанавливаемого вместе с операционной системой Windows 2000 Server. Этот псевдоним необходимо создать самостоятельно с помощью Администратора источников данных ODBC, установив связь псевдонима Authors с указанной БД. Напомним, что названный Администратор входит в состав утилит Панели управления операционной сис­темы.

Для формирования HTML-документа с использованием компонента PageProducer используется кнопка GenPageProducer. Вид полученного HTML-документа в ок­не браузера показан на рис. 16.5.

Рис. 16.5. HTML-страница, сгенерированная с помощью

компонента PageProducer

HTML-страница содержит статический текст, состоящий из имени таблицы БД и строки с обозначением текущего времени. Страница формируется при вызове метода content, при этом генерируется событие опнтмьтад и выполняется его обработчик (процедура pageProducerlHTMLTag). В коде обработчика происходит замена тегов-транспарантов на значения имени таблицы БД и текущего време­ни, осуществляемая на основании анализа шаблона HTML-документа:

if TagString = 'dbname'

then ReplaceText := Tablel.TableName

else if TagString = 'date' then ReplaceText := DateToStr (Date) ;

Здесь параметр TagString обработчика задает имя тега, при обработке которого произошло событие опнтмьтад, а параметр ReplaceText содержит текст, на кото­рый заменяется тег.

Формирование HTML-документа с использованием компонента DataSetPageProducer, обращающегося К данным компонента Tablel, происхо­дит при нажатии кнопки GenDataSetPageProducer. Вид полученного HTML-документа в окне браузера показан на рис. 16.6.

Рис. 16.6. HTML-страница, полученная с использованием

компонента DataSetPageProducer

На этой странице выводится информация из первой записи БД. Для установки указателя на первую запись используется метод First набора данных Tablei.

В процессе генерации HTML-документа возникает событие опнтмътад. Обра­ботчик этого события для компонента DataSetTableProducer в основном совпа­дает с обработчиком аналогичного события рассмотренного выше компонента PageProducer, однако замена специальных тегов, имеющих имена, совпадающие с названием соответствующих полей таблицы БД, на значения этих полей про­изводится автоматически.

Для формирования HTML-документа с помощью компонента DataSetTableProducer используется кнопка GenTabieProducer. Вид полученного HTML-документа в окне браузера показан на рис. 16.7.

Показанный HTML-документ содержит данные таблицы БД, находящиеся в файле Animals.dbf. Формирование документа выполняется вызовом метода Content компонента DataSetTableProducer. При генерации HTML-документа используются параметры, установленные в Редакторе колонок. При форматиро­вании каждой ячейки таблицы возникает событие OnFormatceli, в обработчике которого производится редактирование параметров отображения.

Рис. 16.7. HTML-страница, полученная с использованием

компонента DataSetTableProducer

В рассматриваемом примере редактирование заключается в следующем:

  • установка шестого размера шрифта для ячеек четвертого и следующих столб­цов таблицы:

CellData := '<Font size=6>' + CellData +.'</Font>' ;

  • установка полужирного шрифта для ячеек, размер содержимого которых превышает 2:

CellData := '<b>' + CellData + '</b>'

  • задание для строк, начиная с 6, серебристого цвета фона:

BgColor:='silver';

Для формирования HTML-документа с помощью компонента QueryTabieProducer используется кнопка GenQueryTableProducer. Компонент QueryTabieProducer ОТ-личается от DataSetTableProducer тем, что для получения данных применяется набор данных Query, а не Table. Вид сгенерированного HTML-документа в окне браузера показан на рис. 16.8.

В приведенном HTML-документе содержатся записи из таблицы Authors, отбор которых обеспечивает компонент Queryl. Его SQL-запрос выбирает записи, для которых значение года превышает I960.

Рис. 16.8. HTML-страница, полученная с использованием

Компонента QueryTabieProducer

Перейдем теперь к описанию динамической публикации, которая, как уже го­ворилось, используется для БД, обновляемых в реальном масштабе времени. Примером таких БД являются интернет-магазины, информационные системы в крупных сетях интранет и т. д.