90
Пример использования сервиса отложенной печати, формирования отчетности в rtf, pdf и рассылки по электронной почте Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС [email protected]

Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

  • Upload
    janae

  • View
    48

  • Download
    2

Embed Size (px)

DESCRIPTION

Пример использования сервиса отложенной печати, формирования отчетности в rtf, pdf и рассылки по электронной почте. Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС [email protected]. Вопросы рассматриваемые в презентации. Презентация возможностей - PowerPoint PPT Presentation

Citation preview

Page 1: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Пример использования сервиса отложенной печати, формирования отчетности в

rtf, pdf и рассылки по электронной почте

Миндияров Илья

Главный специалист

Центра информационных технологий и консалтинга ПАРУС

[email protected]

Page 2: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Вопросы рассматриваемые в презентации

• Презентация возможностей• Установка и настройка Apache FOP• Получение отчетов в формате MS Word, RTF, PDF, HTML• Рассылка отчетов по электронной почте• Использования сервиса отложенной печати

Ôàéëû_ïðåçåíòàöèè.zip

Page 3: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Презентация возможностей

Выбираем печать пользовательского отчета обычным образом

Page 4: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Презентация возможностей

Заполняем параметры

Page 5: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Презентация возможностей

Получаем отчет в формате PDF

Page 6: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Презентация возможностей

Или в формате RTF

Page 7: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Презентация возможностей

Или в формате MS Word

Page 8: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Презентация возможностей

Пример рассылки пользовательского отчета Crystal Reports на клиента ПП Парус 8

Необходимо написать пользовательское приложение, которое обеспечит сбор параметров отчета и экспортирует результат в PDF, RTF.

Особенности Crystal Reports

таковы, что необходимо

указывать имя базы,

имя пользователя

и пароль пользователя

Page 9: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Презентация возможностей

Пример рассылки пользовательского отчета Crystal Reports на клиента ПП Парус 8

Вот результат работы.

Это программа mutt в linux

Page 10: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Презентация возможностей

Для отправки e-mail c вложениями на стороне сервера предлагаю посмотреть презентацию Чечнева Михаила Сергеевича, которую он показывал 02.12.2011.

Ссылка на загрузку: http://www.parus.ru/docs/2_02_chechnev_122011.pps

Page 11: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Демонстрация возможностей

Сервис отложенной печати отчетов

При печати пользовательских отчетов появилась новая кнопка “В очередь”

Page 12: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Презентация возможностей

Сервис отложенной печати отчетов

После постановки отчета в очередь необходимо Зайти в новый раздел “Очередь печати отчетов”

Page 13: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Презентация возможностей

Сервис отложенной печати отчетов

И выполнить действие “Открыть отчет” у отчета с состоянием “Выполнение завершено (успешно)”

Page 14: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Презентация возможностей

Сервис отложенной печати отчетовБудет открыт отчет

Page 15: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Презентация возможностей

Сервис отложенной печати отчетов

Данный сервис будет интересен, тем сотрудникам, которые печатают много отчетов MS Excel, которые долго выполняются.

Если нет необходимости в получении результатов работы пользовательского отчета немедленно, то не будет тратится время на ожидание получения результатов работы отчета

Page 16: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Установка и настройка 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

Page 17: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Установка и настройка Apache FOP

1.Установите JAVA

2.Распакуйте FOP в директорию c:\fop

3.Проверьте работоспособность командойc:\fop\fop.bat C:\fop\examples\fo\basic\border.fo c:\fop\border.pdf

Page 18: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Установка и настройка 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

Page 19: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Установка и настройка 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>

Page 20: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Установка и настройка 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>

Page 21: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Установка и настройка Apache FOP

Генерация метрик русских шрифтов

Выполните командуC:\fop\fop.bat -c c:\fop\conf\fop.xconf c:\fop\test.fo c:\fop\test.pdf

Постотрите файл c:\fop\test.pdf

Page 22: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Установка и настройка 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

Page 23: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Установка и настройка 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” директория на Вашем сервере где будут храниться файлы конфигурации, метрики шрифтов и сами шрифты.

Page 24: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Установка и настройка 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;

Page 25: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Установка и настройка 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;

Page 26: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Установка и настройка Apache FOP

Тестирование установки

Создайте пользовательский отчет с типом “Двоичные данные”

Page 27: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Установка и настройка Apache FOP

Тестирование установки

1.Загрузите в пользовательский отчет файл test.fo2.Заполните параметры отчета. Важно чтобы один из параметров имел

привязку к “Идентификатор процесса”

Page 28: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Установка и настройка Apache FOP

Тестирование установки

Выполните действие “Печать” на пользовательском отчетеЕсли установка прошла успешно, то откроется документ PDF с текстом

“Проверка”

Page 29: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Отчеты в формате 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

Page 30: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Отчеты в формате 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

Page 31: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Отчеты в формате MS Word, RTF, PDF, HTML

Отчеты в формате PDF

Скачайте бланк формы в формате WS Word

Выполните разметку полей – напишите какой-либо текст

Page 32: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Отчеты в формате MS Word, RTF, PDF, HTML

Отчеты в формате PDF

Сохраните размеченный документ как документ XML c применением преобразования

Page 33: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Отчеты в формате 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.В целом все устраивает кроме рамки у таблицы

Page 34: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Отчеты в формате MS Word, RTF, PDF, HTML

Отчеты в формате PDF

1.Откроем размеченный документ MS Word

2.Выбираем таблицу и устанавливаем “Границы и заливка” в “нет”

Page 35: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Отчеты в формате MS Word, RTF, PDF, HTML

Отчеты в формате PDF

1.Выбираем ячейки (по-одной)

2.Устанавливаем “Границы и заливка” в “рамка”

Page 36: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Отчеты в формате MS Word, RTF, PDF, HTML

Отчеты в формате PDF

1.Снова сохраняем как документ XML

Page 37: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Отчеты в формате MS Word, RTF, PDF, HTML

Отчеты в формате PDF

1.Снова генерируем PDF

2.Повторяем редактирование документа MS Word пока нас не устроит результат

Page 38: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Отчеты в формате 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> ОАО

&quot;Полюс&quot;</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>

Page 39: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Отчеты в формате 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"

….

Page 40: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Отчеты в формате MS Word, RTF, PDF, HTML

Отчеты в формате PDF

В конце документа было: </fo:flow>

</fo:page-sequence>

</fo:root>

Станет:

</fo:flow>

</fo:page-sequence>

</fo:root>

</xsl:template>

</xsl:stylesheet>

Page 41: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Отчеты в формате 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

В результате должны получить файл, как и прежде

Page 42: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Отчеты в формате MS Word, RTF, PDF, HTML

Отчеты в формате PDF

Открываем файл t1a.xml в редакторе

Находим тэг xsl-region-body

Page 43: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Отчеты в формате MS Word, RTF, PDF, HTML

Отчеты в формате PDF

Открываем файл t1a.xml в редакторе

Находим тэг fo:flow c атрибутом flow-name=“xsl-region-body”

Page 44: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Отчеты в формате MS Word, RTF, PDF, HTML

Отчеты в формате PDF

Открываем файл t1a.xml в редакторе

Находим тэг fo:flow c атрибутом flow-name=“xsl-region-body”

Page 45: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Отчеты в формате 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>

Page 46: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Отчеты в формате MS Word, RTF, PDF, HTML

Отчеты в формате PDFВ результате должны получить

Page 47: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Отчеты в формате MS Word, RTF, PDF, HTML

Отчеты в формате PDFВнутри <xsl:template match ="REPORT">

У первого <fo:block> добавим атрибут break-before="page”

Page 48: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Отчеты в формате 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 страницы

Page 49: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Отчеты в формате MS Word, RTF, PDF, HTML

Отчеты в формате PDF

Теперь мы может приступить к замене полей, которые точно будут встречаться 1 раз внутри тэга <REPORT>

Находим значения, которые мы разметили в файле MS Word

Page 50: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Отчеты в формате MS Word, RTF, PDF, HTML

Отчеты в формате PDF

Заменяем допустим, “zzzzzzz” на <xsl:value-of select="SORGNAME"/>

В ближайшем блоке заменяем language="EN-US” на language=“RU”

Проверяем:

Page 51: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Отчеты в формате MS Word, RTF, PDF, HTML

Отчеты в формате PDF

Теперь займемся тэгами, которые могут встретиться несколько раз

Найдем внутри тэга <fo:table> тэг <table-row>

Page 52: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Отчеты в формате MS Word, RTF, PDF, HTML

Отчеты в формате PDF

Теперь займемся тэгами, которые могут встретиться несколько раз

Найдем внутри тэга <fo:table> тэг <table-row>

Page 53: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Отчеты в формате MS Word, RTF, PDF, HTML

Отчеты в формате PDF

Вырезаем предпоследний тэг <table-row> полностью

Последний тэг <table-row> удаляем

Пишем вместо вырезанного <table-row>

<xsl:apply-templates/>

Page 54: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Отчеты в формате MS Word, RTF, PDF, HTML

Отчеты в формате PDF

Добавляем обработку тэга ROWS (в нашем случае она пустая, сразу идет переход на обработку других тэгов)

Добавим обработку тэга ROW, там где на скриншоте пустое пространство вставим вырезанное содержимое <fo:table-row>.

Последней строкой должно идти <xsl:apply-templates/>

Page 55: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Отчеты в формате MS Word, RTF, PDF, HTML

Отчеты в формате PDF

Заменяем значение размеченных полей внутри шаблона для тэга ROW

Пишем <xsl:value-of select="FIO"/> и т.д.

Page 56: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Отчеты в формате MS Word, RTF, PDF, HTML

Отчеты в формате PDF

В конец документа перечисляем все текстовые тэги для которых мы писалиxsl:value-of select

Page 57: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Отчеты в формате MS Word, RTF, PDF, HTML

Отчеты в формате PDF

Создадим тэг <fo:block>

Из обработки тэга <REPORT> вырезаем тэги <fo:marker> и вставляем внуть тэга fo:flow

Page 58: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Отчеты в формате MS Word, RTF, PDF, HTML

Отчеты в формате MS Word

Для печати этих отчетов не нужен Apache FOP

Достаточно XSLT преобразования

Сохраним наш размеченный документ MS Word как XML-документ, при этом НЕ применяя преобразование.

Page 59: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Отчеты в формате MS Word, RTF, PDF, HTML

Отчеты в формате MS Word

Открываем XML в редакторе

Page 60: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Отчеты в формате 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">

Page 61: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Отчеты в формате MS Word, RTF, PDF, HTML

Отчеты в формате MS Word

В последнюю строку файла добавляем </xsl:stylesheet>

Получаем:

Page 62: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Отчеты в формате MS Word, RTF, PDF, HTML

Отчеты в формате MS Word

Тэг </w:wordDocument> заключаем внутрь тэга

<xsl:template match ="REPORTS">

Page 63: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Отчеты в формате 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

Page 64: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Отчеты в формате 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

Page 65: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Отчеты в формате MS Word, RTF, PDF, HTML

Отчеты в формате MS Word

Проверим работоспособность командой

Находим тэг <w:body>

После него вставляем пустой тэг <wx:sect>

Page 66: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Отчеты в формате MS Word, RTF, PDF, HTML

Отчеты в формате MS Word

Проверим работоспособность командой

Вырезаем следующий тэг <wx:sect> в обработку тэга REPORT, не забываем про <xsl:apply-templates/>

Page 67: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Отчеты в формате MS Word, RTF, PDF, HTML

Отчеты в формате MS Word

Вырезаем следующий тэг <wx:sect> в обработку тэга REPORT, не забываем про <xsl:apply-templates/>

Page 68: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Отчеты в формате MS Word, RTF, PDF, HTML

Отчеты в формате MS Word

Проверим работоспособность прежней командой

Должно получиться 2 отчета, не обращаем пока внимания на разбиение страниц

Page 69: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Отчеты в формате MS Word, RTF, PDF, HTML

Отчеты в формате MS Word

Заменим размеченные значения, которые встречаются 1 раз на <xsl:apply-templates select=" “<тэг> "/>

ВАЖНО! Не пишите <xsl:value-of select=“<тэг>"/>

Тег <w:t> и <xsl:apply-templates select=" “<тэг> "/> пишите без пробелов и переводов строки.

Не забываем менять язык на RU, при необходимости

Page 70: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Отчеты в формате MS Word, RTF, PDF, HTML

Отчеты в формате MS Word

Обработку тэгов, которые встречаются внутри <w:t>

Обрабатываем так <xsl:template match ="SORGNAME"><xsl:value-of select="."/></xsl:template>

Без переводов строки!

Page 71: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Отчеты в формате MS Word, RTF, PDF, HTML

Отчеты в формате MS Word

Иначе при выводе значений внутри <w:t> будут пробелы

Page 72: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Отчеты в формате 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

Должно получиться

Page 73: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Отчеты в формате MS Word, RTF, PDF, HTML

Отчеты в формате MS Word

По размеченным значениям, например “aaa” находим ближайший тэг

<w:tc> - это ячейка

Потом найдем ближайшиц <w:tr> - это строка таблицы

Удаляем последний <w:tr> в нужной таблице

Page 74: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Отчеты в формате MS Word, RTF, PDF, HTML

Отчеты в формате MS Word

Теперь последний <w:tr> вставляем в обработчик ROW.

Обработчик ROWS – состоит только из перехода к обработке других тэгов (он нужен только для красоты).

Вместо вырезанного <w:tr> вставим <xsl:apply-templates/>

Page 75: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Отчеты в формате MS Word, RTF, PDF, HTML

Отчеты в формате MS Word

Вставим разрывы страниц

В обработчике REPORTS вместо <xsl:apply-templates/>

Page 76: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Отчеты в формате 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>

Page 77: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Отчеты в формате MS Word, RTF, PDF, HTML

Отчеты в формате MS Word

Вставим разрывы страниц

Это означает, что необходимо написать <w:br w:type="page"/>

после обработки каждого тэга REPORT, кроме последнего.

Page 78: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Отчеты в формате 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>');

Page 79: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Отчеты в формате 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;

Page 80: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Отчеты в формате MS Word, RTF, PDF, HTML

Отчеты в формате HTML

Результат работы

Page 81: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Рассылка отчетов по электронной почте

Автоматическая отправка 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] –напишите адрес от чьего имени будет происходить отправка письма.

Page 82: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Рассылка отчетов по электронной почте

Автоматическая отправка 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 – запишите в него тему письма

Page 83: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Рассылка отчетов по электронной почте

Автоматическая отправка e-mail со стороны клиента

Пример использования в пользовательском приложении

При вызове укажите e-mail и имя файла для вложения

Page 84: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Сервис отложенной печати

Создание пользователя:

Create user PRINT_TEST identified by parusina;

Grant connect to PRINT_TEST;

Создайте роль “Сервер печати”

Page 85: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Сервис отложенной печати

Назначение прав доступа:

Назначьте роли приложение “Сервер отложенной печати отчетов”

Назначьте роли организации , роль <Система> должна быть обязательно

Page 86: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Сервис отложенной печати

Назначение прав доступа:

Назначьте роли права доступа в системе

Page 87: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Сервис отложенной печати

Назначение прав доступа:

Назначьте роли права доступа в организации

Page 88: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Сервис отложенной печати

Автоматический запуск:

Создайте ярлык на запуск p8application.exe со строкой запуска вида

p8application.exe /bБазаДанных /aPrintServer /uПользователь /cОрганизация

Например:

"C:\Program Files\ПАРУС-Предприятие 8.5.6.1\p8application.exe" /bSTUDY /aPrintServer /uPRINT_TEST /cОрганизация

Добавьте ярлык в автозагрузку любого сервера, не обязательно сервера с ORACLE.

Page 89: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления.

Сервис отложенной печати

Автоматический запуск:

1.Запустите ярлык

2.Введите пароль

3.Установите чекер “Сохранить пароль”

Page 90: Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС