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

Выгрузка данных в Excel c помощью джоба
На страницу 1, 2, 3, 4  След.
 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Справочник PL/PLUS: Функции, примеры, приёмы
Предыдущая тема :: Следующая тема  
Автор Сообщение
Псевдоним123
Участник - экстремал


Вступление в Клуб: 05.06.2018
СообщениеЧт Дек 20, 2018 15:01   Выгрузка данных в Excel c помощью джоба Ответить с цитатой
Полезность: Нет оценки
всем добрый день.
подскажите, как создать джоб, который будет по расписанию делать выгрузку данных за предыдущий день.

нашел, что джоб создается через меню Система - Выполнение заданий по расписанию....

1) можно ли сделать выгрузку в Excel?
2) если да, то как можно прописать папку, в которую данный файл должен сохраняться; если нет - выслушаю все варианты
Blackmore64
Профи


Вступление в Клуб: 17.01.2017
СообщениеЧт Дек 20, 2018 15:26   Re: Выгрузка данных в Excel c помощью джоба Ответить с цитатой
Полезность: Нет оценки
Псевдоним123 пишет:
1) можно ли сделать выгрузку в Excel?
2) если да, то как можно прописать папку, в которую данный файл должен сохраняться; если нет - выслушаю все варианты

У нас используется 2 варианта
1) экселевский файл выгружается на fio (файловую систему сервера) и потом приемопередатчиком перекладывается на сетевой ресурс
2) сформированный файл отправляется пользователям по почте
Псевдоним123
Участник - экстремал


Вступление в Клуб: 05.06.2018
СообщениеЧт Дек 20, 2018 15:38   Re: Выгрузка данных в Excel c помощью джоба Ответить с цитатой
Полезность: Нет оценки
Blackmore64 пишет:
Псевдоним123 пишет:
1) можно ли сделать выгрузку в Excel?
2) если да, то как можно прописать папку, в которую данный файл должен сохраняться; если нет - выслушаю все варианты

У нас используется 2 варианта
1) экселевский файл выгружается на fio (файловую систему сервера) и потом приемопередатчиком перекладывается на сетевой ресурс
2) сформированный файл отправляется пользователям по почте


а можете по данным вариантам какие-нибудь примеры показать?
Volod
Эксперт


Вступление в Клуб: 19.09.2007
СообщениеЧт Дек 20, 2018 15:52    Ответить с цитатой
Полезность: Нет оценки
Сам отчет написан? Подойдет только OOXML.
Blackmore64
Профи


Вступление в Клуб: 17.01.2017
СообщениеЧт Дек 20, 2018 15:55    Ответить с цитатой
Полезность: Нет оценки
Volod пишет:
Сам отчет написан? Подойдет только OOXML.

Да, точно - речь про OOXML

Псевдоним123 пишет:
а можете по данным вариантам какие-нибудь примеры показать?

Надо OOXML?
Псевдоним123
Участник - экстремал


Вступление в Клуб: 05.06.2018
СообщениеЧт Дек 20, 2018 16:30    Ответить с цитатой
Полезность: Нет оценки
а не через OOXML никак не получится?
Volod
Эксперт


Вступление в Клуб: 19.09.2007
СообщениеЧт Дек 20, 2018 17:35    Ответить с цитатой
Полезность: Нет оценки
Цитата:
а не через OOXML никак не получится?

Ну почему - можно держать станцию включенной с навигатором, джобом послать на нее event на запуск отчета.
vtar
Эксперт


Вступление в Клуб: 20.03.2009
СообщениеЧт Дек 20, 2018 17:52   Re: Выгрузка данных в Excel c помощью джоба Ответить с цитатой
Полезность: Нет оценки
Псевдоним123 пишет:
всем добрый день.
подскажите, как создать джоб, который будет по расписанию делать выгрузку данных за предыдущий день.

нашел, что джоб создается через меню Система - Выполнение заданий по расписанию....

1) можно ли сделать выгрузку в Excel?
2) если да, то как можно прописать папку, в которую данный файл должен сохраняться; если нет - выслушаю все варианты


Это практически нереально. В сбертехе была библиотека для генерации файлов word и excel на сервере , может есть у кого. Если простой отчет, можно генерить xml , html, csv. Excel их показывает.
De Mian
Профи


Вступление в Клуб: 26.09.2008
СообщениеПт Дек 21, 2018 09:24   Re: Выгрузка данных в Excel c помощью джоба Ответить с цитатой
Полезность: Нет оценки
vtar пишет:

Это практически нереально. В сбертехе была библиотека для генерации файлов word и excel на сервере , может есть у кого. Если простой отчет, можно генерить xml , html, csv. Excel их показывает.

Гляньте тип OOXML. Там и работа с EXCEL и с WORLD. Ну конечно с теми форматами, которые основаны на XML.
Я лично работал с EXCEL и на чтение и на запись.
На запись: Извлечение из БД заранее подготовленного шаблона-болванки, наполнение его данными и передача в качестве результата серверу отчетов. Схема такая так как запуск отчета происходит при получении сообщения через интегратор. Интегратор же отвечает вызывающему и сообщает путь на fio сформированного отчета.
На чтение : была "странная" задача. JOB, который опрашивает Microsoft Exchange Server по протоколу POP3(Реализация череp JAVA), забирает почту , извлекает вложения , в т.ч. EXCEL-евские файлы. и проводит форматные проверки этого файла EXCEL и оповещает отправителя письма по SMTP о результате. Изврат конечно. Свои "фи" я аналитику высказал, но ради спортивного интереса реализовал.
Обе задачи через использование OOXML в безинтерфейсном режиме. В плане EXCEL , OOXML конечно не реализует весь богатый функционал электронных таблиц. На какие-то ограничения натыкался и подстраивался под нюансы.
De Mian
Профи


Вступление в Клуб: 26.09.2008
СообщениеПт Дек 21, 2018 09:40    Ответить с цитатой
Полезность: Нет оценки
Общий принципа на запись :
Чтобы не возить с собой тушки, определяем макросы :
Код:
pragma macro(xl,'::[OOXML].[API_XL]');
pragma macro(lp,'::[SHABLON_DOC].[LIB_OOXML]');
pragma macro (put, '&xl.put([1],[2],[3])',substitute);

далее
Код:
&lp.xl_init('SAMPLE_NAME'); -- извлечение шаблона c именем SAMPLE_NAME из справочника SHABLON_DOC
-- Наполнение данными, различные форматирования
&put(12, 1, 'привет. этот текст в строке 12 колонке 1'); 
&put(6, 7, 'привет. этот текст в строке 6 колонке 7'); 
&xl.PutPageBreak(20);
&xl.set_row_height(.....
&lp.xl_finish; -- завершение отчета и передача как результата для сервера отчетов (при условии что сервер отчетов есть)

В любом случае вам придется исследовать библиотеки в типе OOXML и SHABLON_DOC. Посмотрите зависимости от этих библиотек , там есть много дистрибутивных отчетов для примера.


Последний раз редактировалось: De Mian (Пт Дек 21, 2018 11:08), всего редактировалось 1 раз
vtar
Эксперт


Вступление в Клуб: 20.03.2009
СообщениеПт Дек 21, 2018 09:52    Ответить с цитатой
Полезность: Нет оценки
De Mian
я пробовал как то, у меня не взлетело через ooxml
так понял что он не может "из оракла" (из джоба) сгенерить xls на сервере
Или у меня руки кривые.
надо вызывать с клиента (из Навигатора) ?
De Mian
Профи


Вступление в Клуб: 26.09.2008
СообщениеПт Дек 21, 2018 09:57    Ответить с цитатой
Полезность: Нет оценки
vtar пишет:
De Mian
я пробовал как то, у меня не взлетело через ooxml
так понял что он не может "из оракла" (из джоба) сгенерить xls на сервере
Или у меня руки кривые.
надо вызывать с клиента (из Навигатора) ?

Прям создать XLS он вроде бы не может, но можно подготовить шаблон(SHABLON_DOC), извлечь из базы и наполнить данными(OOXML). Выше пример строк кода как раз на эту тему.
Результат можно либо серверу отчетов передать либо через api получить blob и сохранить самостоятельно в файл. Это работает в безинтерфейсном режиме и с новыми форматами основанными на XML.
Можно с офисом так же работать в интерфейсном режиме через навигатор, тогда нужно чтобы формат файла могла читать клиентская машина. Это через взаимодействие навигатора и клиентской машины через VBA-валидацию.
Смотрите готовые примеры дистрибутивных отчетов через обратные зависимости.
UPDATE : не XLS, а XLSX.
Ezhik
Участник со стажем


Вступление в Клуб: 17.04.2009
СообщениеПт Дек 21, 2018 11:07    Ответить с цитатой
Полезность: 1
Можно создавать файлы без шаблона (без SHABLON_DOC). В результате получить готовый блоб, который уже запихнуть в файл каким-нибудь blob2file или смотреть в сторону [API_ORSA].putReport (Формирование задания серверу отчётов). Но для перекладывания на локальную машину необходим клиент-скрипт, который в джобе невозможен, т. е. надо отдельную операцию на клиентской машине (можно, например, смотреть в сторону [API_ORSA].putReport2SaveAs или старого экспорта-импорта файлов) или настраивать приемо-передатчик.
De Mian
Профи


Вступление в Клуб: 26.09.2008
СообщениеПт Дек 21, 2018 11:27    Ответить с цитатой
Полезность: Нет оценки
Ezhik пишет:
Можно создавать файлы без шаблона (без SHABLON_DOC). В результате получить готовый блоб,

Дайте пример. не видел нигде что-то чтобы можно был именно создать файл. в OOXML только правка и чтение. а сам файл готовится заранее. НО могу конечно не знать всего
Ezhik пишет:
Но для перекладывания на локальную машину необходим клиент-скрипт, который в джобе невозможен, т. е. надо отдельную операцию на клиентской машине (можно, например, смотреть в сторону [API_ORSA].putReport2SaveAs или старого экспорта-импорта файлов) или настраивать приемо-передатчик.

Либо с линукса одну из папок fio расшаривать(samba) для доступа клиента под Windows.

В общем всё решаемо.....
Псевдоним123
Участник - экстремал


Вступление в Клуб: 05.06.2018
СообщениеПт Дек 21, 2018 11:50    Ответить с цитатой
Полезность: Нет оценки
De Mian пишет:
Общий принципа на запись :
Чтобы не возить с собой тушки, определяем макросы :
Код:
pragma macro(xl,'::[OOXML].[API_XL]');
pragma macro(lp,'::[SHABLON_DOC].[LIB_OOXML]');
pragma macro (put, '&xl.put([1],[2],[3])',substitute);

далее
Код:
&lp.xl_init('SAMPLE_NAME'); -- извлечение шаблона c именем SAMPLE_NAME из справочника SHABLON_DOC
-- Наполнение данными, различные форматирования
&put(12, 1, 'привет. этот текст в строке 12 колонке 1'); 
&put(6, 7, 'привет. этот текст в строке 6 колонке 7'); 
&xl.PutPageBreak(20);
&xl.set_row_height(.....
&lp.xl_finish; -- завершение отчета и передача как результата для сервера отчетов (при условии что сервер отчетов есть)

В любом случае вам придется исследовать библиотеки в типе OOXML и SHABLON_DOC. Посмотрите зависимости от этих библиотек , там есть много дистрибутивных отчетов для примера.


попробовал сделать, но возникли вопросы: Куда данный файл сохраняется? как его найти?
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Справочник PL/PLUS: Функции, примеры, приёмы Часовой пояс: GMT + 3
На страницу 1, 2, 3, 4  След.
Страница 1 из 4

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