1 / 42

Описание различных способов получения отчетов MS Excel в "ПАРУС - Предприятие 8"

Описание различных способов получения отчетов MS Excel в "ПАРУС - Предприятие 8". Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС mindiyarov@parus.ru. Вопросы рассматриваемые в презентации.

tavon
Download Presentation

Описание различных способов получения отчетов MS Excel в "ПАРУС - Предприятие 8"

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Описание различных способов полученияотчетов MS Excel в "ПАРУС - Предприятие 8" Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС mindiyarov@parus.ru

  2. Вопросы рассматриваемые в презентации • Использование пользовательских приложений. Способы ускорения вывода данных в пользовательские приложения. • Способы формирования отчета в формате XML на стороне сервера (отчет с типом "Двоичные данные"). • Способ ускорения формирования уже существующих отчетов MS Excel.

  3. Использование пользовательских приложений. Использования переменных vararray Плюсы – минимальные переделки. Минусы – незначительное ускорение работы

  4. Использование пользовательских приложений. Метод дает хорошие результаты при выводе большого кол-ва столбцов

  5. Использование пользовательских приложений. Написание программы на Visual Basic использую PL/SQL Минусы – сложно писать, сложно сопровождать Плюсы – очень быстро работает, не нужно полностью перерабатывать пользовательское приложение. Пишем процедуру на PL/SQL следующим образом – большие статичные блоки кода на VB описываем функциями, которые возвращают clob

  6. Использование пользовательских приложений. Написание программы на Visual Basic использую PL/SQL Затем такие функции будем добавлять в программу следующим образом. Где С,С1,С2 - clob

  7. Использование пользовательских приложений. Написание программы на Visual Basic использую PL/SQL Пишем программу так, чтобы все данные из запроса попали в текст программы VB

  8. Использование пользовательских приложений. Написание программы на Visual Basic использую PL/SQL ВАЖНО! Размер одной процедуры на VBA не может превышать 64 Кб. Я разбивал процедуры по 500 записей

  9. Использование пользовательских приложений. Написание программы на Visual Basic использую PL/SQL Запишем все Clob’ы в один. Преобразуем Clob в Blob

  10. Использование пользовательских приложений. Написание программы на Visual Basic использую PL/SQL Преобразование Clob в Blob нужно если у вас кодировка БД отлична от CP-1251.

  11. Использование пользовательских приложений. Написание программы на Visual Basic использую PL/SQL В пользовательском приложении пишем следующий код.

  12. Использование пользовательских приложений. Написание программы на Visual Basic использую PL/SQL Чтобы такой код работал необходимо разрешение “Доверять доступ к объектной модели проектов VBA”

  13. Отчеты с типом “Двоичные данные” Первый способ – формирование книги MS Excel на основе SQL запроса с последующим форматированием на стороне клиента Плюсы –быстроработает Минусы – сложно описывать форматирование

  14. Отчеты с типом “Двоичные данные” Первый способ – формирование книги MS Excel на основе SQL запроса с последующим форматированием на стороне клиента Форматирование можно описать либо в тексте процедуры отчета, либо загрузить и обработать любой clob/blob из штатного раздела (шаблоны документов, пользовательские приложения)

  15. Отчеты с типом “Двоичные данные” Первый способ – формирование книги MS Excel на основе SQL запроса с последующим форматированием на стороне клиента Значение ‘NULL’ для поля RUN_CMD означает, что файл необходимо сохранить в каталоге %TEMP%, но НЕ вызывать никакую команду ОС Данная возможность появилась в релизе 8.5.6.1 от 25.06.2013.

  16. Отчеты с типом “Двоичные данные” Первый способ – формирование книги MS Excel на основе SQL запроса с последующим форматированием на стороне клиента

  17. Отчеты с типом “Двоичные данные” Второй способ – на PL/SQL сгенерировать HTML, а затем HTML открыть в MS Excel. Плюсы – просто и быстро Минусы – нет формул, отформатированные числа являются строками, сложно сделать отчет на несколько листов.

  18. Отчеты с типом “Двоичные данные” Второй способ – на PL/SQL сгенерировать HTML, а затем HTML открыть в MS Excel.

  19. Отчеты с типом “Двоичные данные” Второй способ – на PL/SQL сгенерировать HTML, а затем HTML открыть в MS Excel. Данная возможность появилась в релизе 8.5.6.1 от 25.06.2013.

  20. Отчеты с типом “Двоичные данные” Третий способ – на PL/SQL напрямуюсгенерировать MS Excel. Плюсы – быстрее невозможно Минусы – очень трудно исправлять печатную форму отчета 1 шаг Подготовить книгу Excel. Важно сразу хорошо подготовить все стили – затем это будет сложно исправить

  21. Отчеты с типом “Двоичные данные” Третий способ – на PL/SQL напрямуюсгенерировать MS Excel. 2 шаг Сохранить книгу в формате XML. Открыть книгу в XML-редакторе

  22. Отчеты с типом “Двоичные данные” Третий способ – на PL/SQL напрямуюсгенерировать MS Excel. 3 шаг Скопировать всю книгу в функцию, которая возвращает Clob

  23. Отчеты с типом “Двоичные данные” Третий способ – на PL/SQL напрямуюсгенерировать MS Excel. 4 шаг Удаляем атрибуты ss:ExpandedColumnCount ss:ExpandedRowCount в тэге Table Заменяем значение 2013-01-01 на переменную

  24. Отчеты с типом “Двоичные данные” Третий способ – на PL/SQL напрямуюсгенерировать MS Excel. 4 шаг Результат

  25. Отчеты с типом “Двоичные данные” Третий способ – на PL/SQL напрямуюсгенерировать MS Excel. 5 шаг Вырезаем в текстовый редактор тэг Row с данными

  26. Отчеты с типом “Двоичные данные” Третий способ – на PL/SQL напрямуюсгенерировать MS Excel. 6 шаг Вырезаем в новую функцию весь xml, который идет после тэга Row, где описан заголовок таблицы

  27. Отчеты с типом “Двоичные данные” Третий способ – на PL/SQL напрямуюсгенерировать MS Excel. 7 шаг Проверим работу отчета следующим образом

  28. Отчеты с типом “Двоичные данные” Третий способ – на PL/SQL напрямуюсгенерировать MS Excel. 7 шаг Результатом должна быть таблица без данных

  29. Отчеты с типом “Двоичные данные” Третий способ – на PL/SQL напрямуюсгенерировать MS Excel. 7 шаг Если что-то сделали не так, то появится подобное окно. Внимательно прочитайте указанный файл отчета, для исправления ошибки. Или выполните действия заново начиная с шага 2.

  30. Отчеты с типом “Двоичные данные” Третий способ – на PL/SQL напрямуюсгенерировать MS Excel. 8 шаг Проверим, что корректно формируется таблица

  31. Отчеты с типом “Двоичные данные” Третий способ – на PL/SQL напрямуюсгенерировать MS Excel. 8 шаг Результат

  32. Отчеты с типом “Двоичные данные” Третий способ – на PL/SQL напрямуюсгенерировать MS Excel. 9 шаг Подставляем поля курсора

  33. Отчеты с типом “Двоичные данные” Третий способ – на PL/SQL напрямуюсгенерировать MS Excel. Результат

  34. Отчеты с типом “Двоичные данные” Третий способ – на 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>

  35. Ускорение существующих отчетов 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.

  36. Ускорение существующих отчетов MS Excel Пример использования Создать процедуру для двоичного отчета в которой вызвать процедуру существующего отчета MS Excel

  37. Ускорение существующих отчетов MS Excel Пример использования Вызвать UDO_PKG_MSEXEL.PROCESS Входной параметр – шаблон существующего отчета сохраненный в формате XML Выходной параметр – готовый отчет MS Excel.

  38. Ускорение существующих отчетов MS Excel Пример использования Результат

  39. Ускорение существующих отчетов MS Excel Сложность: Когда сохраните шаблон в XML в текстовом редакторе необходимо проверить, что нет текста Row ss:Index. Если такой текст встретился добавьте в пустые строки пробелы в первую ячейку.

  40. Ускорение существующих отчетов MS Excel На существующих отчетахприрост производительности увеличивался в 9-10 раз.

  41. Ускорение существующих отчетов MS Excel Вопрос Нужно ли дорабатывать UDO_PKG_MSEXELдо полного соответствия с методами PRSG_EXCEL?

  42. ВОПРОСЫ

More Related