Сегодня в выпуске: Совмещая Site Creator и Report Builder. Изпользование для генерации документов. Мнения Приложения на стыке Visual FoxPro + IE
Совмещая Site Creator и Report Builder Представим такую задачу: Вам необходимо разместить на странице список сотрудников, находящихся в некой таблице primer.dbf (с полями fio (c,50)
- фамилия сотрудника, doljn (c,50) - должность, opis (m) - примечания по сотруднику). Это может быть и таблица базы данных (MSSQL,MySql,- в общем любая, для доступа к которой есть ODBC), файл xls или txt, и т.п.
То, что вручную это делаться не будет - отметаем сразу, слишком долго, да и таблица меняется достаточно часто. Site Creator позволяет на странице контента разместить код Visual FoxPro, почему бы этим не воспользоваться?
Первый вариант: написать
программу на FoxPro, которая и сформирует таблицу для размещения,
`*[foxpro] * создание среды. Здесь может быть размещен запрос к нужной Вам базе данных local sele_,dirmap,map_str map_str="" dirmap=sys(5)+sys(2003) sele_=select () if not used("primer") set default to (nacal_dire) select 0 use primer alias "primer" shared else set default to (nacal_dire) select primer endif
* создание таблицы - теги HTML разделил СПЕЦИАЛЬНО, что
бы рассылка правильно все отобразила. map_str="<"+"table border=1"+">" scan map_str=map_str+"<"+"t"+"r"+">"+"<"+"t"+"d"+">"+alltr(primer.fio)+"<"+"/"+"t"+"d"+">"+"<"+"t"+"d"+">"+alltr(primer.doljn)+"<"+"/"+"t"+"d>"+""+alltr(primer.opis)+"<"+"/"+"t"+"d"+>"+"<"+"/"+"t"+"r"+">" endscan map_str=map_str+"<"+"/"+"table"+">" select (sele_) set default to (dirmap) return map_str `
Данный код сгенерит простую таблицу.
Минус такого подхода - для приемлемого отображения таблицы нужно знать язык разметки HTML. А ведь хочется заголовков, итогов, выделения цветом и многого другого.
Поэтому, вариант второй: воспользоваться Maple4 Report Builder (программа УЖЕ входит в дистрибутив,
начиная с версии 4.1.(4) Вы можете работать с ней, как с отдельным приложением, так и в связке с Maple4 Site Creator или ЛЮБОЙ Вашей программой на Visual FoxPro) для этого необходимо создать необходимый репорт (он, кстати, уже есть в дистрибутиве, начиная с версии 4.1.(4), вместе с примером и самой программой Maple4 Report Builder)
и разместить для запуска Maple4 Report Builder специальный код:
`nbr()` `*[foxpro] * создание среды local sele_,dirmap,map_str map_str="" dirmap=sys(5)+sys(2003) sele_=select () if not used("primer") set default to (nacal_dire) select 0 *для работы - файл primer.dbf должен находиться в том же каталоге, что и файл maple4_ru.exe use primer alias "primer" shared else set default to (nacal_dire) select primer endif select (sele_) set
default to (dirmap)
* запуск Maple4 Report Builder, файл maple4_ru_rb.app ДОЛЖЕН находиться в том же каталоге, что и файл maple4_ru.exe map_str=STRTRAN(maple4_ru_rb(2,"spisok_sotrudnikov.m4rb","","primer"),"*[***]*","")
Вывод: Потратив некоторое время на разработку репорта, Вы значительно сократите время в дальнейшем. Замечание: Maple4 Report Builder создает текст, а так же формирует всю сопутствующую графику,
НО эту графику Вам придется пока вручную переносить из подкаталога reports_maple4_ru_rb текущего каталога в каталог maple4_ru_ftp или в тот же каталог на сервере, где находятся файлы HTML. Обращаю внимание, что это пока :-) Другой вариант - СКОПИРОВАТЬ (именно скопировать, а не перенести) все файлы графики из reports_maple4_ru_rb в каталог ...maple4_ru_styles\группа_стилей\имя_стиля\files Чем хорош второй вариант - вся
графика отобразится при просмотре и будет размещена автоматически при генерации в нужном каталоге.
Совместное использование Site Creator с Report Builder позволяет создавать как on-line отчеты - т.е. Вы просматриваете страницу, которая создана НЕПОСРЕДСТВЕННО при Вас, в момент обращения к странице (кнопка Preview - в главном окне) off-line отчеты - Вы запускаете генерацию (кнопка Generate в главном окне), а открыть сгенеренные страницы можно в любом браузере, в любое удобное
для Вас время. Все файлы, необходимые для просмотра страницы, находятся в подпапке ... maple4_ru_ftp каталога запуска программы.
Как Вы понимаете, использование Maple4 Site Creator не ограничивается только генерацией страниц сайта. С помощью этого инструмента Вы сможете организовать формирование документов на текущий момент (при Preview) или делать срез на определенную дату/время (при Generate) Например, можно сделать страницы с выборками по отделам, финансовой информацией, по кадрам
и т.п. (причем, документы не только формата HTM) Другими словами, Site Creator может использоваться и в сфере деловых программ.
Мнение (обычно не совпадает со своим собственным :-) ) 1. FoxPro все больше и больше уступает свои позиции. Причем, неоправданно. Но закономерно. Парадокс? Обсуждение на форуме: http://www.maple4.ru/forums/index.php?showtopic=35
2. Информацию приходится искать на всех сайтах (посвященных любым языкам). А потом кропотливо выбирать и приспосабливать
к своему приложению. Предлагаю размещать на форуме ссылки на такие сайты с решениями и варианты адаптации к FoxPro - что значительно упростит понимание кода. Потом, гораздо проще сделать по аналогии. Ссылки на форуме: http://www.maple4.ru/forums/index.php?showtopic=36
3. Многие решения лежат на поверхности. Не хватает толчка ( с разворота :-) ) . Например, получение (именно получение, а
не отправка) почты. Ну да, можно воспользоваться кучей якобы бесплатных dll (которые на форумах и предлагаются) или специализированных программ. Иначе, придется столкнуться с различными проблемами (не говорится ли это разработчиками тех самых Dll :-)???? ): кодировками, распознаванием вложенных файлов и т.д. Но ведь решение есть. Да, было "разбросано" по куче сайтов. И, возможно, не идеальное.
Приложения на стыке Visual FoxPro + IE Предлагается в форуме такая тема для обсуждения - создание приложений на стыке Visual FoxPro и IE (control WebBrowser) Почему не использовать объект IE? Ведь он дает такие возможности, что дух захватывает... Многим не нравится интерфейс, который может предложить FoxPro (только не бросайте различными предметами ) Но ведь с помощью Java-скриптов можно добиться огромной функциональности. А как насчет использования Flash
на странице IE? Тут уж Fox точно проигрывает...
А как такая идея - создание приложений FoxPro ТОЛЬКО с использованием объекта IE - т.е. в форму вставляется данный объект, а вся работа почти полностью реализуется с помощью HTML.
Генерация отчетов ВМЕСТЕ со всей используемой графикой Причем не только генерация, но и обработка кликов (как в одной известной программе для бухгалтерии), генерация отчетов "на лету" и т.д. Кстати, на основе этого решения, web-подобный
интерфейс реализуем (и достаточно просто реализуется) уже сейчас.
WebBrowser IE позволяет без лишних трудозатрат просматривать видео и прослушивать аудио (в том числе потоковое). Вставил объект на форму, написал несколько строк - и все работает (если нет, подгружаются необходимые кодеки). Пример - 1 канал - создаете следующий файл HTML и открываете его в объекте IE (По моему, есть ограничение со стороны первого канала - только для российских IP). <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <title>1TV</title> </head> <body> <br> <iframe NAME="VIDEO" allowtransparency="true" [...] src="http://www.1tv.ru/owa/win/ORT6_ITV.video_object?p_ch=1tv" width=320 height=286 marginwidth=0
marginheight=0 scrolling=no frameborder=0></iframe> </body> </html>
Программы (Site Creator, Report Builder, FTP-Connection) можно загрузить со страницы загрузки Все программы - бесплатны и НЕ требуют регистрации. Кроме того, там же можно загрузить доступные стили к Site Creator.