Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Экспорт нескольких отчетов одновременно
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток, ищу решение такой вот проблемки: На странице есть 3 отдельных региона - отчета. Надо одной кнопкой экспортировать их всех в csv или любой другой формат понятный экселю. Старндартными методами как я понял можно экспортировать по отдельности каждый регион, но не все разом. Пробовал на всю страницу выставлять Page Template: PrinterFriendly и Before Header/Processes страницы пихать: BEGIN owa_util.mime_header('application/vnd.ms-excel', FALSE); htp.p('Content-Disposition: attachment; filename="my_file.csv"'); owa_util.http_header_close; END; а в After regions/Processes: BEGIN htmldb_application.g_unrecoverable_error := TRUE; END; В итоге получаю одним куском файл со всеми 3 отчетами но к сожалению в него попадает много html мусора от которого я не знаю способа как избавиться. Рою инет уже которую неделю, может я чето не догоняю даже как то не вериться что в апексе такой возможности как комплексный экспорт страницы со всеми отчетами нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2012, 02:59 |
|
||
|
Экспорт нескольких отчетов одновременно
|
|||
|---|---|---|---|
|
#18+
вот примерт как это выглядит http://apex.oracle.com/pls/apex/f?p=39655 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2012, 18:00 |
|
||
|
Экспорт нескольких отчетов одновременно
|
|||
|---|---|---|---|
|
#18+
Неужели никаких идей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2012, 01:04 |
|
||
|
Экспорт нескольких отчетов одновременно
|
|||
|---|---|---|---|
|
#18+
Den999, Shared Components > Reports > Report Queries + Report Layouts смотрели? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2012, 09:20 |
|
||
|
Экспорт нескольких отчетов одновременно
|
|||
|---|---|---|---|
|
#18+
Den999, И что? Я вот например в новом Excel'е такое тоже найти не могу. Вы уверены, что формат csv вообще такое поддерживает (несколько таблиц) ? Можно конечно поизвращаться с сервером печати. Или долго и настойчиво искать какие-то библиотеки. Но не страдайте фигней. Программируется руками за 15 мин. Вот пару ссылок, которые могут помочь Denes Kubicek. Upload Files Страница без темплейтов Заодно определитесь с форматом, что вы хотите получить в итоге... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2012, 12:00 |
|
||
|
Экспорт нескольких отчетов одновременно
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2012, 12:27 |
|
||
|
Экспорт нескольких отчетов одновременно
|
|||
|---|---|---|---|
|
#18+
haXbatDen999, Вот рабочий пример. Выгрузка в один файл xls данных из двух запросов. это мой пример? а где первый вертикальный отчет? уточню, на моей странице три отчета: 1) вертикальный sql отчет 2) обычный но из PL/SQL function body returning SQL query 3) Interactive Report если это сделано с помощью внешнего принт сервера типа BI Publisher'a или т.п. то такой вариант к сожеления не подходит, т.к. у заказчика физически невозможно больше ничего дополнительно инсталировать кроме уже существующих win7 64bit+db11.2+apex4.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2012, 15:33 |
|
||
|
Экспорт нескольких отчетов одновременно
|
|||
|---|---|---|---|
|
#18+
haXbatDen999, Вот рабочий пример. Выгрузка в один файл xls данных из двух запросов. Прекрасно знаю такой способ генерированию страниц, сам его изпользовал с обычным Apache+mod_plsql лет 5 назад до перехода на апекс. Теперь вы мне предлагаете перелопатить готовую апликацию с 10 отчетами и в РУЧНУЮ запрограмить их все? Поверьте это точно не 15мин и даже не 15 часов. Это я тут для пониманию моей задачи привел очень упрощеный примерчик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2012, 15:42 |
|
||
|
Экспорт нескольких отчетов одновременно
|
|||
|---|---|---|---|
|
#18+
SvDevDen999, И что? Я вот например в новом Excel'е такое тоже найти не могу. Вы уверены, что формат csv вообще такое поддерживает (несколько таблиц) ? Можно конечно поизвращаться с сервером печати. Или долго и настойчиво искать какие-то библиотеки. Но не страдайте фигней. Программируется руками за 15 мин. Вот пару ссылок, которые могут помочь Denes Kubicek. Upload Files Страница без темплейтов Заодно определитесь с форматом, что вы хотите получить в итоге... Да в xls формат не обязательно конвертировать, достаточно обычный CSV. Он не может поддерживать или не поддерживать несколько таблиц, т.к. это обычный текст разделенный определенным символом по которому уже программа его обрабатывающаю может парсить его в таблицы. Так что это задача экселя поддерживать, с чем она и прекрасно справляется. В итоге мне надо обычные экселевские таблицы без всякого форматирования, поэтому и выбрал и CSV тут самое простое решение. Ну как аналог может быть в HTML или XML он (эксель) тоже прекрасно распарщивает. Как пример я попробовал сделать выгрузку страницы генирируемой апексом в HTML но что из этого получается видели на примере -куча ненужного мусора. Насчет приведенных ссылок: Прекрасно знаю такой способ генерированию страниц, сам его изпользовал с обычным Apache+mod_plsql лет 5 назад до перехода на апекс. Теперь вы мне предлагаете перелопатить готовую апликацию с 10 отчетами и в РУЧНУЮ запрограмить их все? Поверьте это точно не 15мин и даже не 15 часов. Это я тут для пониманию моей задачи привел очень упрощеный примерчик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2012, 15:53 |
|
||
|
Экспорт нескольких отчетов одновременно
|
|||
|---|---|---|---|
|
#18+
Den999, Код: plsql 1. 2. Да где же справляется-то ??? Офис 2007 нету. Офис 2003 умеет только один лист экспортировать в него. Объедините в один репорт, скройте, и получить возможность экспорта объединенных данных. авторПоверьте это точно не 15мин и даже не 15 часов. Это я тут для пониманию моей задачи привел очень упрощеный примерчик. вот именно потому что csv это просто значения через разделитель, глупо искать библиотеку для непонятной задачи, которую даже excel не умеет. Проще сделать руками. Где там 15 часов нашли не понятно. Под каждым reports есть source. Продублировать его, и записать через разделитель. Если у вас там супер-сложно-организованный-dynamic content, или нужно проделать на 100 страницах, можно поискать другие подходы собирания данных, но это уже другая тема. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2012, 16:20 |
|
||
|
Экспорт нескольких отчетов одновременно
|
|||
|---|---|---|---|
|
#18+
SvDevDen999, Код: plsql 1. 2. Да где же справляется-то ??? Офис 2007 нету. Офис 2003 умеет только один лист экспортировать в него. Объедините в один репорт, скройте, и получить возможность экспорта объединенных данных. авторПоверьте это точно не 15мин и даже не 15 часов. Это я тут для пониманию моей задачи привел очень упрощеный примерчик. вот именно потому что csv это просто значения через разделитель, глупо искать библиотеку для непонятной задачи, которую даже excel не умеет. Проще сделать руками. Где там 15 часов нашли не понятно. Под каждым reports есть source. Продублировать его, и записать через разделитель. Если у вас там супер-сложно-организованный-dynamic content, или нужно проделать на 100 страницах, можно поискать другие подходы собирания данных, но это уже другая тема. Возможности экселя экспортировать в csv мне на самом деле не важны ведь я не экспортирую из экселя а импортирую в эксель csv формат, и с этим проблем никаких не возникало. Есть файл с тремя блоками текста через точку с запятой(;) все прекрасно импортируется в три отдельные таблицы одна под другой. насчет копированию сорца в другие места программы это не совсем правильный подход с точки зрения програмирования да и так тупо не сработает, т.к. у меня в отчете динамически отключаются столбцы в зависимости от начальных параметров да и сорторовка и групировка в IR, слету просто не сделаешь. Чувствуе придется писать собственный пакет экспорта. Нашел несколько апексовских пакетов по теме (WWV_FLOW_PLUGIN_UTIL; WWV_FLOW_RENDER_QUERY) но нужно время тестировать и пробовать а его как всегда нету :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2012, 16:45 |
|
||
|
Экспорт нескольких отчетов одновременно
|
|||
|---|---|---|---|
|
#18+
Den999, Могу еще предложить по теме Код: plsql 1. 2. так же можно обратить внимание, ссылки на download csv имеют не сложный синтаксис, и все они в public доступе, можно в цикле попробовать подгрузить и сконкатинировать. Только сомневаюсь, что найдете готовые реализации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2012, 17:15 |
|
||
|
Экспорт нескольких отчетов одновременно
|
|||
|---|---|---|---|
|
#18+
SvDevDen999, Могу еще предложить по теме Код: plsql 1. 2. так же можно обратить внимание, ссылки на download csv имеют не сложный синтаксис, и все они в public доступе, можно в цикле попробовать подгрузить и сконкатинировать. Только сомневаюсь, что найдете готовые реализации. За селекты спасибо. С конкантинацией интересное предложение, но как по обращению по линку который возвращает csv получить его содержимое скажем в какойто свой буфер а не запрос на сохранение файла? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2012, 19:29 |
|
||
|
Экспорт нескольких отчетов одновременно
|
|||
|---|---|---|---|
|
#18+
Den999, Через utl_http. Вот сваял из кусков пример вам: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. (в данном случае before header process подгружает другую страницу, не public) Работает в 4.1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2012, 13:11 |
|
||
|
Экспорт нескольких отчетов одновременно
|
|||
|---|---|---|---|
|
#18+
Тут я вижу 2 варианта. Если не хочется/не можется копировать/исправлять source. 1. Самостоятельно получить source и обработать его, в зависимости от типа региона. В том числе conditional columns и т.д. Недостаток: куча недокументированнных вызовов, вроде apex_040100.wwv_flow_page_plugs, постоянные дописывания двигателя. 2. utl_http, подгрузить все csv и сконкатинировать. В ссылках region_id должен быть, который так же легко вычислить. Недостаток: скорость такой обработки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2012, 13:24 |
|
||
|
Экспорт нескольких отчетов одновременно
|
|||
|---|---|---|---|
|
#18+
Бегло еще поискал по вашей теме. 3. Попытать счастья с APEX_XXXXXX.WWV_FLOW_DISP_PAGE_PLUGS.DISPLAY_REPORT которая наверняка пишет во все тот же wpg_docload с открытыми исходными кодами. Напишите, делитесь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2012, 14:19 |
|
||
|
Экспорт нескольких отчетов одновременно
|
|||
|---|---|---|---|
|
#18+
SvDevDen999, Через utl_http. Вот сваял из кусков пример вам: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. (в данном случае before header process подгружает другую страницу, не public) Работает в 4.1. решение с UTIL_HTTP генеально, но почемуто заставить работать приведенный пример я не смог. вставил ваш соурц (исправив app_id i page_id на свои) в onload before header с условием срабатывания по нажатии кнопки. но как только я нажимал кнопку происходило перебрасывание на страницу логина. выяснил что это происходит в момент отработки строчки с WPG_DOCLOAD.download_file (vBlob); решил упростить пример чтобы чтение страницы происходило не blob а сразу в htp буфер, результат тотже: генерируемое содержимое файла - страница логина. Похоже какаято служебная информация для работы апекса теряется при обращении через UTL_HTTP. P.S. Переменная vURL, проверял, генерируется правильно с актуальным session_id. А на apex.oracle.com вываливается ошибка: ORA-24247: network access denied by access control list (ACL) http://apex.oracle.com/pls/apex/f?p=39655 кнопка UTL_HTTP ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2012, 03:46 |
|
||
|
Экспорт нескольких отчетов одновременно
|
|||
|---|---|---|---|
|
#18+
SvDevБегло еще поискал по вашей теме. 3. Попытать счастья с APEX_XXXXXX.WWV_FLOW_DISP_PAGE_PLUGS.DISPLAY_REPORT которая наверняка пишет во все тот же wpg_docload с открытыми исходными кодами. Напишите, делитесь. Это именно та процедура которая срабатывает при нажатии на стандартный апексовкий линк (export to CSV) у региона с репортом (см. мой пример http://apex.oracle.com/pls/apex/f?p=39655). К сожалению она выдает готовый результат в htp буфер да к томуже вертикальный репорт (первый в моем примере) переделывает в горизонтальный, что никуда не годится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2012, 03:52 |
|
||
|
Экспорт нескольких отчетов одновременно
|
|||
|---|---|---|---|
|
#18+
SvDevТут я вижу 2 варианта. Если не хочется/не можется копировать/исправлять source. 1. Самостоятельно получить source и обработать его, в зависимости от типа региона. В том числе conditional columns и т.д. Недостаток: куча недокументированнных вызовов, вроде apex_040100.wwv_flow_page_plugs, постоянные дописывания двигателя. 2. utl_http, подгрузить все csv и сконкатинировать. В ссылках region_id должен быть, который так же легко вычислить. Недостаток: скорость такой обработки. Именно так, я выбираю 2 вариант, только конкатинировать я не буду, т.к. захватывать буду всю страницу целиком со всеми тремя сгенерироваными репортами только с Printer_Friendly template'ом (облегченый вид для печати страницы) и дальнейшей вырезкой из буфера с захваченой страницей по UTL_HTTP, ненужного мусора наподобии всяких меню поисов в IR и стилей для таблиц, чтобы окончательный, и очищеный таким образом, html вариант открывать экселем. Осталось разобраться с загрузкой через UTL_HTTP (проблему описал в раннем посте) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2012, 04:01 |
|
||
|
Экспорт нескольких отчетов одновременно
|
|||
|---|---|---|---|
|
#18+
Den999, csv я еще могу понять, html врятли. Хотя бы pagination. ЭКспортирует 1 из 100 страниц. Залог успеха: 1. valid url 2. Код: plsql 1. обрезать еще порт, если не 80 3. для 11g acl. no comments. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2012, 11:12 |
|
||
|
Экспорт нескольких отчетов одновременно
|
|||
|---|---|---|---|
|
#18+
SvDevDen999, csv я еще могу понять, html врятли. Хотя бы pagination. ЭКспортирует 1 из 100 страниц. Залог успеха: 1. valid url 2. Код: plsql 1. обрезать еще порт, если не 80 3. для 11g acl. no comments. вырезка порта помогла, спасибо. и вставил в ваш пример после строчки "OWA_UTIL.mime_header ( 'text/html', FALSE);" " htp.p('Content-Disposition: attachment; filename="test.htm"');" чтобы выкидывал диалог "save/open file" pagination у меня будет отключен на момент генерации файла, пока еще не знаю как :) может вообще отключу, т.к. отчеты у меня не большие, мотать сотнями строк не надо точно. сейчас разбераюсь почему при вызове всего этого из "On Load - Before Header" как процедуру выкидывает: ORA-29273: HTTP request failed ORA-06512: at "SYS.UTL_HTTP", line 1130 ORA-24247: network access denied by access control list (ACL) вызов через анонимный блок в "On Load - Before Header" - никаких ошибок :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2012, 16:53 |
|
||
|
Экспорт нескольких отчетов одновременно
|
|||
|---|---|---|---|
|
#18+
с ACL разобрался, надо было добавить право из моей схемы работать с сетью: BEGIN DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE('/sys/acls/power_users.xml', 'TELEMETRIJA3', TRUE, 'connect'); END; процедуру ехпорта страницы дописал с возможностью вырезать мусор посредством REGEXP_REPLACE кому интересно: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. результатом доволен, все выглядит приемлемо и главно в одной экселевской закладке :) SvDev, спасибо за идии и советы! P.S. паралельно вел ветку на ораклавском форуме https://forums.oracle.com/forums/thread.jspa?messageID=10167705 там кстати есть стоящее предложение с плугином, кого интересует экспорт в чисто экселевский формат репортов любого типа http://www.apex-plugin.com/oracle-apex-plugins/process-type-plugin/reports-2-excel-xml_110.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2012, 02:36 |
|
||
|
Экспорт нескольких отчетов одновременно
|
|||
|---|---|---|---|
|
#18+
Den999, Вообще говоря нужно было взять плагин и немного допрограммировать его. имхо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2012, 09:37 |
|
||
|
Экспорт нескольких отчетов одновременно
|
|||
|---|---|---|---|
|
#18+
SvDevDen999, Вообще говоря нужно было взять плагин и немного допрограммировать его. имхо. Была такая мысль, но побоялся что закопаюсь надолго в недокументированых пакетах и таблицах апекса. Так как мне нужна была точная копия страницы как есть, после того как пользователь выполнит все ему нужные телодвижения в плане сортировки, фильтровки, да еще и в конце отчета нужно чтоб попали агрегированые данные. А в плугин на данный момент может только тупо взять сорс и вывести его результат, да вертикальный репорт он показывает как горизонтальный. Просто не было времени на разбирание и переделку, но решение интересное, когда нибудь и до него дойдут руки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2012, 14:45 |
|
||
|
Экспорт нескольких отчетов одновременно
|
|||
|---|---|---|---|
|
#18+
Den999, Подскажите, пожалуйста, у меня стоит похожая задача (есть несколько репортов на странице, необходимо их вывести на вкладку Excel). Я так понимаю, Ваша процедура имеет завершенный вид. Как вы ее подключаете? Есть ли у Вас возможность показать, что у Вас получилось в результате на примере Вашего приложения, изложенного в теме выше? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2017, 15:50 |
|
||
|
|

start [/forum/topic.php?fid=50&msg=37676419&tid=1874299]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
66ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
73ms |
get tp. blocked users: |
1ms |
| others: | 273ms |
| total: | 458ms |

| 0 / 0 |
