Upload
janae
View
48
Download
2
Embed Size (px)
DESCRIPTION
Пример использования сервиса отложенной печати, формирования отчетности в rtf, pdf и рассылки по электронной почте. Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС [email protected]. Вопросы рассматриваемые в презентации. Презентация возможностей - PowerPoint PPT Presentation
Citation preview
Пример использования сервиса отложенной печати, формирования отчетности в
rtf, pdf и рассылки по электронной почте
Миндияров Илья
Главный специалист
Центра информационных технологий и консалтинга ПАРУС
Комплексная система управления.
Вопросы рассматриваемые в презентации
• Презентация возможностей• Установка и настройка Apache FOP• Получение отчетов в формате MS Word, RTF, PDF, HTML• Рассылка отчетов по электронной почте• Использования сервиса отложенной печати
Ôàéëû_ïðåçåíòàöèè.zip
Комплексная система управления.
Презентация возможностей
Выбираем печать пользовательского отчета обычным образом
Комплексная система управления.
Презентация возможностей
Заполняем параметры
Комплексная система управления.
Презентация возможностей
Получаем отчет в формате PDF
Комплексная система управления.
Презентация возможностей
Или в формате RTF
Комплексная система управления.
Презентация возможностей
Или в формате MS Word
Комплексная система управления.
Презентация возможностей
Пример рассылки пользовательского отчета Crystal Reports на клиента ПП Парус 8
Необходимо написать пользовательское приложение, которое обеспечит сбор параметров отчета и экспортирует результат в PDF, RTF.
Особенности Crystal Reports
таковы, что необходимо
указывать имя базы,
имя пользователя
и пароль пользователя
Комплексная система управления.
Презентация возможностей
Пример рассылки пользовательского отчета Crystal Reports на клиента ПП Парус 8
Вот результат работы.
Это программа mutt в linux
Комплексная система управления.
Презентация возможностей
Для отправки e-mail c вложениями на стороне сервера предлагаю посмотреть презентацию Чечнева Михаила Сергеевича, которую он показывал 02.12.2011.
Ссылка на загрузку: http://www.parus.ru/docs/2_02_chechnev_122011.pps
Комплексная система управления.
Демонстрация возможностей
Сервис отложенной печати отчетов
При печати пользовательских отчетов появилась новая кнопка “В очередь”
Комплексная система управления.
Презентация возможностей
Сервис отложенной печати отчетов
После постановки отчета в очередь необходимо Зайти в новый раздел “Очередь печати отчетов”
Комплексная система управления.
Презентация возможностей
Сервис отложенной печати отчетов
И выполнить действие “Открыть отчет” у отчета с состоянием “Выполнение завершено (успешно)”
Комплексная система управления.
Презентация возможностей
Сервис отложенной печати отчетовБудет открыт отчет
Комплексная система управления.
Презентация возможностей
Сервис отложенной печати отчетов
Данный сервис будет интересен, тем сотрудникам, которые печатают много отчетов MS Excel, которые долго выполняются.
Если нет необходимости в получении результатов работы пользовательского отчета немедленно, то не будет тратится время на ожидание получения результатов работы отчета
Комплексная система управления.
Установка и настройка Apache FOP
Скачать актуальную версию Java SE Runtime Environment
http://www.oracle.com/technetwork/java/javase/downloads/index.html, например,
http://www.oracle.com/technetwork/java/javase/downloads/jre7u9-downloads-1859586.html
Скачать актуальную бинарную стабильную версию Apache FOPhttp://xmlgraphics.apache.org/fop/download.html,
например, http://apache-mirror.rbc.ru/pub/apache/xmlgraphics/fop/binaries/fop-1.0-bin.zip
Комплексная система управления.
Установка и настройка Apache FOP
1.Установите JAVA
2.Распакуйте FOP в директорию c:\fop
3.Проверьте работоспособность командойc:\fop\fop.bat C:\fop\examples\fo\basic\border.fo c:\fop\border.pdf
Комплексная система управления.
Установка и настройка Apache FOP
Генерация метрик русских шрифтов
1.Создайте каталог c:\fop\fonts2.Скопируйте TTF шрифты, которые вы будете использовать в отчетах в
папку c:\fop\fonts. Например: arial.ttf, arialbd.ttf, arialbi.ttf, ariali.ttf, arialn.ttf, arialnb.ttf, arialnbi.ttf, arialni.ttf, calibri.ttf, calibrib.ttf, calibrii.ttf, calibriz.ttf, cour.ttf, courbd.ttf, courbi.ttf, couri.ttf, symbol.ttf, tahoma.ttf, tahomabd.ttf, times.ttf, timesbd.ttf, timesbi.ttf, timesi.ttf.
3.Скопируйте файл c:\fop\fop.bat в c:\fop\makefont.batВ последней строке файла замените "%JAVACMD%" %JAVAOPTS% %LOGCHOICE% %LOGLEVEL% -cp "%LOCALCLASSPATH%"
%FOP_OPTS% org.apache.fop.cli.Main %FOP_CMD_LINE_ARGS%на"%JAVACMD%" %JAVAOPTS% %LOGCHOICE% %LOGLEVEL% -cp "%LOCALCLASSPATH%"
%FOP_OPTS% org.apache.fop.fonts.apps.TTFReader %FOP_CMD_LINE_ARGS%
4.Создайте файл c:\fop\makefonts.bat следующего содержания:
for %%i in (c:\fop\fonts\*.ttf) do c:\fop\makefont.bat %%i %%i.xml
Комплексная система управления.
Установка и настройка Apache FOP
Генерация метрик русских шрифтов
Выполните файл c:\fop\makefonts.batОткройте в редакторе файл c:\fop\conf\fop.xconf внутри тэга <fonts>
добавьте тэги для всех шрифтов <font metrics-url="c:\fop\fonts\arial.ttf.xml"
kerning="yes"
embed-url="c:\fop\fonts\arial.ttf">
<font-triplet name="Arial" style="normal" weight="normal"/>
<font-triplet name="ArialMT" style="normal" weight="normal"/>
</font>
Комплексная система управления.
Установка и настройка Apache FOP
Генерация метрик русских шрифтов
Проверка корректности русификацииСоздайте файл c:\fop\test.fo <?xml version="1.0" encoding="windows-1251"?>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="first">
<fo:region-body/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="first">
<fo:flow flow-name="xsl-region-body">
<fo:block text-align="start" font-family="Arial" >
Проверка
</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
Комплексная система управления.
Установка и настройка Apache FOP
Генерация метрик русских шрифтов
Выполните командуC:\fop\fop.bat -c c:\fop\conf\fop.xconf c:\fop\test.fo c:\fop\test.pdf
Постотрите файл c:\fop\test.pdf
Комплексная система управления.
Установка и настройка Apache FOP
Загрузка классов Apache FOP на сервер Oracle
1.Создание нового пользователя
CREATE USER "FOP" PROFILE "DEFAULT"
IDENTIFIED BY "parusina" DEFAULT TABLESPACE "USERS"
QUOTA UNLIMITED
ON "USERS"
ACCOUNT UNLOCK;
GRANT "CONNECT" TO "FOP"; GRANT "JAVAUSERPRIV" TO "FOP";
GRANT CREATE PROCEDURE TO "FOP“;
GRANT CREATE TABLE TO "FOP“;
2.Создайте файл loadjars.bat следующего содержания
c:\oracle\ora10\bin\loadjava -user fop/parusina@DATABASE -verbose -force -order -resolve -recursivejars c:\fop\build\*.jar c:\fop\lib\*.jar -fileout loaderrors.txt
Комплексная система управления.
Установка и настройка Apache FOP
Загрузка классов Apache FOP на сервер Oracle
1.Загрузите под пользователем FOP java class ru.parus.foprocessor2.Перенесите содержимое Ваших директорий c:\fop\fonts и c:\fop\conf на
серверсоздайте директорию c:\fop\.fop
3.Под DBA выполнитеcall dbms_java.grant_permission('FOP', 'java.io.FilePermission', 'c:\fop\.fop',
'read,write');
call dbms_java.grant_permission(‘FOP', 'java.io.FilePermission', 'c:\fop\.fop\fop-fonts.cache', 'read,write');
call dbms_java.grant_permission(‘FOP', 'java.util.PropertyPermission', 'user.dir', 'read,write');
call dbms_java.grant_permission(‘FOP', 'java.util.PropertyPermission', 'user.home', 'read,write');
Где “c:\fop” директория на Вашем сервере где будут храниться файлы конфигурации, метрики шрифтов и сами шрифты.
Комплексная система управления.
Установка и настройка Apache FOP
Загрузка классов Apache FOP на сервер Oracle
1.Под пользователем FOP выполните.create or replace function GET_FOP_DOCUMENT
(
MIME_TYPE in varchar2, XMLFO in blob, XMLXSLT in blob
) return blob as
language java name 'ru.parus.foprocessor.processDocument(java.lang.String,oracle.sql.BLOB,oracle.sql.BLOB)
return oracle.sql.BLOB';
2.Под DBA выполните сreate public synonym GET_FOP_DOCUMENT for FOP.GET_FOP_DOCUMENT;grant execute on GET_FOP_DOCUMENT to public;
Комплексная система управления.
Установка и настройка Apache FOP
Тестирование установки
Создайте процедуруcreate or replace procedure UDO_P_TEST_FOP_DOCUMENT( NCOMPANY in number ,NPROCESS in number) is B1 blob; B2 blob;begin select R.TEMPLATE_DATA into B1 from USERREPORTS R where R.COMPANY = NCOMPANY and R.RN = PKG_USERREPORTS.GET_REPORT(); B2 := GET_FOP_DOCUMENT(MIME_TYPE => 'PDF' ,XMLFO => B1 ,XMLXSLT => null); insert into FILE_BUFFER (IDENT, FILENAME, BDATA) values (NPROCESS, '.pdf', B2);end UDO_P_TEST_FOP_DOCUMENT;
Комплексная система управления.
Установка и настройка Apache FOP
Тестирование установки
Создайте пользовательский отчет с типом “Двоичные данные”
Комплексная система управления.
Установка и настройка Apache FOP
Тестирование установки
1.Загрузите в пользовательский отчет файл test.fo2.Заполните параметры отчета. Важно чтобы один из параметров имел
привязку к “Идентификатор процесса”
Комплексная система управления.
Установка и настройка Apache FOP
Тестирование установки
Выполните действие “Печать” на пользовательском отчетеЕсли установка прошла успешно, то откроется документ PDF с текстом
“Проверка”
Комплексная система управления.
Отчеты в формате MS Word, RTF, PDF, HTML
Отчеты в формате PDF
Прочитайтеhttp://msdn.microsoft.com/en-us/library/aa537167%28v=office.11%29.aspx
Загрузите
http://www.microsoft.com/en-us/download/details.aspx?id=16876
Установите OfficeWordWordMLtoXSL-FOSample.exe
Комплексная система управления.
Отчеты в формате MS Word, RTF, PDF, HTML
Отчеты в формате PDF
Прочитайтеhttp://msdn.microsoft.com/en-us/library/aa537167%28v=office.11%29.aspx
Загрузите
http://www.microsoft.com/en-us/download/details.aspx?id=16876
Установите OfficeWordWordMLtoXSL-FOSample.exe
Комплексная система управления.
Отчеты в формате MS Word, RTF, PDF, HTML
Отчеты в формате PDF
Скачайте бланк формы в формате WS Word
Выполните разметку полей – напишите какой-либо текст
Комплексная система управления.
Отчеты в формате MS Word, RTF, PDF, HTML
Отчеты в формате PDF
Сохраните размеченный документ как документ XML c применением преобразования
Комплексная система управления.
Отчеты в формате MS Word, RTF, PDF, HTML
Отчеты в формате PDF
1.Выполните команду c:\fop\fop.bat -c c:\fop\conf\fop.xconf c:\fop\t1a.xml c:\fop\t1a.pdf
2.Посмотрите результат в c:\fop\t1a.pdf
3.В целом все устраивает кроме рамки у таблицы
Комплексная система управления.
Отчеты в формате MS Word, RTF, PDF, HTML
Отчеты в формате PDF
1.Откроем размеченный документ MS Word
2.Выбираем таблицу и устанавливаем “Границы и заливка” в “нет”
Комплексная система управления.
Отчеты в формате MS Word, RTF, PDF, HTML
Отчеты в формате PDF
1.Выбираем ячейки (по-одной)
2.Устанавливаем “Границы и заливка” в “рамка”
Комплексная система управления.
Отчеты в формате MS Word, RTF, PDF, HTML
Отчеты в формате PDF
1.Снова сохраняем как документ XML
Комплексная система управления.
Отчеты в формате MS Word, RTF, PDF, HTML
Отчеты в формате PDF
1.Снова генерируем PDF
2.Повторяем редактирование документа MS Word пока нас не устроит результат
Комплексная система управления.
Отчеты в формате MS Word, RTF, PDF, HTML
Отчеты в формате PDFПишем пользовательскую процедуру, которая генерирует XML-файл с данными, по которым будет
формироваться отчет.Например:
<?xml version="1.0" encoding="windows-1251"?><REPORTS> <REPORT> <DOC_NUMB>2012-2</DOC_NUMB> <DDOC_DATE>24.08.2012</DDOC_DATE> <SORGNAME> ОАО
"Полюс"</SORGNAME> <SORGCODE/> <ROWS> <ROW> <FIO>Иванова Ивана Ивановича</FIO> <TBLNUM>T-14</TBLNUM> <SDEPTNAME>Дирекция</SDEPTNAME> <SPOSTNAME>Главный бухгалтер</SPOSTNAME>
<NSUMMOKL>90000</NSUMMOKL> <NSUMMNAD/> <SCNTR_NUMB/> <DCNTR_DATE/> <DBEGENG>24.08.2012</DBEGENG> <DENDENG/>
<STESTPERIOD/> </ROW> <ROW> <FIO>Пауля Валерия Анатольевича</FIO> <TBLNUM>T-16</TBLNUM> <SDEPTNAME>Технологический
отдел</SDEPTNAME> <SPOSTNAME>Teхнолог</SPOSTNAME><NSUMMOKL>5000</NSUMMOKL> <NSUMMNAD/><SCNTR_NUMB/><DCNTR_DATE/> <DBEGENG>26.11.2012</DBEGENG><DENDENG/><STESTPERIOD/> </ROW> </ROWS> <SBOSSPOST>Директор</SBOSSPOST> <SBOSSNAME>Петров П.П.</SBOSSNAME> </REPORT></REPORTS>
Комплексная система управления.
Отчеты в формате MS Word, RTF, PDF, HTML
Отчеты в формате PDF
Сохраним файл XML с данными в c:\fop\t1a_data.xml
Откроем на редактирование файл XML, который мы получили из MS Word
В начале документа было:<?xml version = "1.0" encoding = "WINDOWS-1251"?>
<fo:root font-family="TimesNewRoman"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml">
Станет:
<?xml version = "1.0" encoding = "WINDOWS-1251"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:template match ="REPORTS">
<fo:root font-family="TimesNewRoman"
….
Комплексная система управления.
Отчеты в формате MS Word, RTF, PDF, HTML
Отчеты в формате PDF
В конце документа было: </fo:flow>
</fo:page-sequence>
</fo:root>
Станет:
</fo:flow>
</fo:page-sequence>
</fo:root>
</xsl:template>
</xsl:stylesheet>
Комплексная система управления.
Отчеты в формате MS Word, RTF, PDF, HTML
Отчеты в формате PDF
Проверим, что мы все корректно сделали командой:
c:\fop\fop.bat -c c:\fop\conf\fop.xconf -xml c:\fop\t1a_data.xml -xsl c:\fop\t1a.xml -pdf c:\fop\t1a.pdf
В результате должны получить файл, как и прежде
Комплексная система управления.
Отчеты в формате MS Word, RTF, PDF, HTML
Отчеты в формате PDF
Открываем файл t1a.xml в редакторе
Находим тэг xsl-region-body
Комплексная система управления.
Отчеты в формате MS Word, RTF, PDF, HTML
Отчеты в формате PDF
Открываем файл t1a.xml в редакторе
Находим тэг fo:flow c атрибутом flow-name=“xsl-region-body”
Комплексная система управления.
Отчеты в формате MS Word, RTF, PDF, HTML
Отчеты в формате PDF
Открываем файл t1a.xml в редакторе
Находим тэг fo:flow c атрибутом flow-name=“xsl-region-body”
Комплексная система управления.
Отчеты в формате MS Word, RTF, PDF, HTML
Отчеты в формате PDF
1.Вырезаем содержимое тэга <fo:flow> (но не сам тэг) и пишем вместо этого
<xsl:apply-templates/>
2.Создаем тэг <xsl:template match ="REPORT">
</xsl:template>
3.Записываем внутрь тэга <xsl:template match ="REPORT"> вырезанное содержимое <fo:flow>
Комплексная система управления.
Отчеты в формате MS Word, RTF, PDF, HTML
Отчеты в формате PDFВ результате должны получить
Комплексная система управления.
Отчеты в формате MS Word, RTF, PDF, HTML
Отчеты в формате PDFВнутри <xsl:template match ="REPORT">
У первого <fo:block> добавим атрибут break-before="page”
Комплексная система управления.
Отчеты в формате MS Word, RTF, PDF, HTML
Отчеты в формате PDF
Для проверки копируем тэг <REPORT> в файле c:\fop\t1a_data.xml
Снова запускаем команду c:\fop\fop.bat -c c:\fop\conf\fop.xconf -xml c:\fop\t1a_data.xml -xsl c:\fop\t1a.xml -pdf c:\fop\t1a.pdf
Получаем 2 страницы
Комплексная система управления.
Отчеты в формате MS Word, RTF, PDF, HTML
Отчеты в формате PDF
Теперь мы может приступить к замене полей, которые точно будут встречаться 1 раз внутри тэга <REPORT>
Находим значения, которые мы разметили в файле MS Word
Комплексная система управления.
Отчеты в формате MS Word, RTF, PDF, HTML
Отчеты в формате PDF
Заменяем допустим, “zzzzzzz” на <xsl:value-of select="SORGNAME"/>
В ближайшем блоке заменяем language="EN-US” на language=“RU”
Проверяем:
Комплексная система управления.
Отчеты в формате MS Word, RTF, PDF, HTML
Отчеты в формате PDF
Теперь займемся тэгами, которые могут встретиться несколько раз
Найдем внутри тэга <fo:table> тэг <table-row>
Комплексная система управления.
Отчеты в формате MS Word, RTF, PDF, HTML
Отчеты в формате PDF
Теперь займемся тэгами, которые могут встретиться несколько раз
Найдем внутри тэга <fo:table> тэг <table-row>
Комплексная система управления.
Отчеты в формате MS Word, RTF, PDF, HTML
Отчеты в формате PDF
Вырезаем предпоследний тэг <table-row> полностью
Последний тэг <table-row> удаляем
Пишем вместо вырезанного <table-row>
<xsl:apply-templates/>
Комплексная система управления.
Отчеты в формате MS Word, RTF, PDF, HTML
Отчеты в формате PDF
Добавляем обработку тэга ROWS (в нашем случае она пустая, сразу идет переход на обработку других тэгов)
Добавим обработку тэга ROW, там где на скриншоте пустое пространство вставим вырезанное содержимое <fo:table-row>.
Последней строкой должно идти <xsl:apply-templates/>
Комплексная система управления.
Отчеты в формате MS Word, RTF, PDF, HTML
Отчеты в формате PDF
Заменяем значение размеченных полей внутри шаблона для тэга ROW
Пишем <xsl:value-of select="FIO"/> и т.д.
Комплексная система управления.
Отчеты в формате MS Word, RTF, PDF, HTML
Отчеты в формате PDF
В конец документа перечисляем все текстовые тэги для которых мы писалиxsl:value-of select
Комплексная система управления.
Отчеты в формате MS Word, RTF, PDF, HTML
Отчеты в формате PDF
Создадим тэг <fo:block>
Из обработки тэга <REPORT> вырезаем тэги <fo:marker> и вставляем внуть тэга fo:flow
Комплексная система управления.
Отчеты в формате MS Word, RTF, PDF, HTML
Отчеты в формате MS Word
Для печати этих отчетов не нужен Apache FOP
Достаточно XSLT преобразования
Сохраним наш размеченный документ MS Word как XML-документ, при этом НЕ применяя преобразование.
Комплексная система управления.
Отчеты в формате MS Word, RTF, PDF, HTML
Отчеты в формате MS Word
Открываем XML в редакторе
Комплексная система управления.
Отчеты в формате MS Word, RTF, PDF, HTML
Отчеты в формате MS Word
Добавляем уже знакокое xsl:stylesheet
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0”
Копируем остальные атрибуты из тэга w:wordDocument
Получаем
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:sl="http://schemas.microsoft.com/schemaLibrary/2003/core" xmlns:aml="http://schemas.microsoft.com/aml/2001/core" xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:wsp="http://schemas.microsoft.com/office/word/2003/wordml/sp2" w:macrosPresent="no" w:embeddedObjPresent="no" w:ocxPresent="no" xml:space="preserve">
Комплексная система управления.
Отчеты в формате MS Word, RTF, PDF, HTML
Отчеты в формате MS Word
В последнюю строку файла добавляем </xsl:stylesheet>
Получаем:
Комплексная система управления.
Отчеты в формате MS Word, RTF, PDF, HTML
Отчеты в формате MS Word
Тэг </w:wordDocument> заключаем внутрь тэга
<xsl:template match ="REPORTS">
Комплексная система управления.
Отчеты в формате MS Word, RTF, PDF, HTML
Отчеты в формате MS Word
Проверим работоспособность командой
c:\fop\fop.bat -xml c:\fop\t1a_data.xml -xsl c:\fop\t1a_word.xml -foout c:\fop\t1a_msword.doc
Откроем c:\fop\t1a_msword.doc
Комплексная система управления.
Отчеты в формате MS Word, RTF, PDF, HTML
Отчеты в формате MS Word
Проверим работоспособность командой
c:\fop\fop.bat -xml c:\fop\t1a_data.xml -xsl c:\fop\t1a_word.xml -foout c:\fop\t1a_msword.doc
Откроем c:\fop\t1a_msword.doc
Комплексная система управления.
Отчеты в формате MS Word, RTF, PDF, HTML
Отчеты в формате MS Word
Проверим работоспособность командой
Находим тэг <w:body>
После него вставляем пустой тэг <wx:sect>
Комплексная система управления.
Отчеты в формате MS Word, RTF, PDF, HTML
Отчеты в формате MS Word
Проверим работоспособность командой
Вырезаем следующий тэг <wx:sect> в обработку тэга REPORT, не забываем про <xsl:apply-templates/>
Комплексная система управления.
Отчеты в формате MS Word, RTF, PDF, HTML
Отчеты в формате MS Word
Вырезаем следующий тэг <wx:sect> в обработку тэга REPORT, не забываем про <xsl:apply-templates/>
Комплексная система управления.
Отчеты в формате MS Word, RTF, PDF, HTML
Отчеты в формате MS Word
Проверим работоспособность прежней командой
Должно получиться 2 отчета, не обращаем пока внимания на разбиение страниц
Комплексная система управления.
Отчеты в формате MS Word, RTF, PDF, HTML
Отчеты в формате MS Word
Заменим размеченные значения, которые встречаются 1 раз на <xsl:apply-templates select=" “<тэг> "/>
ВАЖНО! Не пишите <xsl:value-of select=“<тэг>"/>
Тег <w:t> и <xsl:apply-templates select=" “<тэг> "/> пишите без пробелов и переводов строки.
Не забываем менять язык на RU, при необходимости
Комплексная система управления.
Отчеты в формате MS Word, RTF, PDF, HTML
Отчеты в формате MS Word
Обработку тэгов, которые встречаются внутри <w:t>
Обрабатываем так <xsl:template match ="SORGNAME"><xsl:value-of select="."/></xsl:template>
Без переводов строки!
Комплексная система управления.
Отчеты в формате MS Word, RTF, PDF, HTML
Отчеты в формате MS Word
Иначе при выводе значений внутри <w:t> будут пробелы
Комплексная система управления.
Отчеты в формате MS Word, RTF, PDF, HTML
Отчеты в формате MS Word
Проверяем прежней командойc:\fop\fop.bat -xml c:\fop\t1a_data.xml -xsl c:\fop\t1a_word.xml -foout c:\fop\
t1a_msword.doc
Должно получиться
Комплексная система управления.
Отчеты в формате MS Word, RTF, PDF, HTML
Отчеты в формате MS Word
По размеченным значениям, например “aaa” находим ближайший тэг
<w:tc> - это ячейка
Потом найдем ближайшиц <w:tr> - это строка таблицы
Удаляем последний <w:tr> в нужной таблице
Комплексная система управления.
Отчеты в формате MS Word, RTF, PDF, HTML
Отчеты в формате MS Word
Теперь последний <w:tr> вставляем в обработчик ROW.
Обработчик ROWS – состоит только из перехода к обработке других тэгов (он нужен только для красоты).
Вместо вырезанного <w:tr> вставим <xsl:apply-templates/>
Комплексная система управления.
Отчеты в формате MS Word, RTF, PDF, HTML
Отчеты в формате MS Word
Вставим разрывы страниц
В обработчике REPORTS вместо <xsl:apply-templates/>
Комплексная система управления.
Отчеты в формате MS Word, RTF, PDF, HTML
Отчеты в формате MS Word
Вставим разрывы страниц
Напишем<xsl:for-each select="./REPORT">
<xsl:apply-templates select="."/>
<xsl:if test="position()!=last()">
<w:br w:type="page"/>
</xsl:if>
</xsl:for-each>
Комплексная система управления.
Отчеты в формате MS Word, RTF, PDF, HTML
Отчеты в формате MS Word
Вставим разрывы страниц
Это означает, что необходимо написать <w:br w:type="page"/>
после обработки каждого тэга REPORT, кроме последнего.
Комплексная система управления.
Отчеты в формате MS Word, RTF, PDF, HTML
Отчеты в формате HTMLМожно также использовать механизм XSLT преобразования, а можно напрямую сформировать
CLOB. Если вместо имени файла написать ‘.xls’, то файл откроется в MS ExcelПривожу листинг процедуры:create or replace procedure UDO_P_HTML_PRORDERS( NCOMPANY in number ,NRN in number ,NIDENT in number) is C clob; SFILENAME FILE_BUFFER.FILENAME%type; -- procedure WRITELN(S in varchar2) as begin DBMS_LOB.WRITEAPPEND(C,LENGTH(S || CR, S || CR); end;
begin SFILENAME := '.htm'; DBMS_LOB.CREATETEMPORARY(C,true); WRITELN('<html>'); WRITELN('<body>');
Комплексная система управления.
Отчеты в формате MS Word, RTF, PDF, HTML
Отчеты в формате HTML
WRITELN('<table border="1" cellspacing="1" cellpadding="1" width="300">'); WRITELN('<tr height="40" valign="center" align="center" '); WRITELN(' cellspacing=0 cellpadding=0 >'); WRITELN('<td bgcolor="#CCCCCC" width="150"><font color="#101010">Тип документа</font></td>'); WRITELN('<td bgcolor="#CCCCCC" width="75"><font color="#101010">Префикс</font></td>'); WRITELN('<td bgcolor="#CCCCCC" width="75"><font color="#101010">Номер</font></td>'); WRITELN('</tr>'); for REC in (select P.SDOC_TYPE, P.SDOC_PREF ,P.SDOC_NUMB from V_PRORDER P ,SELECTLIST S where S.IDENT = UDO_P_HTML_PRORDERS.NR and S.AUTHID = UTILIZER and P.NRN = S.DOCUMENT) loop WRITELN('<tr bgcolor="#FFFFFF" cellspacing=1 cellpadding=1>'); WRITELN('<td align="left">' || REC.SDOC_TYPE || '</td>'); WRITELN('<td align="right">' || REC.SDOC_PREF || '</td>'); WRITELN('<td align="right">' || REC.SDOC_NUMB || '</td>'); WRITELN('</tr>'); end loop; WRITELN('</table>');WRITELN('</body>'); WRITELN('</html>'); insert into FILE_BUFFER (IDENT, authid, FILENAME, DATA, RUN_CMD) values (NIDENT, UTILIZER, SFILENAME, C, null); DBMS_LOB.FREETEMPORARY(C);end;
Комплексная система управления.
Отчеты в формате MS Word, RTF, PDF, HTML
Отчеты в формате HTML
Результат работы
Комплексная система управления.
Рассылка отчетов по электронной почте
Автоматическая отправка e-mail со стороны клиента
Скачать программу blat http://sourceforge.net/projects/blat/files/
Распаковать в каталог c:\blat
Выполнить
C:\blat.exe -install 192.168.122.1 [email protected]
Где 192.168.122.1 – адрес вашего SMTP-сервера
Вместо [email protected] –напишите адрес от чьего имени будет происходить отправка письма.
Комплексная система управления.
Рассылка отчетов по электронной почте
Автоматическая отправка e-mail со стороны клиента
Создайте файл c:\blat\blat.bat
c:\blat\blat.exe c:\blat\message.txt -sf c:\blat\subject.txt -to %1 -charset cp1251 -attach %2 >c:\blat\message.log
Создайте файлы c:\blat\message.txt – запишите в него текст письма
Создайте файлы c:\blat\subject.txt – запишите в него тему письма
Комплексная система управления.
Рассылка отчетов по электронной почте
Автоматическая отправка e-mail со стороны клиента
Пример использования в пользовательском приложении
При вызове укажите e-mail и имя файла для вложения
Комплексная система управления.
Сервис отложенной печати
Создание пользователя:
Create user PRINT_TEST identified by parusina;
Grant connect to PRINT_TEST;
Создайте роль “Сервер печати”
Комплексная система управления.
Сервис отложенной печати
Назначение прав доступа:
Назначьте роли приложение “Сервер отложенной печати отчетов”
Назначьте роли организации , роль <Система> должна быть обязательно
Комплексная система управления.
Сервис отложенной печати
Назначение прав доступа:
Назначьте роли права доступа в системе
Комплексная система управления.
Сервис отложенной печати
Назначение прав доступа:
Назначьте роли права доступа в организации
Комплексная система управления.
Сервис отложенной печати
Автоматический запуск:
Создайте ярлык на запуск p8application.exe со строкой запуска вида
p8application.exe /bБазаДанных /aPrintServer /uПользователь /cОрганизация
Например:
"C:\Program Files\ПАРУС-Предприятие 8.5.6.1\p8application.exe" /bSTUDY /aPrintServer /uPRINT_TEST /cОрганизация
Добавьте ярлык в автозагрузку любого сервера, не обязательно сервера с ORACLE.
Комплексная система управления.
Сервис отложенной печати
Автоматический запуск:
1.Запустите ярлык
2.Введите пароль
3.Установите чекер “Сохранить пароль”