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

А зачем сохранять файл на сервере?!!
Почему сразу не отправлять свежесформированный BLOB в файл посредством
Код: plsql
1.
WPG_DOCLOAD.DOWNLOAD_FILE(myfile);
...
Рейтинг: 0 / 0
15.04.2015, 08:21
    #38936691
ChiliPepper
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Свой xls выгружаем клиенту
Курдль, 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
15.04.2015, 09:24
    #38936757
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Свой xls выгружаем клиенту
ChiliPepperЕще задача отправить данный файл сразу на печать или вызвать PrintDialog без возможности редактирования файла.
ты где нибуть это видел?
Может без монитора и сетевой карты сразу на принтер?
...
Рейтинг: 0 / 0
15.04.2015, 12:44
    #38936992
ChiliPepper
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Свой xls выгружаем клиенту
Petro123,

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

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

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

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

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

Можно сделать расширение какое-нибудь браузерное, которое будет скачивать файл и запускать скрипт,
или можно вызывать это на сервере, другое дело как оно в итоге будет вести себя в рабочей среде - а хз
...
Рейтинг: 0 / 0
15.04.2015, 13:40
    #38937120
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Свой xls выгружаем клиенту
SvDevНикто ведь не пишет, что нужно именно через яваскрипт делать.
он ведь в теме APEX.
Пусть пишет на клиенте bat'ник или vbs скрипт.
Но это изврат и к теме отношения не имеет.
Т.к. нельзя запустить OLE server Excell и выполнить его API print
Это вирус.
...
Рейтинг: 0 / 0
15.04.2015, 13:43
    #38937124
SvDev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Свой xls выгружаем клиенту
...
Рейтинг: 0 / 0
15.04.2015, 13:46
    #38937133
SvDev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Свой xls выгружаем клиенту
Правда, будущее firebreath туманно, но в таких задачах логично ограничиться одним каким-то браузером
...
Рейтинг: 0 / 0
15.04.2015, 13:49
    #38937138
Casufi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Свой xls выгружаем клиенту
SvDevНикто ведь не пишет, что нужно именно через яваскрипт делать.
Может стоит немного шире посмотреть на постановку задачи ?
Если нужно распечатать документ не сохраняя его на диск, лучший вариант - сформировать веб страницу и открыть диалог печати. Если нужно сформировать документ, который будет доступен только для просмотра и печати, может посмотреть в сторону защищенного PDF ?
Сама постановка "сформировать ексель и откріть его без возможности редактирования" звучит стремно.
...
Рейтинг: 0 / 0
15.04.2015, 13:57
    #38937145
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Свой xls выгружаем клиенту
SvDevPetro123,
http://habrahabr.ru/post/118897/
я про это и говорил (плагин).
Есть миллион способов, НО на клиенте.
Т.к. у ослика песочница
...
Рейтинг: 0 / 0
15.04.2015, 13:58
    #38937148
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Свой xls выгружаем клиенту
Casufiсформировать веб страницу и открыть диалог печати
кстати, я сам очень ругаюсь, когда сбербанк это делает. Приходится ESC и сохранять Ctrl+S на диск))).
Но понимаю, может быть такое ТЗ.
...
Рейтинг: 0 / 0
15.04.2015, 15:02
    #38937256
ChiliPepper
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Свой xls выгружаем клиенту
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
15.04.2015, 15:18
    #38937280
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Свой xls выгружаем клиенту
ChiliPepper,
вариант на JS я брал с ветки по JS
jasperreports + JEE (EJB/JPA)
- понятно, что лучше ВСЕГДА делать отчёт на HTML. Особенно для печати.
- есть вариант плагинов у заказчика чтобы документы открывались в самом ослике как встроенные
- в твоём варианте нужно спросить у заказчика, т.к. во всех вариантах мы что-то теряем.
...
Рейтинг: 0 / 0
15.04.2015, 16:10
    #38937386
SvDev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Свой xls выгружаем клиенту
Petro123он ведь в теме APEX.
Но это изврат и к теме отношения не имеет.
Нет. "сразу на принтер" - типичная интеграционная задача, где нужно знать смежные технологии, не обязательно это должны быть чисто браузерные решения, обсуждение их здесь в обзорном виде не офф.

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

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


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