
- •1. Компоненты, используемые при разработке Web-приложений
- •2. Статическая публикация
- •3. Компоненты генерации html-страниц
- •3.1. Компонент PageProducer
- •3.2. Компонент DataSetPageProducer
- •3.3. Компонент DataSetTableProducer
- •Var Align: thtmlAlign; var vAlign: thtmlvAlign; var CustomAttrs,
- •3.4. Компонент QueryTableProducer
- •3.5. Пример генератора html-страниц
- •Var ReplaceText; String); procedure PageProducerlHtmlTag(Sender: tObject; Tag: tTag;
- •Var ReplaceText: String); procedure DataSetTableProducerlFormatCell(Sender: tObject; CellRow,
- •Var Align: thtmlAlign; var vAlign: thtmlvAlign; var CustomAttrs, f
- •Var Align: thtmlAlign; var vAlign: thtmlvAlign; var CustomAttrs,
- •4. Динамическая публикация
- •4.1. Создание модуля cgi
- •II:integer;
- •Var I: integer;
- •Var I: integer;
- •Var I: integer;
- •4.2. Создание isapi-модуля расширения сервера
- •4.3. Обработка ввода пользователя в модуле isapi
- •5. Публикация графики
- •Interface
- •Var Align: thtmlAlign; var vAlign: thtmlvAlign; var CustomAttrs,
- •6. Использование интерфейса ado
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
Перейдем теперь к описанию динамической публикации, которая, как уже говорилось, используется для БД, обновляемых в реальном масштабе времени. Примером таких БД являются интернет-магазины, информационные системы в крупных сетях интранет и т. д.