Текущее время: Пн, июл 21 2025, 18:58

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 23 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Выгрузка в Excel
СообщениеДобавлено: Пн, ноя 06 2006, 11:01 
Ассистент
Ассистент

Зарегистрирован:
Вт, сен 26 2006, 06:57
Сообщения: 47
Всем добрый день.

У меня появилась проблема с выгрузкой в Excel. Есть готовая внутренняя таблица, нужно выгрузить ее в файл Excel на компьютер пользователя. Таблица выводится на экран с помощью ALV List.

Использовать стандартную процедуру выгрузки нельзя, потому что требуется особое форматирование шапки таблицы (нужно изменить стиль и размер шрифта, а также установить границы). ALV List выводит заголовок таблицы в одну строку (и берет тексты из DDIC), а также устанавливает цвета, что тоже не подходит для задачи.

Пробовал использовать ФМ XXL_SIMPLE_API и XXL_FULL_API - им нужно указывать ключевые поля, которых в таблице нет (ну, они есть, только не должны как-то особенно выделяться).

Пробовал использовать ФМ GUI_DOWNLOAD и ALV_DOWNLOAD - тоже не подходят.

Написал свою версию используя OLE2, но она (как я понимаю), передает данные по сети на PC пользователя очень маленькими кусками, а затем отправляет их в редактор, что слишком медленно. Насколько я знаю, ALV List формирует файл на сервере приложений, а затем отправляет результат пользователю. Как можно ускорить процесс вывода?

Заранее благодарю.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, ноя 06 2006, 18:15 
Модератор
Модератор

Зарегистрирован:
Пт, ноя 12 2004, 11:40
Сообщения: 542
Откуда: Москва
Пол: Мужской
Используйте DOI методы, и поиском по форуму....


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, ноя 07 2006, 07:09 
Ассистент
Ассистент

Зарегистрирован:
Вт, сен 26 2006, 06:57
Сообщения: 47
Цитата:
Используйте DOI методы, и поиском по форуму....

Поискал по форуму, но так и не нашел примеров..
Нашел
http://help.sap.com/printdocu/core/Prin ... CIOFFI.pdf - только там слишком много всего.
Объясните, пожалуйста, или, еще лучше, покажите простую программу, которая использует DOI для выгрузки в Excel.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Выгрузка
СообщениеДобавлено: Вт, ноя 07 2006, 09:53 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, авг 31 2004, 16:32
Сообщения: 174
Откуда: ru
Прозондируй тему. ХОЧУ ПОДАРИТЬ ФМ ДЛЯ ВЫГРУЗКИ В EXEL, WORD.

Там вроде все ясно, Отчеты можно выгружать, пасибо энтузиасту.

http://sapboard.ru/forum/viewtopic.php?t=4880

Но есть тема как замутить выгрузку в фоне минуя applic server, например раз в сутки делать снимок, может кто знает? Есть способ?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, ноя 07 2006, 10:05 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
linker написал(а):
Объясните, пожалуйста, или, еще лучше, покажите простую программу, которая использует DOI для выгрузки в Excel.

Кхм... Стесняюсь даже предложить свои модули, DOI не используется, все через OLE, но есть варианты запуска с оптимизацией.
Ваша задача обойдется одним Excel-шаблоном и запуском двух ФМ.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, ноя 07 2006, 11:19 
Ассистент
Ассистент

Зарегистрирован:
Вт, сен 26 2006, 06:57
Сообщения: 47
OpenSource есть good! Однако, нет ли другого решения? Просто не хочется писать что-то самому (ведь потом придется поддерживать..)Может, есть стандартное решение? Нашел много примеров SAP, но там предлагается "глубокая интеграция" с MS Office (ALV Excel In-Place, и проч.). А мне нужно сделать кнопочку, при нажатии на которую пользователь будет получать XLS-файл с нужной разметкой и всем остальным. Данных в таблице достаточно много (до 2000 строк по 14 столбцов) - поэтому, как мне кажется, OLE2 не справится.

Как я понимаю, сделать можно следующим образом:
- формировать неотформатированный файл XLS
- форматировать с помощью макросов
или
- использовать интерфейс DOI SpreadSheet
или
- использовать шаблон Excel (видел вкладку "Ракурсы" в ALV Grid, но это не то, потому что отчет использует ALV List) - может быть, тогда можно будет избавиться от форматирования в ABAP'е?

Я далеко не спец в MS Office (и тем более в OLE), поэтому прошу помочь мне. Заранее благодарен.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, ноя 07 2006, 12:52 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, дек 20 2004, 16:05
Сообщения: 1080
Откуда: 4.0B
Пол: Мужской
linker написал(а):
OpenSource есть good! Однако, нет ли другого решения? Просто не хочется писать что-то самому (ведь потом придется поддерживать..)Может, есть стандартное решение? Нашел много примеров SAP, но там предлагается "глубокая интеграция" с MS Office (ALV Excel In-Place, и проч.). А мне нужно сделать кнопочку, при нажатии на которую пользователь будет получать XLS-файл с нужной разметкой и всем остальным. Данных в таблице достаточно много (до 2000 строк по 14 столбцов) - поэтому, как мне кажется, OLE2 не справится.

Как я понимаю, сделать можно следующим образом:
- формировать неотформатированный файл XLS
- форматировать с помощью макросов
или
- использовать интерфейс DOI SpreadSheet
или
- использовать шаблон Excel (видел вкладку "Ракурсы" в ALV Grid, но это не то, потому что отчет использует ALV List) - может быть, тогда можно будет избавиться от форматирования в ABAP'е?

Я далеко не спец в MS Office (и тем более в OLE), поэтому прошу помочь мне. Заранее благодарен.


На мой взгляд, вам стоит смотреть в сторону DOI. При этом хранить отформатированный шаблон, где нибудь в BDS.
DOI для форматирования, тоже не очень хорош и удобен, на мой взгляд. Я пользую гибрид DOI и OLE. Тоесть, выгружаю через DOI шаблон BDS. Если форматирование шаблона, что-то не покрывает, использую OLE.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, ноя 07 2006, 13:22 
Ассистент
Ассистент

Зарегистрирован:
Вт, сен 26 2006, 06:57
Сообщения: 47
Lars написал:
linker написал(а):
OpenSource есть good! Однако, нет ли другого решения? Просто не хочется писать что-то самому (ведь потом придется поддерживать..)Может, есть стандартное решение? Нашел много примеров SAP, но там предлагается "глубокая интеграция" с MS Office (ALV Excel In-Place, и проч.). А мне нужно сделать кнопочку, при нажатии на которую пользователь будет получать XLS-файл с нужной разметкой и всем остальным. Данных в таблице достаточно много (до 2000 строк по 14 столбцов) - поэтому, как мне кажется, OLE2 не справится.

Как я понимаю, сделать можно следующим образом:
- формировать неотформатированный файл XLS
- форматировать с помощью макросов
или
- использовать интерфейс DOI SpreadSheet
или
- использовать шаблон Excel (видел вкладку "Ракурсы" в ALV Grid, но это не то, потому что отчет использует ALV List) - может быть, тогда можно будет избавиться от форматирования в ABAP'е?

Я далеко не спец в MS Office (и тем более в OLE), поэтому прошу помочь мне. Заранее благодарен.


На мой взгляд, вам стоит смотреть в сторону DOI. При этом хранить отформатированный шаблон, где нибудь в BDS.
DOI для форматирования, тоже не очень хорош и удобен, на мой взгляд. Я пользую гибрид DOI и OLE. Тоесть, выгружаю через DOI шаблон BDS. Если форматирование шаблона, что-то не покрывает, использую OLE.

Интересно!
А подробнее можно? Как выгрузить шаблон BDS через DOI? Может, подскажете какие-нибудь отчеты SAP?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, ноя 07 2006, 13:45 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, дек 20 2004, 16:05
Сообщения: 1080
Откуда: 4.0B
Пол: Мужской
linker написал(а):
Интересно!
А подробнее можно? Как выгрузить шаблон BDS через DOI? Может, подскажете какие-нибудь отчеты SAP?


Не совсем правильно выразился наверное :)
    cl_bds_document_set=>get_with_url - обращается к BDS
    ...
    uris = lt_doc_uris[]
    ...

    c_oi_container_control_creator=>get_container_control(
    IMPORTING
    control = gr_xls_control ).

    gr_xls_control->init_control(
    EXPORTING
    ...
    parent = gr_xls_container
    ...

    gr_xls_control->get_document_proxy
    ...

    doc_url = lt_doc_uris-uri

    gr_xls_proxy->open_document(
    EXPORTING
    document_url = doc_url


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, ноя 07 2006, 14:02 
Ассистент
Ассистент

Зарегистрирован:
Вт, сен 26 2006, 06:57
Сообщения: 47
Блин, извините, не врубаюсь! Где можно найти примеры? Ищу с самого утра - и ничего. Такие вот расплывчатые (для меня, ясное дело:)) программы разбираю уже долго..


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, ноя 07 2006, 14:28 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, дек 20 2004, 16:05
Сообщения: 1080
Откуда: 4.0B
Пол: Мужской
SAPRDEMOOFFICEINTEGRATION
SAPRDEMORTFPROCESSING


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, ноя 07 2006, 14:37 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
linker написал(а):
Данных в таблице достаточно много (до 2000 строк по 14 столбцов) - поэтому, как мне кажется, OLE2 не справится.

Креститься надо, когда кажется. :)) Тестовый вывод 1000 строк по 30 столбцов за 8-10 сек при использовании режима оптимизации.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, ноя 07 2006, 15:04 
Ассистент
Ассистент

Зарегистрирован:
Вт, сен 26 2006, 06:57
Сообщения: 47
Parazit написал:
linker написал(а):
Данных в таблице достаточно много (до 2000 строк по 14 столбцов) - поэтому, как мне кажется, OLE2 не справится.

Креститься надо, когда кажется. :)) Тестовый вывод 1000 строк по 30 столбцов за 8-10 сек при использовании режима оптимизации.

У меня это заняло около пяти минут :)) Мой код, конечно, жуткий. Я делал без макросов - просто поток команд (set property/call method .. no flush) для открытого Excel.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, ноя 13 2006, 02:37 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, мар 09 2006, 10:12
Сообщения: 565
Откуда: Волгодонск
Пол: Мужской
Есть исчё одинн метод.
формируеш по данным таблицы HTML файлик, а потом открываеш его Excel-ем. Скорость тоже очень приличная (таблица 25 * 2000 открылась в за 30 сек (формирование файла + выгрузка = 15 сек.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, ноя 13 2006, 11:23 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 13:16
Сообщения: 1790
linker написал(а):
- использовать шаблон Excel (видел вкладку "Ракурсы" в ALV Grid, но это не то, потому что отчет использует ALV List) - может быть, тогда можно будет избавиться от форматирования в ABAP'е?

Мы создавали шаблон, который содержит VBA скрипт для оформления документа.
Смотри описание sap_mm.xls.

_________________
/nex


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 23 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB