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

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: Передача параметра через OLE с помощью Eval. Код на ABAP-е не видели?
СообщениеДобавлено: Чт, апр 03 2008, 13:30 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вс, сен 02 2007, 15:10
Сообщения: 670
Откуда: Moscow
скрипт=СоздатьОбъект("MSScriptControl.ScriptControl");
скрипт.language="javascript";
...
ПараметрыСтраницы=Лист.PageSetup;
скрипт.AddObject("ПараметрыСтраницы",ПараметрыСтраницы);
скрипт.Eval("ПараметрыСтраницы.Zoom=false");

(специальное спасибо за код abrahams).


Честно признаюсь, сам ответ не искал, но может кто подскажет, как это будет в SAP-е?
Клятвенно заверяю, если найду первый, напишу код в тему.

_________________
Если кризис ведет к очищению, то удар битой по голове должен вести к просветлению. (с) Я.


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

Зарегистрирован:
Вс, сен 02 2007, 15:10
Сообщения: 670
Откуда: Moscow
Хотя бы подскажите, плз, как правильно создать объект MSScriptControl.ScriptControl :( .
Я то там какие-то таблицы дополнительные. Ща в них пороюсь ...

_________________
Если кризис ведет к очищению, то удар битой по голове должен вести к просветлению. (с) Я.


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

Зарегистрирован:
Вс, сен 02 2007, 15:10
Сообщения: 670
Откуда: Moscow
Транзакцией SOLE кто-нить новые OLE-объекты подключал?

_________________
Если кризис ведет к очищению, то удар битой по голове должен вести к просветлению. (с) Я.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: re
СообщениеДобавлено: Сб, апр 12 2008, 11:02 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, сен 23 2005, 11:11
Сообщения: 963
да как обычно должно быть

поищи тут примеры работы с Excel.Application,
только наверное лучше на английском именовать все

я бы сначала в Excel в VBA редакторе (alt+f11) попробовал,
ведь можно извратиться и завернуть всю работу с MSScriptControl.ScriptControl в макрос,
в макросе подцепить текст скрипта и запустить.
то есть - выгружать скрипт в текстовый файл и запускать макрос
запускающий скрипт из текстового файла через объект Excel.Application,
если все работает и действительно нужно, перевести полностью в abap

кстати он что-то из net напоминает, нужно проверить его наличие на целевых машинах


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, апр 14 2008, 08:43 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вс, сен 02 2007, 15:10
Сообщения: 670
Откуда: Moscow
PageSetup.Zoom = false - устанавливает ширину страницы по ширине текста. VBA это понимает, а вот передать false как 0 через OLE не получается. Т.к. команда PageSetup.Zoom = <число> устанавливает формат листа на печать в процентах.
Использовать макросы, написанные внутри самой книги Excel, не очень хочется ...
Да и сам способ через такой вызов скрипта "универсален" и может использоваться для многих OLE-объектов. Потому и хочу нарыть.
Кстати, добавленный по аналогии с Excel-ом объект MSScriptControl.ScriptControl не создается :(. Видать, неправильно я установил параметры для него в транзакции SOLE :(. Где бы их взять ... только CLSID нашел в реестре винды.

_________________
Если кризис ведет к очищению, то удар битой по голове должен вести к просветлению. (с) Я.


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

Зарегистрирован:
Пн, дек 20 2004, 16:05
Сообщения: 1080
Откуда: 4.0B
Пол: Мужской
Может быть, если дело только в zoom, создать шаблон с уже выставленным значением zoom , хранить его в репозитарии бизнес-документов и вытягивать когда надо.

_________________
Я слышу и забываю,
Я вижу и помню долго,
Я делаю и — понимаю.


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

Зарегистрирован:
Вс, сен 02 2007, 15:10
Сообщения: 670
Откуда: Moscow
Я просто знаю по обзору и своему опыту, что такие тонкие моменты встречаются. Хочется универсального решения. В 1С-ке такое решение есть. Хочу его в SAP перенести.

_________________
Если кризис ведет к очищению, то удар битой по голове должен вести к просветлению. (с) Я.


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

Зарегистрирован:
Пт, сен 23 2005, 11:11
Сообщения: 963
похоже свойство Zoom можно выставить только через Eval
http://www.kb.mista.ru/article.php?id=541


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: re
СообщениеДобавлено: Пн, апр 14 2008, 12:07 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вс, сен 02 2007, 15:10
Сообщения: 670
Откуда: Moscow
trop написал(а):
похоже свойство Zoom можно выставить только через Eval http://www.kb.mista.ru/article.php?id=541
Что и написано у меня в первом посте этой темы :). Я объект MSScriptControl.ScriptControl не могу создать :(.
Прим. abrahams = smaharba (только наоборот) :).

_________________
Если кризис ведет к очищению, то удар битой по голове должен вести к просветлению. (с) Я.


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

Зарегистрирован:
Вс, сен 02 2007, 15:10
Сообщения: 670
Откуда: Moscow
DATA: ...
MSScriptControl_ScriptControl TYPE ole2_object.
...
CREATE OBJECT MSScriptControl_ScriptControl 'MSScriptControl.ScriptControl'.

SET PROPERTY OF MSScriptControl_ScriptControl 'LANGUAGE' = 'vbscript'.
*SET PROPERTY OF MSScriptControl_ScriptControl 'LANGUAGE' = 'javascript'.

CALL METHOD OF MSScriptControl_ScriptControl 'ADDOBJECT'
EXPORTING #1 = 'PageSetup'
#2 = ls_PageSetup.

CALL METHOD OF MSScriptControl_ScriptControl 'EXECUTESTATEMENT'
*CALL METHOD OF MSScriptControl_ScriptControl 'EVAL'
EXPORTING #1 = 'PageSetup.Zoom=false'.

-------------------------------------------------------------------------------------------
А вот эти поля для OLE-объекта нужно заполнить в транзакции SOLE:
[b]Приложение OLE: MSSCRIPTCONTROL.SCRIPTCONTROL.1
CLSID: {000204F3-0000-0000-C000-000000000046}
ИмяОбъекта OLE: APPLICATION
Ключ инфотипа: NO_TYPELIB

Остальные поля оставить пустыми.

-------------------------------------------------------------------------------------------
Прим. Регистрация в таблице OLE-объектов (TOLE) с помощью транзакции SOLE. (объект MSScriptControl.ScriptControl.1 ). CLSID объекта искать в реестре Windows.
Прим2. В случае использования javascript изменения минимальны (см. строки со *).

_________________
Если кризис ведет к очищению, то удар битой по голове должен вести к просветлению. (с) Я.


Последний раз редактировалось Моха Вт, апр 15 2008, 08:38, всего редактировалось 11 раз(а).

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

Зарегистрирован:
Пт, сен 23 2005, 11:11
Сообщения: 963
:)

нет системы под рукой.
попробуй выставить в параметрах отладки синхронную обработку OLE
и следи за subrc после каждого вызова метода или свойства,
там где > 0 произведен некорректный вызов, нужно понять где валится.

свойства и методы лучше написать case-sensitive - в Excel-е есть Object Browser,
в окне Classes вызови контекстное меню и выбери References,
выдели Microsoft Script Control 1.0, наверху в выпадающем списке
выбери MSScriptControl, теперь в Classes можно посмотреть что нужно

трудность может быть в передаче второго параметра AddObject
в него надо передать объект, т.е. Лист.PageSetup (ole2_object)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, апр 14 2008, 23:07 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вс, сен 02 2007, 15:10
Сообщения: 670
Откуда: Moscow
Сорри! Я забыл сказать, что все получилось! Просто, как принято, опубликовал рабочий код :).

_________________
Если кризис ведет к очищению, то удар битой по голове должен вести к просветлению. (с) Я.


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

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


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

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


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

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