Oracle APEX - Экспорт запроса в CSV с помощью кнопки - PullRequest
0 голосов
/ 16 мая 2018

У меня есть кнопка на вершине страницы, которая должна позволять пользователю экспортировать данные (основанные на запросе, не видимом конечным пользователем) в файл CSV.

Как связать эту кнопку с моим запросомчтобы мы могли экспортировать результат в файл CSV?

Спасибо

Ответы [ 2 ]

0 голосов
/ 18 мая 2018

Благодаря Скотту Спендолини, я использую его ссылку: https://spendolini.blogspot.fr/2006/04/custom-export-to-csv.html

Я просто создаю область отчета с помощью моего запроса. Добавьте кнопку, которая приведет вас на пустую страницу, которую я создал. На этой странице я добавил процесс PL / SQL, который будет запускать « On Load - Before Header ». В источнике этого процесса я использую этот код:

begin
-- Set the MIME type
owa_util.mime_header( 'application/octet', FALSE );
-- Set the name of the file
htp.p('Content-Disposition: attachment; filename="emp.csv"');
-- Close the HTTP Header
owa_util.http_header_close;
-- Loop through all rows in EMP
for x in (select e.ename, e.empno, d.dname
from emp e, dept d where e.deptno = d.deptno
  and e.deptno like :P1_DEPTNO)
loop
 -- Print out a portion of a row,
 -- separated by commas and ended by a CR
 htp.prn(x.ename ||','|| x.empno ||','||
         x.dname || chr(13));
end loop;
-- Send an error code so that the
-- rest of the HTML does not render
htmldb_application.g_unrecoverable_error := true;
end;
0 голосов
/ 17 мая 2018

Я сделал это один раз, определив регион на странице с условием = никогда, но вы все равно можете вызвать загрузку с соответствующим URL-адресом, который можно фармить по ссылке «скачать как CSV», когда регион равен отображается с помощью функции проверки элемента вашего браузера.

enter image description here

Вы увидите запрос с идентификатором региона с префиксом. Таким образом, вы можете использовать это вызвать загрузку

/ords/f?p=your_app:your_page:your_session:FLOW_EXCEL_OUTPUT_R571755827567965848_en

или пусть ваша кнопка вызывает тот же JavaScript

window.location.href=apex.server.url({p_request: 'FLOW_EXCEL_OUTPUT_R571755827567965848_en'},2);

Это будет работать, даже если в качестве условия региона выбрано значение Никогда.

...