Ms excel 8
This presentation is the property of its rightful owner.
Sponsored Links
1 / 42

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


  • 262 Views
  • Uploaded on
  • Presentation posted in: General

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

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Ms excel 8

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

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

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

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

[email protected]


Ms excel 8

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

  • Использование пользовательских приложений. Способы ускорения вывода данных в пользовательские приложения.

  • Способы формирования отчета в формате XML на стороне сервера (отчет с типом "Двоичные данные").

  • Способ ускорения формирования уже существующих отчетов MS Excel.


Ms excel 8

Использование пользовательских приложений.

Использования переменных vararray

Плюсы – минимальные переделки.

Минусы – незначительное ускорение работы


Ms excel 8

Использование пользовательских приложений.

Метод дает хорошие результаты при выводе большого кол-ва столбцов


Ms excel 8

Использование пользовательских приложений.

Написание программы на Visual Basic использую PL/SQL

Минусы – сложно писать, сложно сопровождать

Плюсы – очень быстро работает, не нужно полностью перерабатывать пользовательское приложение.

Пишем процедуру на PL/SQL следующим образом – большие статичные блоки кода на VB описываем функциями, которые возвращают clob


Ms excel 8

Использование пользовательских приложений.

Написание программы на Visual Basic использую PL/SQL

Затем такие функции будем добавлять в программу следующим образом.

Где С,С1,С2 - clob


Ms excel 8

Использование пользовательских приложений.

Написание программы на Visual Basic использую PL/SQL

Пишем программу так, чтобы все данные из запроса попали в текст программы VB


Ms excel 8

Использование пользовательских приложений.

Написание программы на Visual Basic использую PL/SQL

ВАЖНО! Размер одной процедуры на VBA не может превышать 64 Кб.

Я разбивал процедуры по 500 записей


Ms excel 8

Использование пользовательских приложений.

Написание программы на Visual Basic использую PL/SQL

Запишем все Clob’ы в один.

Преобразуем Clob в Blob


Ms excel 8

Использование пользовательских приложений.

Написание программы на Visual Basic использую PL/SQL

Преобразование Clob в Blob нужно если у вас кодировка БД отлична от CP-1251.


Ms excel 8

Использование пользовательских приложений.

Написание программы на Visual Basic использую PL/SQL

В пользовательском приложении пишем следующий код.


Ms excel 8

Использование пользовательских приложений.

Написание программы на Visual Basic использую PL/SQL

Чтобы такой код работал необходимо разрешение

“Доверять доступ к объектной модели проектов VBA”


Ms excel 8

Отчеты с типом “Двоичные данные”

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

Плюсы –быстроработает

Минусы – сложно описывать форматирование


Ms excel 8

Отчеты с типом “Двоичные данные”

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

Форматирование можно описать либо в тексте процедуры отчета, либо загрузить и обработать любой clob/blob из штатного раздела (шаблоны документов, пользовательские приложения)


Ms excel 8

Отчеты с типом “Двоичные данные”

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

Значение ‘NULL’ для поля RUN_CMD означает, что файл необходимо сохранить в каталоге %TEMP%, но НЕ вызывать никакую команду ОС

Данная возможность появилась в релизе 8.5.6.1 от 25.06.2013.


Ms excel 8

Отчеты с типом “Двоичные данные”

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


Ms excel 8

Отчеты с типом “Двоичные данные”

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

Плюсы – просто и быстро

Минусы – нет формул, отформатированные числа являются строками, сложно сделать отчет на несколько листов.


Ms excel 8

Отчеты с типом “Двоичные данные”

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


Ms excel 8

Отчеты с типом “Двоичные данные”

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

Данная возможность появилась в релизе 8.5.6.1 от 25.06.2013.


Ms excel 8

Отчеты с типом “Двоичные данные”

Третий способ – на PL/SQL напрямуюсгенерировать MS Excel.

Плюсы – быстрее невозможно

Минусы – очень трудно исправлять печатную форму отчета

1 шаг

Подготовить книгу Excel.

Важно сразу хорошо подготовить все стили – затем это будет сложно исправить


Ms excel 8

Отчеты с типом “Двоичные данные”

Третий способ – на PL/SQL напрямуюсгенерировать MS Excel.

2 шаг

Сохранить книгу в формате XML.

Открыть книгу в XML-редакторе


Ms excel 8

Отчеты с типом “Двоичные данные”

Третий способ – на PL/SQL напрямуюсгенерировать MS Excel.

3 шаг

Скопировать всю книгу в функцию, которая возвращает Clob


Ms excel 8

Отчеты с типом “Двоичные данные”

Третий способ – на PL/SQL напрямуюсгенерировать MS Excel.

4 шаг

Удаляем атрибуты ss:ExpandedColumnCount ss:ExpandedRowCount в тэге Table

Заменяем значение 2013-01-01 на переменную


Ms excel 8

Отчеты с типом “Двоичные данные”

Третий способ – на PL/SQL напрямуюсгенерировать MS Excel.

4 шаг

Результат


Ms excel 8

Отчеты с типом “Двоичные данные”

Третий способ – на PL/SQL напрямуюсгенерировать MS Excel.

5 шаг

Вырезаем в текстовый редактор тэг Row с данными


Ms excel 8

Отчеты с типом “Двоичные данные”

Третий способ – на PL/SQL напрямуюсгенерировать MS Excel.

6 шаг

Вырезаем в новую функцию весь xml, который идет после тэга Row, где описан заголовок таблицы


Ms excel 8

Отчеты с типом “Двоичные данные”

Третий способ – на PL/SQL напрямуюсгенерировать MS Excel.

7 шаг

Проверим работу отчета

следующим образом


Ms excel 8

Отчеты с типом “Двоичные данные”

Третий способ – на PL/SQL напрямуюсгенерировать MS Excel.

7 шаг

Результатом должна быть таблица без данных


Ms excel 8

Отчеты с типом “Двоичные данные”

Третий способ – на PL/SQL напрямуюсгенерировать MS Excel.

7 шаг

Если что-то сделали не так, то появится подобное окно. Внимательно прочитайте указанный файл отчета, для исправления ошибки. Или выполните действия заново начиная с шага 2.


Ms excel 8

Отчеты с типом “Двоичные данные”

Третий способ – на PL/SQL напрямуюсгенерировать MS Excel.

8 шаг

Проверим, что корректно формируется таблица


Ms excel 8

Отчеты с типом “Двоичные данные”

Третий способ – на PL/SQL напрямуюсгенерировать MS Excel.

8 шаг

Результат


Ms excel 8

Отчеты с типом “Двоичные данные”

Третий способ – на PL/SQL напрямуюсгенерировать MS Excel.

9 шаг

Подставляем поля курсора


Ms excel 8

Отчеты с типом “Двоичные данные”

Третий способ – на PL/SQL напрямуюсгенерировать MS Excel.

Результат


Ms excel 8

Отчеты с типом “Двоичные данные”

Третий способ – на 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>


Ms excel

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


Ms excel1

Ускорение существующих отчетов MS Excel

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

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


Ms excel2

Ускорение существующих отчетов MS Excel

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

Вызвать UDO_PKG_MSEXEL.PROCESS

Входной параметр – шаблон существующего отчета сохраненный в формате XML

Выходной параметр – готовый отчет MS Excel.


Ms excel3

Ускорение существующих отчетов MS Excel

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

Результат


Ms excel4

Ускорение существующих отчетов MS Excel

Сложность:

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


Ms excel5

Ускорение существующих отчетов MS Excel

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


Ms excel6

Ускорение существующих отчетов MS Excel

Вопрос

Нужно ли дорабатывать UDO_PKG_MSEXELдо полного соответствия с методами PRSG_EXCEL?


Ms excel 8

ВОПРОСЫ


  • Login