AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.08.2012, 17:10   #1  
novic is offline
novic
Axapta Retail User
Axapta Retail User
 
168 / 25 (0) +++
Регистрация: 14.04.2005
Запустить макрос из AX
Можно запустить выполнение макроса из кода? Как?
Старый 06.08.2012, 17:24   #2  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5788 (200) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Какого макроса? На VBA в документе Word/Excel?..
Старый 06.08.2012, 17:25   #3  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Если про Excel, то переложить на X++
Цитата:
Application.Run "'Книга.xls'!Макрос"
__________________
С уважением,
Олег.
Старый 06.08.2012, 17:47   #4  
novic is offline
novic
Axapta Retail User
Axapta Retail User
 
168 / 25 (0) +++
Регистрация: 14.04.2005
Мне вообще-то в Word нужно.
Старый 06.08.2012, 23:37   #5  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,275 / 3476 (122) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Вот рабочий пример:
X++:
static void Job20(Args _args)
{
    ComWordDocument_RU word;
    COMDispFunction         dispFunction;
    COMVariant              myStrParam, myIntParam;
   ;
    word = new ComWordDocument_RU();
    word.open('c:\\docmacro.docm');
    dispFunction = new COMDispFunction(word.getComDocument(), 'mymacro', COMDispContext::Method);

    myStrParam = new COMVariant();
    myStrParam.bStr('myString');
    
    myIntParam = new COMVariant();
    myIntParam.int(24);

    dispFunction.call(myStrParam, myIntParam);
    word.visible(true);
}
Создаем файл Word (я делал в формате Word 2007 с поддержкой макросов, т.е. *.docm) с вот таким макросом:
PHP код:
Sub mymacro(Param1Param2)
    
MsgBox "ДА! Это макрос " Param1 " " Param2
End Sub 
Нажмите на изображение для увеличения
Название: Снимок.PNG
Просмотров: 538
Размер:	18.6 Кб
ID:	7830

Запускаем джоб на исполнение. Открывается файл, в котором мы видим окно:
Название: Снимок2.PNG
Просмотров: 1777

Размер: 2.0 Кб
__________________
Возможно сделать все. Вопрос времени

Последний раз редактировалось sukhanchik; 06.08.2012 в 23:41.
За это сообщение автора поблагодарили: lev (5), novic (1), Ivanhoe (2), gl00mie (4).
Старый 07.08.2012, 09:41   #6  
novic is offline
novic
Axapta Retail User
Axapta Retail User
 
168 / 25 (0) +++
Регистрация: 14.04.2005
Вот такую ошибку получаю.
"метод "mymacro" не поддерживается интерфейсом Automation COM-обьекта "_Document ".
Обьект COMDispFunction не может быть создан."

http://saveimg.ru/show-image.php?id=...aad9603620ee3f

Что посоветуете?
Старый 07.08.2012, 09:46   #7  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,275 / 3476 (122) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от novic Посмотреть сообщение
Вот такую ошибку получаю.
"метод "mymacro" не поддерживается интерфейсом Automation COM-обьекта "_Document ".
Обьект COMDispFunction не может быть создан."

http://saveimg.ru/show-image.php?id=...aad9603620ee3f

Что посоветуете?
Какая у вас версия Word? Разрешены ли там макросы?
__________________
Возможно сделать все. Вопрос времени
Старый 07.08.2012, 09:55   #8  
novic is offline
novic
Axapta Retail User
Axapta Retail User
 
168 / 25 (0) +++
Регистрация: 14.04.2005
Word 2010. В параметрах "Управления макросами" установил "включить все макросы".
Старый 07.08.2012, 09:56   #9  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,275 / 3476 (122) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Файл *.docm? или *.docx? Нужен именно *.docm
__________________
Возможно сделать все. Вопрос времени
Старый 07.08.2012, 10:02   #10  
novic is offline
novic
Axapta Retail User
Axapta Retail User
 
168 / 25 (0) +++
Регистрация: 14.04.2005
да .docm и в вашем jobe и в моем случае
Старый 07.08.2012, 10:06   #11  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,275 / 3476 (122) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Тогда может быть только одно решение - попробовать в принципе работу макросов в Word-е на вашем компьютере. Есть стойкое ощущение - что потребуется переустановить офис (Word). Я как-то видел такую ситуацию - когда макросы не работали в принципе - хоть ты тресни
__________________
Возможно сделать все. Вопрос времени
Старый 07.08.2012, 10:10   #12  
novic is offline
novic
Axapta Retail User
Axapta Retail User
 
168 / 25 (0) +++
Регистрация: 14.04.2005
при простом запуске макроса на выполнение - все работает. Ладно, не буду отвлекать ваше время, позже попробую разобраться. Спасибо большое.
Старый 04.04.2013, 10:41   #13  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,275 / 3476 (122) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Столкнулся с той же проблемой. Причиной оказалось неустановленная компонента Visual Basic for Applications из офисного пакета.
Правда, в рамках исследования я еще до кучи с безопасностью максимально поигрался. Но реально, пока не установил компоненту - ничего не помогло.
После установки компоненты пришлось заново файлик выкладывать, т.к. в старом файлике макрос потерся.
__________________
Возможно сделать все. Вопрос времени
За это сообщение автора поблагодарили: mikki_messer (1).
Теги
office, законченный пример, макрос

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axinthefield: Compatibility Testing for Microsoft Dynamics AX Blog bot DAX Blogs 0 23.06.2012 02:26
emeadaxsupport: New Content for Microsoft Dynamics AX 2012 : October 2011 Blog bot DAX Blogs 0 27.10.2011 17:11
axinthefield: Dynamics AX Event IDs Blog bot DAX Blogs 0 01.03.2011 22:11
daxdilip: Whats New in Dynamics AX 2012 (A brief extract from the recently held Tech Conf.) Blog bot DAX Blogs 7 31.01.2011 12:35
axStart: Microsoft Dynamics AX 2009 Hot Topics Web Seminar Series Blog bot DAX Blogs 0 06.08.2008 12:05

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 11:08.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.