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

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


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

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


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

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