Текущее время: Вт, май 13 2025, 19:39

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: Передача параметров OLE функции
СообщениеДобавлено: Вт, дек 07 2004, 16:00 
Ассистент
Ассистент

Зарегистрирован:
Вт, дек 07 2004, 15:46
Сообщения: 32
Нужно из ABAPа вызвать метод EXCELя, но один из параметров д.б. массивом. Вопрос в том как этот массив туда передать?

Пытаюсь сделать так:
CALL METHOD OF h_range 'Subtotal' NO FLUSH
EXPORTING #1 = 2
#2 = xlSum
#3 = : 5 , 6 , 7, 8, 9, 10, 11
#4 = 1
#5 = 0
#6 = 1.

но нормальный результат получаю только для последнего столбца, т.е. 11, а надо для всех :(


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, дек 07 2004, 16:18 
Гость
может я и не понял - о чем речь, :oops:
но если о суммировании столбцов,
то можно так:

CALL METHOD OF H_EXCEL 'Cells' = H_ZL
EXPORTING
#1 = 10
#2 = 10.
SET PROPERTY OF H_ZL 'Value' = '=SUM(B4:E9)'.

Тогда в ячейки J10 будет сумма
столбцов с B по Е, строк с 4 по 9


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

Зарегистрирован:
Вт, дек 07 2004, 15:46
Сообщения: 32
ВН написал(а):
может я и не понял - о чем речь, :oops:
но если о суммировании столбцов,
то можно так:

CALL METHOD OF H_EXCEL 'Cells' = H_ZL
EXPORTING
#1 = 10
#2 = 10.
SET PROPERTY OF H_ZL 'Value' = '=SUM(B4:E9)'.

Тогда в ячейки J10 будет сумма
столбцов с B по Е, строк с 4 по 9


Не то! :)
Выгружается таблица в EXCEL и по этим данным надо сделать тоталы/сабтоталы. Тотал по первому столбцу, сабтотал по второму, а суммировать столблы с 5 по 11 :)
Для этого в Excele есть метод Range->SubTotal. Вот его и вызываю.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, дек 08 2004, 10:24 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пн, окт 18 2004, 12:27
Сообщения: 93
Попробуй воспользоваться тем, что объект Collection тоже экспозируется Excel через OLE2, создать его, наполнить данными, а потом передать ссылку на него в качестве параметра.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: *
СообщениеДобавлено: Ср, дек 08 2004, 12:47 
Гость
имхо - врядли абаповский тип "массивов" будет совместим с VBшным OleVariant ... Вообще - в абапе OLE прикручено както через одно место, и работает ужастно медленно :(

Попробуй саму экселевскую книгу создавать не "голую", а по шаблону, куда будет вклеен VBA-макрос "оболочка", который будет раскручивать параметры из длинной строки в VBA-массив и из себя вызывать нужный тебе метод. А вызывать его из абапа можно через метод Application.RunMacro

Имхо, учитывая скорость работы абапа с ОЛЕ, лучче всю функциональность по раскраске/разметке данных на листе перенести прямо в эксель, в его макросы.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, дек 08 2004, 13:00 
Гость
А вот где лучше шаблон хранить?
На клиенте, думаю, не фонтан.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения: Re: *
СообщениеДобавлено: Ср, дек 08 2004, 13:17 
Ассистент
Ассистент

Зарегистрирован:
Вт, дек 07 2004, 15:46
Сообщения: 32
PavelBerezin написал(а):
имхо - врядли абаповский тип "массивов" будет совместим с VBшным OleVariant ... Вообще - в абапе OLE прикручено както через одно место, и работает ужастно медленно :(

Попробуй саму экселевскую книгу создавать не "голую", а по шаблону, куда будет вклеен VBA-макрос "оболочка", который будет раскручивать параметры из длинной строки в VBA-массив и из себя вызывать нужный тебе метод. А вызывать его из абапа можно через метод Application.RunMacro

Имхо, учитывая скорость работы абапа с ОЛЕ, лучче всю функциональность по раскраске/разметке данных на листе перенести прямо в эксель, в его макросы.


А я и так её по шаблону создаю(через OAER). С макросом всё без проблем работает, только при открытии спрашивает "enable macros", а изменить security никто не позволит.
Очень хотелось попробовать сделать это всё без макросов.


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

Зарегистрирован:
Вт, дек 07 2004, 15:46
Сообщения: 32
CoMan написал(а):
А вот где лучше шаблон хранить?
На клиенте, думаю, не фонтан.


Ессно в базе. Транзакция OAER.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, дек 08 2004, 13:45 
Гость
А вот где лучше шаблон хранить?
На клиенте, думаю, не фонтан.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, дек 27 2004, 21:29 
Гость
Цитата:
Для этого в Excele есть метод Range->SubTotal. Вот его и вызываю.


по-моему нельзя передать Variant-Array из абапа в эксель. Бился в своё время и не получилось. А заводить из-за одного места excel-side макрос конечно некрасиво -- юзеру начинают приходить диалоги об ужасном вирусе.


Принять этот ответ
Вернуться к началу
  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

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


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

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


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

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