Гость
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Выгрузка в Excel c PL/SQL блока / 8 сообщений из 8, страница 1 из 1
07.10.2011, 12:47
    #37472684
DanJa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка в Excel c PL/SQL блока
Добрый день!
Подскажите, как можно прикрутить выгрузку в Excel к репорту, созданному вручную в PL/SQL Dynamic content риджене (аналогично обычной выгрузке в простом SQL репорт риджене)?
Application Express 3.2.1.00.11
...
Рейтинг: 0 / 0
07.10.2011, 13:24
    #37472779
SvDev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка в Excel c PL/SQL блока
DanJa,

Никак, вручную создавать, например, или использовать тип pl/sql function body returning sql query, использующий встроенные шаблоны.
...
Рейтинг: 0 / 0
07.10.2011, 13:50
    #37472829
DanJa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка в Excel c PL/SQL блока
SvDevDanJa,

Никак, вручную создавать, например, или использовать тип pl/sql function body returning sql query, использующий встроенные шаблоны.
Ну я уже догадался, что вручную... А вот как именно? Можно по-подробней?
...
Рейтинг: 0 / 0
07.10.2011, 14:34
    #37472965
SvDev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка в Excel c PL/SQL блока
Настроить сервер печати. Например, BI Publisher. Или ищите альтернативы.
http://www.sql.ru/forum/actualthread.aspx?tid=746299&hl=excel
Или смотрите формат Excel и пишите сами.
...
Рейтинг: 0 / 0
07.10.2011, 14:50
    #37473010
non-apexoid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка в Excel c PL/SQL блока
DanJa, в любом случае, в вашем pl/sql регионе есть запрос, которым формируется выборка. Имея этот запрос в виде строки, можно сделать выгрузку в Excel, подсмотрев, как это сделано, в одном из плагинов . Разница в том, что плагин берёт запросы из свойств региона, ну а вы подсунете свою строку.
...
Рейтинг: 0 / 0
07.10.2011, 18:44
    #37473446
Ivandr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка в Excel c PL/SQL блока
идея заключается в том что вы обращаетесь к какой нибуть процедуру в БД из APEX по ссылке, типа как то так:
'p='+$v('pFlowId')+':0:'+$v('pInstance')+':APPLICATION_PROCESS=PROCESS_NAME:::'
где PROCESS_NAME название апликейшен процесса в APEX, из этого процесса уже можно вызвать вашу процедуру (можно ее конечно и на прямую вызвать но так лучше)

в вашей процедуре печатаете с помощью htp.p код Excel файла (посмотреть пример такого кода можно сохранить из Excel файла и открыв в текстовом редакторе, только сохранять надо в формате xls или лучше даже в xml)

не забыв при этом прописать в начале файла
OWA_UTIL.mime_header ('application/octet', FALSE);
HTP.p ('Content-Disposition: attachment; filename="file_name.xls");
это заставит сервер вместо того что бы напечатать в браузере ответ, скачать его в файл

в итоге получается что вы скачиваете файл со сгенеренным кодом внутри и называться он будет file_name.xls и если код сгенерен так что удовлетворяет всем требованиям Excel то он откроется и покажет то что надо
...
Рейтинг: 0 / 0
10.10.2011, 10:58
    #37475183
DanJa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка в Excel c PL/SQL блока
Ivandrидея заключается в том что вы обращаетесь к какой нибуть процедуру в БД из APEX по ссылке, типа как то так:
'p='+$v('pFlowId')+':0:'+$v('pInstance')+':APPLICATION_PROCESS=PROCESS_NAME:::'
где PROCESS_NAME название апликейшен процесса в APEX, из этого процесса уже можно вызвать вашу процедуру (можно ее конечно и на прямую вызвать но так лучше)

в вашей процедуре печатаете с помощью htp.p код Excel файла (посмотреть пример такого кода можно сохранить из Excel файла и открыв в текстовом редакторе, только сохранять надо в формате xls или лучше даже в xml)

не забыв при этом прописать в начале файла
OWA_UTIL.mime_header ('application/octet', FALSE);
HTP.p ('Content-Disposition: attachment; filename="file_name.xls");
это заставит сервер вместо того что бы напечатать в браузере ответ, скачать его в файл

в итоге получается что вы скачиваете файл со сгенеренным кодом внутри и называться он будет file_name.xls и если код сгенерен так что удовлетворяет всем требованиям Excel то он откроется и покажет то что надо

Примерно понял, что делать, но есть пара вопросов:
1) Ссылку делаю в том же PL/SQL блоке с помощью htp.p. Никак не догоню, как мне ссылку сформировать.
Получается что-то типа такого - htp.p('<a href="f?p='||$v('pFlowId')||'...'); Ругается на кавычки или на непонятную конструкцию V! Как правильно сформировать ссылку с помощью htp.p?
2) Как вызывать процедуру напрямую, минуя процесс? И почему лучше через процесс?
3) APPLICATION_PROCESS, как я понимаю - это обычный процесс на странице? Тогда где его лучше заводить? Ну так, чтобы он отрабатывался только по клику на ссылке?
4) xml-файл открывал блокнотом - крякозябры! Решили вывод сделать в виде xml-файла! В начале файла так же выводить -
OWA_UTIL.mime_header ('application/octet', FALSE);
HTP.p ('Content-Disposition: attachment; filename="file_name.xls");
?
...
Рейтинг: 0 / 0
10.10.2011, 11:13
    #37475216
DanJa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка в Excel c PL/SQL блока
Все, ничего не надо! Посмотрел Урок №16 с applicationexpress.ru - сейчас также сделаю! Этот вариант мне подходит!
Всем спасибо! Особенно applicationexpress.ru !
...
Рейтинг: 0 / 0
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Выгрузка в Excel c PL/SQL блока / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]