|
Выгрузка в Excel c PL/SQL блока
|
|||
---|---|---|---|
#18+
Добрый день! Подскажите, как можно прикрутить выгрузку в Excel к репорту, созданному вручную в PL/SQL Dynamic content риджене (аналогично обычной выгрузке в простом SQL репорт риджене)? Application Express 3.2.1.00.11 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2011, 12:47 |
|
Выгрузка в Excel c PL/SQL блока
|
|||
---|---|---|---|
#18+
DanJa, Никак, вручную создавать, например, или использовать тип pl/sql function body returning sql query, использующий встроенные шаблоны. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2011, 13:24 |
|
Выгрузка в Excel c PL/SQL блока
|
|||
---|---|---|---|
#18+
SvDevDanJa, Никак, вручную создавать, например, или использовать тип pl/sql function body returning sql query, использующий встроенные шаблоны. Ну я уже догадался, что вручную... А вот как именно? Можно по-подробней? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2011, 13:50 |
|
Выгрузка в Excel c PL/SQL блока
|
|||
---|---|---|---|
#18+
Настроить сервер печати. Например, BI Publisher. Или ищите альтернативы. http://www.sql.ru/forum/actualthread.aspx?tid=746299&hl=excel Или смотрите формат Excel и пишите сами. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2011, 14:34 |
|
Выгрузка в Excel c PL/SQL блока
|
|||
---|---|---|---|
#18+
DanJa, в любом случае, в вашем pl/sql регионе есть запрос, которым формируется выборка. Имея этот запрос в виде строки, можно сделать выгрузку в Excel, подсмотрев, как это сделано, в одном из плагинов . Разница в том, что плагин берёт запросы из свойств региона, ну а вы подсунете свою строку. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2011, 14:50 |
|
Выгрузка в Excel c PL/SQL блока
|
|||
---|---|---|---|
#18+
идея заключается в том что вы обращаетесь к какой нибуть процедуру в БД из 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 то он откроется и покажет то что надо ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2011, 18:44 |
|
Выгрузка в Excel c PL/SQL блока
|
|||
---|---|---|---|
#18+
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"); ? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2011, 10:58 |
|
Выгрузка в Excel c PL/SQL блока
|
|||
---|---|---|---|
#18+
Все, ничего не надо! Посмотрел Урок №16 с applicationexpress.ru - сейчас также сделаю! Этот вариант мне подходит! Всем спасибо! Особенно applicationexpress.ru ! ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2011, 11:13 |
|
|
start [/forum/search_topic.php?author=Woodpecker&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
28ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 722ms |
total: | 860ms |
0 / 0 |