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

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


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

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


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

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