Web Creation - еженедельный сетевой журнал для вебмастеров

   
Красивые отчеты

Авторы: Владимир Рафалович,
Иван Закарян
Информация взята с сайта

Создание Web-страниц, связанных с базами данных, обычно требует от программиста значительных усилий. Но даже тогда, когда все коды написаны и запросы к серверу готовы, все еще остается проблема вывода данных на экран броузера. Язык HTML довольно ограничен в представлении данных в презентабельном виде. Один из вариантов преодоления этого ограничения и рассмотрен в нашей статье. Мы опишем способ отображения в броузере документов-отчетов, созданных средствами СУБД MS Access. Следует сразу отметить, что изложенное ниже относится пока лишь к одному броузеру Microsoft Internet Explorer, так как в настоящее время только в нем поддерживается технология ActiveX.

Идея метода такова. Сначала с помощью встроенных инструментов ACCESS создается отчет. Затем он сохраняется как отдельный файл в специальном формате. Такую возможность обеспечивает недавно выпущенный компанией MICROSOFT сервис-пакет. Далее сохраненный отчет можно выложить на WEB-сервер и просмотреть с помощью Internet EXPLORER, имеющего специальный ACTIVEX-модуль. Этот модуль единственный раз загружается на компьютер клиента с сервера при первом обращении к соответствующему документу.

Для реализации описанного метода разработчику необходимо иметь ACCESS 97 или старше. А кроме того, две дополнительные программы, доступные на WEB-сайте компании MICROSOFT, - MICROSOFT OFFICE 97 SERVICE RELEASE 1 и SNAPSHOT VIEWER KIT. Первая из указанных программ после инсталляции даст возможность ACCESS сохранять отчеты в специальном формате в виде отдельных компактных файлов с расширением .SNP (от английского "SNAPSHOT" - копия, фотография). Дистрибутив этой программы находится по адресу: www.microsoft.com/office/office97/servicerelease. Второй комплект включает в себя программу для просмотра snp-файлов на локальном компьютере, activex-файл, загружаемый броузером в качестве расширения, и help-файлы. Этот комплект можно найти по адресу: www.microsoft.com/accessdev/prodinfo/snapshot.htm. Детальное описание программы с примерами использования содержится в help-файлах.

Как воспользоваться новыми возможностями? Например, с помощью CGI-программы, которая по запросу пользователя обратится к базе данных, получит SNP-файл и покажет его пользователю в окне броузера. К сожалению, этот подход применим не всегда, так как CУБД MS ACCESS вполне удовлетворительно работает, когда количество пользователей, обращающихся к ней одновременно, не превышает 3-5 человек. Однако следует заметить, что во многих случаях такого он-лайн - отображения - не требуется, достаточно иметь на WEB-сервере готовые, периодически обновляемые документы.

Рассмотрим, как это может быть организовано практически. Начнем с создания базы данных, которая, к примеру, содержит информацию о результатах текущего тура чемпионата России по футболу. Для простоты заведем одну таблицу с данными по 16 командам. Содержание таблицы будет меняться от тура к туру, следовательно, и документы на WEB-сервере должны обновляться с такой же периодичностью.

После того как таблица создана и данные по текущему туру введены, мы можем сформировать отчет. Если вы уже установили MICROSOFT OFFICE 97 SERVICE RELEASE 1, то в ACCESS в меню FILE | SAVE AS/EXPORT имеется возможность сохранить отчет в SNP-формате.

Теперь надо поместить полученный файл на WEB-сервере и сделать на него ссылку из HTML-файла, например, как здесь:

<HTML>
<HEAD>
<TITLE>ACCESS PRO REPORT</TITLE>
</HEAD>
<OBJECT ID="SNAPSHOTVIEWER" WIDTH=800 HEIGHT=480
CODEBASE="SNAPVIEW.OCX" CLASSID="CLSID:F0E42D60-
368C-11D0-AD81-00A0C90DC8D9">
<PARAM NAME="_EXTENTX" VALUE="16722">
<PARAM NAME="_EXTENTY" VALUE="11774">
<PARAM NAME="_VERSION" VALUE="65536">
<PARAM NAME="SNAPSHOTPATH" VALUE="TEAMS.SNP">
<PARAM NAME="ZOOM" VALUE="0">
<PARAM NAME="ALLOWCONTEXTMENU" VALUE="-1">
<PARAM NAME="SHOWNAVIGATIONBUTTONS" VALUE="-1">
</OBJECT>
</HTML>

В результате просмотра этого HTML-файла в броузере вы получите изображение, показанное на рис. 1. Несложно заметить, что оно полностью совпадает с внешним видом обычного отчета MS ACCESS.

Значение CLASSID очень важно, и его следует написать без ошибок. Параметр CODEBASE необходим так же, как при любом обращении к ACTIVEX-компонентам. Здесь указывается название OCX-файла, который будет загружаться броузером клиента при первом обращении к SNP-документу. Поэтому файл SNAPVIEW.OCX целесообразно расположить в одной директории с HTML-файлом. Разумеется, он может находиться и в другой директории, но тогда необходимо указать путь к нему (например, CODEBASE="/CONTROLS/SNAPVIEW.OCX").

Обычно при использовании ACTIVEX из HTML-файла делается ссылка на так называемый CAB-файл, а не на сам OCX-модуль. Однако в нашем случае требуется всего один модуль, поэтому нет необходимости в дополнительных ссылках. Другой аспект, на котором хотелось бы остановиться, - безопасность. Поскольку модуль создан компанией MICROSOFT, вам не следует опасаться, что он нанесет вред вашему компьютеру. Если пользователь не сможет загрузить модуль в свой броузер, получив предупреждение о безопасности, необходимо изменить настройку броузера и установить более низкий уровень безопасности.

Другими важными параметрами являются WIDTH и HEIGHT, которые определяют размер изображения отчета. Параметр SNAPSHOTPATH определяет расположение самого SNP-файла. В нашем случае файл TEAMS.SNP и HTML-файл расположены в одной директории.

Три последних параметра определяют возможности пользователя по управлению отображением отчета непосредственно в окне броузера. В качестве значений они могут иметь два значения: 0 и -1. Если для параметра "ZOOM" выбирается значение -1, то отчет в своем начальном состоянии будет свернут. Выбор -1 для значения параметра SHOWNAVIGATIONBUTTON позволяет отобразить кнопки управления отчетом (см. рис. 2). Важно отметить принципиальное отличие кнопки PRINT в окне отчета от кнопки PRINT самого броузера. Последняя выдает на печать всю WEB-страницу целиком с указанием множества дополнительных параметров (URL, например) и, как составляющую, включает окно ACTIVEX с отчетом, который в зависимости от выбранного масштаба может не поместиться в этом окне целиком. Кнопка PRINT в окне отчета, показанная на рис. 2, позволяет распечатать отчет как таковой.

Если для параметра ALLOWCONTEXTMENU выбрано значение -1, то это добавит к окну всплывающее (POPUP) меню, которое представляет собой альтернативный способ управления отображением отчета.

Когда значения данных в базе изменятся, файл TEAMS.SNP на WEB-сервере будет необходимо обновить. Этот процесс не сложно автоматизировать, например, средствами VISUAL BASIC, сведя все манипуляции к нажатию одной кнопки.

Авторы благодарят читателей за интерес и надеются, что время, потраченное на чтение статьи, не будет бесполезным.

Авторы: Владимир Рафалович,
Иван Закарян
Информация взята с сайта

 

© журнал принадлежит Web Creation
по всем вопросам обращаться А. Кузьмин