powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Свой xls выгружаем клиенту
24 сообщений из 24, страница 1 из 1
Свой xls выгружаем клиенту
    #38933089
ChiliPepper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В пакете создаю свой xls-файл используя xml. Готовый файл лежит в директории /home/oracle/export.
В Apex при нажатии button в plsql коде вызывается функция по формированию xls и далее надо выгрузить его клиенту, либо как вариант сразу вызывать print dialog с этим файлом.
Вопрос: в какую сторону копать?
...
Рейтинг: 0 / 0
Свой xls выгружаем клиенту
    #38933108
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChiliPepper,

А зачем сохранять файл на сервере?!!
Почему сразу не отправлять свежесформированный BLOB в файл посредством
Код: plsql
1.
WPG_DOCLOAD.DOWNLOAD_FILE(myfile);
...
Рейтинг: 0 / 0
Свой xls выгружаем клиенту
    #38936691
ChiliPepper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Курдль, xls-файл клиенту выгружаю успешно:

Код: 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.
declare
  v_file_name varchar2(255); 
  f utl_file.file_type;
  bf           BFILE;
  Lob_loc      blob;
  vexists      BOOLEAN;
  vfile_length NUMBER;
  vblocksize   NUMBER;
begin
  -- создаем файл
  v_file_name := lib_report.get_kvit(:P1_ID);
  UTL_FILE.FGETATTR('MY_FILES',v_file_name,vexists,vfile_length,vblocksize);
  if vexists then
    -- собираем указатель для Lob_loc
    DBMS_LOB.createtemporary (Lob_loc, TRUE, DBMS_LOB.SESSION);
    bf := BFILENAME('MY_FILES', v_file_name);
    -- открываем на чтение, зачитываем в Lob_loc локатор и закрываем 
    DBMS_LOB.FILEOPEN(bf,dbms_lob.file_readonly);
    DBMS_LOB.LOADFROMFILE(Lob_loc, bf, DBMS_LOB.GETLENGTH(bf));
    DBMS_LOB.FILECLOSE(bf);
    -- оформление для аттача 
    htp.flush;
    htp.init;
    owa_util.mime_header( 'application/octet', FALSE );
    htp.p('Content-length: ' || DBMS_LOB.GETLENGTH(bf));
    htp.p('Content-Disposition: attachment; filename="' || v_file_name || '"');
    owa_util.http_header_close;
    -- собственно вызов файлброузера для закачки
    wpg_docload.download_file( Lob_loc );
  end if;
 end;


Еще задача отправить данный файл сразу на печать или вызвать PrintDialog без возможности редактирования файла.
...
Рейтинг: 0 / 0
Свой xls выгружаем клиенту
    #38936757
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChiliPepperЕще задача отправить данный файл сразу на печать или вызвать PrintDialog без возможности редактирования файла.
ты где нибуть это видел?
Может без монитора и сетевой карты сразу на принтер?
...
Рейтинг: 0 / 0
Свой xls выгружаем клиенту
    #38936992
ChiliPepper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,

если по существу нечего сказать, хорош тогда засорять тему
...
Рейтинг: 0 / 0
Свой xls выгружаем клиенту
    #38937010
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChiliPepper,
это был вопрос по существу - "где видел"? )
Поисковики подсказать?
...
Рейтинг: 0 / 0
Свой xls выгружаем клиенту
    #38937033
ChiliPepper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,

Вот умный ты такой, слов нет. Если нечего подсказать, зачем писать то. Всех бы умников, да к одной стеночке. Дышать стало бы легче.
...
Рейтинг: 0 / 0
Свой xls выгружаем клиенту
    #38937057
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChiliPepperЕсли нечего подсказать
читать умеем?
То что ты спросил не существует. Есть вызов Print для HTML.
Ферштеен?
могу imho для тебя поставить))
...
Рейтинг: 0 / 0
Свой xls выгружаем клиенту
    #38937076
Casufi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChiliPepperВот умный ты такой, слов нет. Если нечего подсказать, зачем писать то.
Тебе дело подсказывают. Нет возможности заставить пользователя сразу открыть ексель файл, а тем более открыть и пустить на печать. Браузер предлагает или открыть документ или сохраняить его, и выбор всегда остается за пользователем, ограничение безопастности. А запрет на редактирование, печать при открытии в екселе это удел самого екселя, если осилишь как это настроить, то будет работать. Диалог печати можно открыть только для HTML Документа.
...
Рейтинг: 0 / 0
Свой xls выгружаем клиенту
    #38937095
Casufi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Casufi,

Javascript, Подробное руководство, 6-е издание, Дэвид Фленеган. Для того, чтобы заниматься веб разработкой, не мешало бы немного изучить матчасть.
...
Рейтинг: 0 / 0
Свой xls выгружаем клиенту
    #38937108
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никто ведь не пишет, что нужно именно через яваскрипт делать.

В интернете мелькают варианты, вот например:

http://superuser.com/questions/332963/how-can-i-print-excel-spreadsheet-files-automatically

Можно сделать расширение какое-нибудь браузерное, которое будет скачивать файл и запускать скрипт,
или можно вызывать это на сервере, другое дело как оно в итоге будет вести себя в рабочей среде - а хз
...
Рейтинг: 0 / 0
Свой xls выгружаем клиенту
    #38937120
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SvDevНикто ведь не пишет, что нужно именно через яваскрипт делать.
он ведь в теме APEX.
Пусть пишет на клиенте bat'ник или vbs скрипт.
Но это изврат и к теме отношения не имеет.
Т.к. нельзя запустить OLE server Excell и выполнить его API print
Это вирус.
...
Рейтинг: 0 / 0
Свой xls выгружаем клиенту
    #38937124
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Свой xls выгружаем клиенту
    #38937133
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правда, будущее firebreath туманно, но в таких задачах логично ограничиться одним каким-то браузером
...
Рейтинг: 0 / 0
Свой xls выгружаем клиенту
    #38937138
Casufi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SvDevНикто ведь не пишет, что нужно именно через яваскрипт делать.
Может стоит немного шире посмотреть на постановку задачи ?
Если нужно распечатать документ не сохраняя его на диск, лучший вариант - сформировать веб страницу и открыть диалог печати. Если нужно сформировать документ, который будет доступен только для просмотра и печати, может посмотреть в сторону защищенного PDF ?
Сама постановка "сформировать ексель и откріть его без возможности редактирования" звучит стремно.
...
Рейтинг: 0 / 0
Свой xls выгружаем клиенту
    #38937145
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SvDevPetro123,
http://habrahabr.ru/post/118897/
я про это и говорил (плагин).
Есть миллион способов, НО на клиенте.
Т.к. у ослика песочница
...
Рейтинг: 0 / 0
Свой xls выгружаем клиенту
    #38937148
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Casufiсформировать веб страницу и открыть диалог печати
кстати, я сам очень ругаюсь, когда сбербанк это делает. Приходится ESC и сохранять Ctrl+S на диск))).
Но понимаю, может быть такое ТЗ.
...
Рейтинг: 0 / 0
Свой xls выгружаем клиенту
    #38937256
ChiliPepper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123Но понимаю, может быть такое ТЗ.
По задачам:
1. формирование отчета в Excel и передача его с сервера для просмотра или сохранения (реализовано выше)
2. формирование квитанции без возможности редактирования клиентом и передачей квитанции сразу на печать. Квитанция формируется в pl/sql файлом xls на данный момент.
Но как вариант реализовать так.
Casufiсформировать веб страницу и открыть диалог печати
Что-то на подобии
Код: javascript
1.
2.
3.
4.
5.
function print() {
    var newWindow = window.open();
    newWindow.document.write(document.getElementById("region_id").innerHTML);
    newWindow.print();
}


, где region_id - регион, на котором готовая квитанция.
...
Рейтинг: 0 / 0
Свой xls выгружаем клиенту
    #38937280
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChiliPepper,
вариант на JS я брал с ветки по JS
jasperreports + JEE (EJB/JPA)
- понятно, что лучше ВСЕГДА делать отчёт на HTML. Особенно для печати.
- есть вариант плагинов у заказчика чтобы документы открывались в самом ослике как встроенные
- в твоём варианте нужно спросить у заказчика, т.к. во всех вариантах мы что-то теряем.
...
Рейтинг: 0 / 0
Свой xls выгружаем клиенту
    #38937386
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123он ведь в теме APEX.
Но это изврат и к теме отношения не имеет.
Нет. "сразу на принтер" - типичная интеграционная задача, где нужно знать смежные технологии, не обязательно это должны быть чисто браузерные решения, обсуждение их здесь в обзорном виде не офф.

Другое дело, Casufi прав, если автору нужно не "сразу на принтер", а запретить редактирование, стоит посмотреть на задачу иначе. Типичное решение, как уже заметили - PDF формат, кот. не редактируется стандартным образом, можно запретить копирование текста, защитить, встроить в html и т.д. Печать html тоже решение, но это не факт, что проще, у HTML много всяких приколов, если выходные формы сложные, браузеры разных версий и т.д., будет много проблем.
...
Рейтинг: 0 / 0
Свой xls выгружаем клиенту
    #38937405
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SvDevу HTML много всяких приколов
конечно.
Налево пойдёшь - коня потеряешь.
Направо.......

Удачи аффтару!
...
Рейтинг: 0 / 0
Свой xls выгружаем клиенту
    #38937442
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну может быть еще java applet, при каких-то немыслимо вольных настройках безопасности...
...
Рейтинг: 0 / 0
Свой xls выгружаем клиенту
    #38937455
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдльjava applet
совсем вышел из доверия у Java форумчан.
...
Рейтинг: 0 / 0
Свой xls выгружаем клиенту
    #38937907
elunin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в Excel файле, в ячейках можно установить запрет на редактирование. мы так выгружаем файлы, формат XLSX.
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Свой xls выгружаем клиенту
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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