Описание различных способов получения отчетов ms excel в ...
DESCRIPTION
Описание различных способов получения отчетов MS Excel в "ПАРУС - Предприятие 8". Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС [email protected]. Вопросы рассматриваемые в презентации. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Описание различных способов получения отчетов MS Excel в "ПАРУС - Предприятие 8"](https://reader038.vdocuments.net/reader038/viewer/2022103007/56814320550346895daf873a/html5/thumbnails/1.jpg)
Описание различных способов полученияотчетов MS Excel в
"ПАРУС - Предприятие 8"
Миндияров Илья
Главный специалист
Центра информационных технологий и консалтинга ПАРУС
![Page 2: Описание различных способов получения отчетов MS Excel в "ПАРУС - Предприятие 8"](https://reader038.vdocuments.net/reader038/viewer/2022103007/56814320550346895daf873a/html5/thumbnails/2.jpg)
Комплексная система управления.
Вопросы рассматриваемые в презентации
• Использование пользовательских приложений. Способы ускорения вывода данных в пользовательские приложения.
• Способы формирования отчета в формате XML на стороне сервера (отчет с типом "Двоичные данные").
• Способ ускорения формирования уже существующих отчетов MS Excel.
![Page 3: Описание различных способов получения отчетов MS Excel в "ПАРУС - Предприятие 8"](https://reader038.vdocuments.net/reader038/viewer/2022103007/56814320550346895daf873a/html5/thumbnails/3.jpg)
Комплексная система управления.
Использование пользовательских приложений.
Использования переменных vararray
Плюсы – минимальные переделки.
Минусы – незначительное ускорение работы
![Page 4: Описание различных способов получения отчетов MS Excel в "ПАРУС - Предприятие 8"](https://reader038.vdocuments.net/reader038/viewer/2022103007/56814320550346895daf873a/html5/thumbnails/4.jpg)
Комплексная система управления.
Использование пользовательских приложений.
Метод дает хорошие результаты при выводе большого кол-ва столбцов
![Page 5: Описание различных способов получения отчетов MS Excel в "ПАРУС - Предприятие 8"](https://reader038.vdocuments.net/reader038/viewer/2022103007/56814320550346895daf873a/html5/thumbnails/5.jpg)
Комплексная система управления.
Использование пользовательских приложений.
Написание программы на Visual Basic использую PL/SQL
Минусы – сложно писать, сложно сопровождать
Плюсы – очень быстро работает, не нужно полностью перерабатывать пользовательское приложение.
Пишем процедуру на PL/SQL следующим образом – большие статичные блоки кода на VB описываем функциями, которые возвращают clob
![Page 6: Описание различных способов получения отчетов MS Excel в "ПАРУС - Предприятие 8"](https://reader038.vdocuments.net/reader038/viewer/2022103007/56814320550346895daf873a/html5/thumbnails/6.jpg)
Комплексная система управления.
Использование пользовательских приложений.
Написание программы на Visual Basic использую PL/SQL
Затем такие функции будем добавлять в программу следующим образом.
Где С,С1,С2 - clob
![Page 7: Описание различных способов получения отчетов MS Excel в "ПАРУС - Предприятие 8"](https://reader038.vdocuments.net/reader038/viewer/2022103007/56814320550346895daf873a/html5/thumbnails/7.jpg)
Комплексная система управления.
Использование пользовательских приложений.
Написание программы на Visual Basic использую PL/SQL
Пишем программу так, чтобы все данные из запроса попали в текст программы VB
![Page 8: Описание различных способов получения отчетов MS Excel в "ПАРУС - Предприятие 8"](https://reader038.vdocuments.net/reader038/viewer/2022103007/56814320550346895daf873a/html5/thumbnails/8.jpg)
Комплексная система управления.
Использование пользовательских приложений.
Написание программы на Visual Basic использую PL/SQL
ВАЖНО! Размер одной процедуры на VBA не может превышать 64 Кб.
Я разбивал процедуры по 500 записей
![Page 9: Описание различных способов получения отчетов MS Excel в "ПАРУС - Предприятие 8"](https://reader038.vdocuments.net/reader038/viewer/2022103007/56814320550346895daf873a/html5/thumbnails/9.jpg)
Комплексная система управления.
Использование пользовательских приложений.
Написание программы на Visual Basic использую PL/SQL
Запишем все Clob’ы в один.
Преобразуем Clob в Blob
![Page 10: Описание различных способов получения отчетов MS Excel в "ПАРУС - Предприятие 8"](https://reader038.vdocuments.net/reader038/viewer/2022103007/56814320550346895daf873a/html5/thumbnails/10.jpg)
Комплексная система управления.
Использование пользовательских приложений.
Написание программы на Visual Basic использую PL/SQL
Преобразование Clob в Blob нужно если у вас кодировка БД отлична от CP-1251.
![Page 11: Описание различных способов получения отчетов MS Excel в "ПАРУС - Предприятие 8"](https://reader038.vdocuments.net/reader038/viewer/2022103007/56814320550346895daf873a/html5/thumbnails/11.jpg)
Комплексная система управления.
Использование пользовательских приложений.
Написание программы на Visual Basic использую PL/SQL
В пользовательском приложении пишем следующий код.
![Page 12: Описание различных способов получения отчетов MS Excel в "ПАРУС - Предприятие 8"](https://reader038.vdocuments.net/reader038/viewer/2022103007/56814320550346895daf873a/html5/thumbnails/12.jpg)
Комплексная система управления.
Использование пользовательских приложений.
Написание программы на Visual Basic использую PL/SQL
Чтобы такой код работал необходимо разрешение
“Доверять доступ к объектной модели проектов VBA”
![Page 13: Описание различных способов получения отчетов MS Excel в "ПАРУС - Предприятие 8"](https://reader038.vdocuments.net/reader038/viewer/2022103007/56814320550346895daf873a/html5/thumbnails/13.jpg)
Комплексная система управления.
Отчеты с типом “Двоичные данные”
Первый способ – формирование книги MS Excel на основе SQL запроса с последующим форматированием на стороне клиента
Плюсы – быстро работает
Минусы – сложно описывать форматирование
![Page 14: Описание различных способов получения отчетов MS Excel в "ПАРУС - Предприятие 8"](https://reader038.vdocuments.net/reader038/viewer/2022103007/56814320550346895daf873a/html5/thumbnails/14.jpg)
Комплексная система управления.
Отчеты с типом “Двоичные данные”
Первый способ – формирование книги MS Excel на основе SQL запроса с последующим форматированием на стороне клиента
Форматирование можно описать либо в тексте процедуры отчета, либо загрузить и обработать любой clob/blob из штатного раздела (шаблоны документов, пользовательские приложения)
![Page 15: Описание различных способов получения отчетов MS Excel в "ПАРУС - Предприятие 8"](https://reader038.vdocuments.net/reader038/viewer/2022103007/56814320550346895daf873a/html5/thumbnails/15.jpg)
Комплексная система управления.
Отчеты с типом “Двоичные данные”
Первый способ – формирование книги MS Excel на основе SQL запроса с последующим форматированием на стороне клиента
Значение ‘NULL’ для поля RUN_CMD означает, что файл необходимо сохранить в каталоге %TEMP%, но НЕ вызывать никакую команду ОС
Данная возможность появилась в релизе 8.5.6.1 от 25.06.2013.
![Page 16: Описание различных способов получения отчетов MS Excel в "ПАРУС - Предприятие 8"](https://reader038.vdocuments.net/reader038/viewer/2022103007/56814320550346895daf873a/html5/thumbnails/16.jpg)
Комплексная система управления.
Отчеты с типом “Двоичные данные”
Первый способ – формирование книги MS Excel на основе SQL запроса с последующим форматированием на стороне клиента
![Page 17: Описание различных способов получения отчетов MS Excel в "ПАРУС - Предприятие 8"](https://reader038.vdocuments.net/reader038/viewer/2022103007/56814320550346895daf873a/html5/thumbnails/17.jpg)
Комплексная система управления.
Отчеты с типом “Двоичные данные”
Второй способ – на PL/SQL сгенерировать HTML, а затем HTML открыть в MS Excel.
Плюсы – просто и быстро
Минусы – нет формул, отформатированные числа являются строками, сложно сделать отчет на несколько листов.
![Page 18: Описание различных способов получения отчетов MS Excel в "ПАРУС - Предприятие 8"](https://reader038.vdocuments.net/reader038/viewer/2022103007/56814320550346895daf873a/html5/thumbnails/18.jpg)
Комплексная система управления.
Отчеты с типом “Двоичные данные”
Второй способ – на PL/SQL сгенерировать HTML, а затем HTML открыть в MS Excel.
![Page 19: Описание различных способов получения отчетов MS Excel в "ПАРУС - Предприятие 8"](https://reader038.vdocuments.net/reader038/viewer/2022103007/56814320550346895daf873a/html5/thumbnails/19.jpg)
Комплексная система управления.
Отчеты с типом “Двоичные данные”
Второй способ – на PL/SQL сгенерировать HTML, а затем HTML открыть в MS Excel.
Данная возможность появилась в релизе 8.5.6.1 от 25.06.2013.
![Page 20: Описание различных способов получения отчетов MS Excel в "ПАРУС - Предприятие 8"](https://reader038.vdocuments.net/reader038/viewer/2022103007/56814320550346895daf873a/html5/thumbnails/20.jpg)
Комплексная система управления.
Отчеты с типом “Двоичные данные”
Третий способ – на PL/SQL напрямую сгенерировать MS Excel.
Плюсы – быстрее невозможно
Минусы – очень трудно исправлять печатную форму отчета
1 шаг
Подготовить книгу Excel.
Важно сразу хорошо подготовить все стили – затем это будет сложно исправить
![Page 21: Описание различных способов получения отчетов MS Excel в "ПАРУС - Предприятие 8"](https://reader038.vdocuments.net/reader038/viewer/2022103007/56814320550346895daf873a/html5/thumbnails/21.jpg)
Комплексная система управления.
Отчеты с типом “Двоичные данные”
Третий способ – на PL/SQL напрямую сгенерировать MS Excel.
2 шаг
Сохранить книгу в формате XML.
Открыть книгу в XML-редакторе
![Page 22: Описание различных способов получения отчетов MS Excel в "ПАРУС - Предприятие 8"](https://reader038.vdocuments.net/reader038/viewer/2022103007/56814320550346895daf873a/html5/thumbnails/22.jpg)
Комплексная система управления.
Отчеты с типом “Двоичные данные”
Третий способ – на PL/SQL напрямую сгенерировать MS Excel.
3 шаг
Скопировать всю книгу в функцию, которая возвращает Clob
![Page 23: Описание различных способов получения отчетов MS Excel в "ПАРУС - Предприятие 8"](https://reader038.vdocuments.net/reader038/viewer/2022103007/56814320550346895daf873a/html5/thumbnails/23.jpg)
Комплексная система управления.
Отчеты с типом “Двоичные данные”
Третий способ – на PL/SQL напрямую сгенерировать MS Excel.
4 шаг
Удаляем атрибуты ss:ExpandedColumnCount ss:ExpandedRowCount в тэге Table
Заменяем значение 2013-01-01 на переменную
![Page 24: Описание различных способов получения отчетов MS Excel в "ПАРУС - Предприятие 8"](https://reader038.vdocuments.net/reader038/viewer/2022103007/56814320550346895daf873a/html5/thumbnails/24.jpg)
Комплексная система управления.
Отчеты с типом “Двоичные данные”
Третий способ – на PL/SQL напрямую сгенерировать MS Excel.
4 шаг
Результат
![Page 25: Описание различных способов получения отчетов MS Excel в "ПАРУС - Предприятие 8"](https://reader038.vdocuments.net/reader038/viewer/2022103007/56814320550346895daf873a/html5/thumbnails/25.jpg)
Комплексная система управления.
Отчеты с типом “Двоичные данные”
Третий способ – на PL/SQL напрямую сгенерировать MS Excel.
5 шаг
Вырезаем в текстовый редактор тэг Row с данными
![Page 26: Описание различных способов получения отчетов MS Excel в "ПАРУС - Предприятие 8"](https://reader038.vdocuments.net/reader038/viewer/2022103007/56814320550346895daf873a/html5/thumbnails/26.jpg)
Комплексная система управления.
Отчеты с типом “Двоичные данные”
Третий способ – на PL/SQL напрямую сгенерировать MS Excel.
6 шаг
Вырезаем в новую функцию весь xml, который идет после тэга Row, где описан заголовок таблицы
![Page 27: Описание различных способов получения отчетов MS Excel в "ПАРУС - Предприятие 8"](https://reader038.vdocuments.net/reader038/viewer/2022103007/56814320550346895daf873a/html5/thumbnails/27.jpg)
Комплексная система управления.
Отчеты с типом “Двоичные данные”
Третий способ – на PL/SQL напрямую сгенерировать MS Excel.
7 шаг
Проверим работу отчета
следующим образом
![Page 28: Описание различных способов получения отчетов MS Excel в "ПАРУС - Предприятие 8"](https://reader038.vdocuments.net/reader038/viewer/2022103007/56814320550346895daf873a/html5/thumbnails/28.jpg)
Комплексная система управления.
Отчеты с типом “Двоичные данные”
Третий способ – на PL/SQL напрямую сгенерировать MS Excel.
7 шаг
Результатом должна быть таблица без данных
![Page 29: Описание различных способов получения отчетов MS Excel в "ПАРУС - Предприятие 8"](https://reader038.vdocuments.net/reader038/viewer/2022103007/56814320550346895daf873a/html5/thumbnails/29.jpg)
Комплексная система управления.
Отчеты с типом “Двоичные данные”
Третий способ – на PL/SQL напрямую сгенерировать MS Excel.
7 шаг
Если что-то сделали не так, то появится подобное окно. Внимательно прочитайте указанный файл отчета, для исправления ошибки. Или выполните действия заново начиная с шага 2.
![Page 30: Описание различных способов получения отчетов MS Excel в "ПАРУС - Предприятие 8"](https://reader038.vdocuments.net/reader038/viewer/2022103007/56814320550346895daf873a/html5/thumbnails/30.jpg)
Комплексная система управления.
Отчеты с типом “Двоичные данные”
Третий способ – на PL/SQL напрямую сгенерировать MS Excel.
8 шаг
Проверим, что корректно формируется таблица
![Page 31: Описание различных способов получения отчетов MS Excel в "ПАРУС - Предприятие 8"](https://reader038.vdocuments.net/reader038/viewer/2022103007/56814320550346895daf873a/html5/thumbnails/31.jpg)
Комплексная система управления.
Отчеты с типом “Двоичные данные”
Третий способ – на PL/SQL напрямую сгенерировать MS Excel.
8 шаг
Результат
![Page 32: Описание различных способов получения отчетов MS Excel в "ПАРУС - Предприятие 8"](https://reader038.vdocuments.net/reader038/viewer/2022103007/56814320550346895daf873a/html5/thumbnails/32.jpg)
Комплексная система управления.
Отчеты с типом “Двоичные данные”
Третий способ – на PL/SQL напрямую сгенерировать MS Excel.
9 шаг
Подставляем поля курсора
![Page 33: Описание различных способов получения отчетов MS Excel в "ПАРУС - Предприятие 8"](https://reader038.vdocuments.net/reader038/viewer/2022103007/56814320550346895daf873a/html5/thumbnails/33.jpg)
Комплексная система управления.
Отчеты с типом “Двоичные данные”
Третий способ – на PL/SQL напрямую сгенерировать MS Excel.
Результат
![Page 34: Описание различных способов получения отчетов MS Excel в "ПАРУС - Предприятие 8"](https://reader038.vdocuments.net/reader038/viewer/2022103007/56814320550346895daf873a/html5/thumbnails/34.jpg)
Комплексная система управления.
Отчеты с типом “Двоичные данные”
Третий способ – на PL/SQL напрямую сгенерировать MS Excel.
Сложности: Если в тэге Row с данными (либо в строках после отчета) встречается атрибут ss:Index, то необходимо в пустых строках добавить пробелы в любую ячейку, чтобы избавиться от ss:Index.
<Table ss:ExpandedColumnCount=“1" ss:ExpandedRowCount="12" x:FullColumns="1"
x:FullRows="1">
<Row ss:Index="12">
<Cell><Data ss:Type="String">text</Data></Cell>
</Row>
</Table>
![Page 35: Описание различных способов получения отчетов MS Excel в "ПАРУС - Предприятие 8"](https://reader038.vdocuments.net/reader038/viewer/2022103007/56814320550346895daf873a/html5/thumbnails/35.jpg)
Комплексная система управления.
Ускорение существующих отчетов MS Excel
Силами ЦИТК Парус разработан пакет PL/SQL, который по данным, сгенерированным штатным пакетом PRSG_EXCEL, создает XML формата OfficeML на сервере.
Ограничения пакета:• Никогда не будет реализован PRSG_EXCEL.EXECUTE_MACROS.Пока ТОЛЬКО реализованы методы
PRSG_EXCEL.LINE_APPENDPRSG_EXCEL.LINE_CONTINUEPRSG_EXCEL.LINE_DELETEPRSG_EXCEL.CELL_VALUE_WRITE.
Пока не умеет работать с шаблонами в которых встречается тэг Row с атрибутом ss:Index.
![Page 36: Описание различных способов получения отчетов MS Excel в "ПАРУС - Предприятие 8"](https://reader038.vdocuments.net/reader038/viewer/2022103007/56814320550346895daf873a/html5/thumbnails/36.jpg)
Комплексная система управления.
Ускорение существующих отчетов MS Excel
Пример использования
Создать процедуру для двоичного отчета в которой вызвать процедуру существующего отчета MS Excel
![Page 37: Описание различных способов получения отчетов MS Excel в "ПАРУС - Предприятие 8"](https://reader038.vdocuments.net/reader038/viewer/2022103007/56814320550346895daf873a/html5/thumbnails/37.jpg)
Комплексная система управления.
Ускорение существующих отчетов MS Excel
Пример использования
Вызвать UDO_PKG_MSEXEL.PROCESS
Входной параметр – шаблон существующего отчета сохраненный в формате XML
Выходной параметр – готовый отчет MS Excel.
![Page 38: Описание различных способов получения отчетов MS Excel в "ПАРУС - Предприятие 8"](https://reader038.vdocuments.net/reader038/viewer/2022103007/56814320550346895daf873a/html5/thumbnails/38.jpg)
Комплексная система управления.
Ускорение существующих отчетов MS Excel
Пример использования
Результат
![Page 39: Описание различных способов получения отчетов MS Excel в "ПАРУС - Предприятие 8"](https://reader038.vdocuments.net/reader038/viewer/2022103007/56814320550346895daf873a/html5/thumbnails/39.jpg)
Комплексная система управления.
Ускорение существующих отчетов MS Excel
Сложность:
Когда сохраните шаблон в XML в текстовом редакторе необходимо проверить, что нет текста Row ss:Index. Если такой текст встретился добавьте в пустые строки пробелы в первую ячейку.
![Page 40: Описание различных способов получения отчетов MS Excel в "ПАРУС - Предприятие 8"](https://reader038.vdocuments.net/reader038/viewer/2022103007/56814320550346895daf873a/html5/thumbnails/40.jpg)
Комплексная система управления.
Ускорение существующих отчетов MS Excel
На существующих отчетахприрост производительности
увеличивался в 9-10 раз.
![Page 41: Описание различных способов получения отчетов MS Excel в "ПАРУС - Предприятие 8"](https://reader038.vdocuments.net/reader038/viewer/2022103007/56814320550346895daf873a/html5/thumbnails/41.jpg)
Комплексная система управления.
Ускорение существующих отчетов MS Excel
Вопрос•Нужно ли дорабатывать UDO_PKG_MSEXEL
до полного соответствия с методами PRSG_EXCEL?
![Page 42: Описание различных способов получения отчетов MS Excel в "ПАРУС - Предприятие 8"](https://reader038.vdocuments.net/reader038/viewer/2022103007/56814320550346895daf873a/html5/thumbnails/42.jpg)