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

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

Никак, вручную создавать, например, или использовать тип pl/sql function body returning sql query, использующий встроенные шаблоны.
Ну я уже догадался, что вручную... А вот как именно? Можно по-подробней?
...
Рейтинг: 0 / 0
Выгрузка в Excel c PL/SQL блока
    #37472965
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Настроить сервер печати. Например, BI Publisher. Или ищите альтернативы.
http://www.sql.ru/forum/actualthread.aspx?tid=746299&hl=excel
Или смотрите формат Excel и пишите сами.
...
Рейтинг: 0 / 0
Выгрузка в Excel c PL/SQL блока
    #37473010
non-apexoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DanJa, в любом случае, в вашем pl/sql регионе есть запрос, которым формируется выборка. Имея этот запрос в виде строки, можно сделать выгрузку в Excel, подсмотрев, как это сделано, в одном из плагинов . Разница в том, что плагин берёт запросы из свойств региона, ну а вы подсунете свою строку.
...
Рейтинг: 0 / 0
Выгрузка в Excel c PL/SQL блока
    #37473446
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 то он откроется и покажет то что надо
...
Рейтинг: 0 / 0
Выгрузка в Excel c PL/SQL блока
    #37475183
DanJa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Выгрузка в Excel c PL/SQL блока
    #37475216
DanJa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все, ничего не надо! Посмотрел Урок №16 с applicationexpress.ru - сейчас также сделаю! Этот вариант мне подходит!
Всем спасибо! Особенно applicationexpress.ru !
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Выгрузка в Excel c PL/SQL блока
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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