Текущее время: Вт, июл 22 2025, 03:40

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: Yandex [Bot]


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

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