Ms excel 8
Download
1 / 42

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


  • 434 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

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


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]


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

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

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

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


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

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

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

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


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

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


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

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

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

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

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


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

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

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

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


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

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

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


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

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

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

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


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

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

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

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


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

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

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


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

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

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


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

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

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

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


Отчеты с типом приложений.“Двоичные данные”

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

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

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


Отчеты с типом приложений.“Двоичные данные”

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

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


Отчеты с типом приложений.“Двоичные данные”

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

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

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


Отчеты с типом приложений.“Двоичные данные”

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


Отчеты с типом приложений.“Двоичные данные”

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

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

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


Отчеты с типом приложений.“Двоичные данные”

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


Отчеты с типом приложений.“Двоичные данные”

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

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


Отчеты с типом приложений.“Двоичные данные”

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

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

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

1 шаг

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

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


Отчеты с типом приложений.“Двоичные данные”

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

2 шаг

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

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


Отчеты с типом приложений.“Двоичные данные”

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

3 шаг

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


Отчеты с типом приложений.“Двоичные данные”

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

4 шаг

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

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


Отчеты с типом приложений.“Двоичные данные”

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

4 шаг

Результат


Отчеты с типом приложений.“Двоичные данные”

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

5 шаг

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


Отчеты с типом приложений.“Двоичные данные”

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

6 шаг

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


Отчеты с типом приложений.“Двоичные данные”

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

7 шаг

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

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


Отчеты с типом приложений.“Двоичные данные”

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

7 шаг

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


Отчеты с типом приложений.“Двоичные данные”

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

7 шаг

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


Отчеты с типом приложений.“Двоичные данные”

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

8 шаг

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


Отчеты с типом приложений.“Двоичные данные”

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

8 шаг

Результат


Отчеты с типом приложений.“Двоичные данные”

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

9 шаг

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


Отчеты с типом приложений.“Двоичные данные”

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

Результат


Отчеты с типом приложений.“Двоичные данные”

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


ВОПРОСЫ приложений.


ad