CftClub.ru
Клуб специалистов ЦФТ-Банк

Библиотеки OOXML vs EXCEL
На страницу Пред.  1, 2
 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle
Предыдущая тема :: Следующая тема  
Автор Сообщение
vtar
Эксперт
Неподтвержденный


Вступление в Клуб: 20.03.2009
СообщениеВт Авг 29, 2017 10:11    Ответить с цитатой
Полезность: Нет оценки
Эмиралька пишет:
vtar пишет:
Коллеги,
что то вот не пойму, почему нельзя было реализовать для OOXML генерацию отчота на сервере ?

Дык а сейчас он где формируется?


блин ... я не про то что blob ... я про то что нет нормального дистрибутивного способа без вызова навигатора на клиентском ПК сгенерить на сервере XLS или DOC файл

Из JOBа например без участия пользователя !
_________________
Нельзя всем дать всё: всех много, а всего мало
Alkov
Профи
Неподтвержденный


Вступление в Клуб: 23.09.2010
СообщениеВт Авг 29, 2017 10:20    Ответить с цитатой
Полезность: Нет оценки
В смысле? Джобом он прекрасно создаётся.
Только причём тут клиентский ПК, им только потом забрать готовый отчёт с FIO.
vtar
Эксперт
Неподтвержденный


Вступление в Клуб: 20.03.2009
СообщениеВт Авг 29, 2017 10:23    Ответить с цитатой
Полезность: Нет оценки
Alkov пишет:
В смысле? Джобом он прекрасно создаётся.
Только причём тут клиентский ПК, им только потом забрать готовый отчёт с FIO.


каким образом ? пример есть ?
_________________
Нельзя всем дать всё: всех много, а всего мало
Эмиралька
Профи
Неподтвержденный


Вступление в Клуб: 09.11.2015
СообщениеВт Авг 29, 2017 10:40    Ответить с цитатой
Полезность: Нет оценки
vtar пишет:
Alkov пишет:
В смысле? Джобом он прекрасно создаётся.
Только причём тут клиентский ПК, им только потом забрать готовый отчёт с FIO.


каким образом ? пример есть ?

Вы не путаете OOXML.API_XL и RUNTIME.LIB_PRINT?
В первой процедура finish возвращает BLOB, в котором ваш готовый файл, только сохранить надо.
А во второй вызывается первая, BLOB сохраняется и уже готовый файл отправляется на локальную станцию пользователя.
Alkov
Профи
Неподтвержденный


Вступление в Клуб: 23.09.2010
СообщениеВт Авг 29, 2017 10:56    Ответить с цитатой
Полезность: Нет оценки
vtar пишет:
Alkov пишет:
В смысле? Джобом он прекрасно создаётся.
Только причём тут клиентский ПК, им только потом забрать готовый отчёт с FIO.


каким образом ? пример есть ?



Ну вот так:

Код:

   &xl.finish(iBlob_new); --Завершение формирования отчета
   
   --Создаем JOB на сервере отчетов и запускаем на выполнение
   iReportId := ::[OOXML].[API_ORSA].putReport(iBlob_new, 'xlsx', 'Шаблон для операции отчета в EXCEL(OOXML)');

begin    -- Исполнение отчета на сервере отчетов
      -- ЖДЕМ ПОКА НА СЕРВЕРЕ ОТЧЕТОВ ВЫПОЛНИТСЯ НАШ ОТЧЕТ (iReportId идентификатор отчета)
      iCnt   := 0;
      loop
         iCnt   := iCnt+1;
         iStatus   := [ORSALIB].Get_Status(iReportId);
         exit when iStatus in ([ORSALIB].STATE_EXECUTE,[ORSALIB].STATE_ERROR);
         if iCnt > iWaitLimit then
            stdio.put_line_buf('Исчерпан лимит времени на сервере отчетов для формированя отчета (файл: '||v_name_rep_file||')');
            exit;
         end if;
         utils.sleep(1);
      end loop;

      -- Проверяем статус отчета, если выполнился с ошибкой завершаем операцию без сохранения в файл
      if iStatus = [ORSALIB].STATE_ERROR then
         stdio.put_line_buf('Ошибка при формировании отчета на сервере отчетов (файл: '||v_name_rep_file||')');
         stdio.put_line_buf([ORSALIB].Get_Error(iReportId));
         return;
      end if;
      
      -- Помещаем отчет в iresult (Тип результата BLOB)
      iresult := [ORSALIB].Get_result(iReportId);
      
      -- Записываем BLOB в Файл
      ::[BANK_CLIENT].[LIB_BLOB].blob2file(iresult ,v_path,v_name_rep_file);            
      
      -- Если необходим перенос отчета на локальную машишу. Переносим его.
      /*ЕСЛИ ЭТУ СТРОКУ ЗАКОМЕНТИРОВАТЬ БУДЕТ СОХРАНЯТСЯ НА СЕРВЕРЕ по пути v_path, иначе сохранится по пути v_path_local*/
      -- stdio.put_line_buf('<%PLPCALL [GNI_JOUR].[EXPORT_LOCAL](%VAR%.V_SRC_NAME=>'''||v_name_rep_file||''',%VAR%.V_DST_PATH=>'''||v_path_local||''',%VAR%.V_SRC_PATH=>'''||v_path||''',%VAR%.V_FROM_SERVER=>'''||1||''')%>');
   end;
vtar
Эксперт
Неподтвержденный


Вступление в Клуб: 20.03.2009
СообщениеВт Авг 29, 2017 11:13    Ответить с цитатой
Полезность: Нет оценки
Alkov пишет:

Ну вот так:


я имел в виду несколько другое

без сервера отчетов, на стороне ORACLE сгенерить XLS или DOC по шаблону и/или командам VBS
_________________
Нельзя всем дать всё: всех много, а всего мало
Alkov
Профи
Неподтвержденный


Вступление в Клуб: 23.09.2010
СообщениеСр Авг 30, 2017 04:15    Ответить с цитатой
Полезность: Нет оценки
vtar пишет:
Alkov пишет:

Ну вот так:


я имел в виду несколько другое

без сервера отчетов, на стороне ORACLE сгенерить XLS или DOC по шаблону и/или командам VBS


Почему без сервера отчётов ?
Oracle report manager всё равно же установлен на схеме...
vtar
Эксперт
Неподтвержденный


Вступление в Клуб: 20.03.2009
СообщениеСр Авг 30, 2017 09:35    Ответить с цитатой
Полезность: Нет оценки
Алекс,
а способ с сервером отчетов годится для вызова из внешней системы ?

например ДБО генерит запрос выписки из ЦФТ и получает в ответ файл или BLOB ?
_________________
Нельзя всем дать всё: всех много, а всего мало
Alkov
Профи
Неподтвержденный


Вступление в Клуб: 23.09.2010
СообщениеСр Авг 30, 2017 10:58    Ответить с цитатой
Полезность: Нет оценки
vtar пишет:
Алекс,
а способ с сервером отчетов годится для вызова из внешней системы ?

например ДБО генерит запрос выписки из ЦФТ и получает в ответ файл или BLOB ?


Ну если например схема работает так :
дбо <-> шина IBM WebSphere MQ<-> интегратор(MGW- агент) <->(обработчики бп интегратора)

Тогда выложить файл на ФИО можно в обработке запроса интегратора (бп).

Можно без шины если есть возможность вызвать из дбо процедуру ораклового пакета ,то примерно также
дбо (вызов [CIT_BO]::[EXT_CALL_LIB])-> интегратор (обработчики бп интегратора)
vtar
Эксперт
Неподтвержденный


Вступление в Клуб: 20.03.2009
СообщениеСр Авг 30, 2017 11:07    Ответить с цитатой
Полезность: Нет оценки
да и через DB-LINK по ходу можно

http://www.sql.ru/forum/575646/kak-vytashhit-pole-tipa-blob-cherez-db-link
_________________
Нельзя всем дать всё: всех много, а всего мало
Alkov
Профи
Неподтвержденный


Вступление в Клуб: 23.09.2010
СообщениеЧт Авг 31, 2017 03:09    Ответить с цитатой
Полезность: Нет оценки
Ну можно и напрямую если есть возможность
, но интегратор хранит всю историю запросов и не надо этим заморачиваться.
Ну и вообще достаточно универсален для интеграции внешних систем,
когда приходишь к тому чтобы повесить все внешние системы на одну шину...
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle Часовой пояс: GMT + 3
На страницу Пред.  1, 2
Страница 2 из 2

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru