Author |
Topic |
|
AsTeRiX
11 Posts |
Posted - 02/25/2008 : 11:02:12
|
Здравствуйте. В визио я новичек, помогите справиться с задачкой, пожалуйста:
Внешняя программа путем Reverse engineer выгружает объектную модель в визио. В визио объектную модель видно только в Model Explorer, сам же рисунок пустой. Очень хочется чтоб объекты на листе все же рисовались автоматически. Пытаюсь сделать это из внешнего приложения. но нарисовать удается только какие-нибудь простые формы через drowLine и тп, вытащить же объект из Model Explorer и нарисовать его на листе никак не получается :( Такое возможно и с помошью какого объекта-метода? Во внешней программе мне известен GUID объекта, который передается в визио реверсом.
Изучала SDK - не помогло, понятия Model Explorer там вообще нет :( |
|
Tumanov
Russia
1198 Posts |
Posted - 02/25/2008 : 11:54:22
|
quote: Внешняя программа путем Reverse engineer выгружает объектную модель в визио
Вот тут надо бы поподробнее... Что за программа, откуда взялась, как и куда выгружает. Если Вы работаете с шаблоном UML Model Diagramm, то, как я понимаю, за прорисовку отвечает UML Add-On. То есть к Visio прилеплена дополнительная программка. Model Explorer - это окошко, которое находится в ее полном распоряжении. Внешней программой, подобной той, о которой Вы говорите, может быть VB6. Там при нажатии кнопочки Reverse Engineer UML Model Add-In от VBA открывает Visio документ по шаблону UML Model Diagramm и передает данные запускающемуся при этом UML Add-On . При этом модель отображается в Model Explorer, а на листе пусто. Пользователь может перенести любую часть модели из Model Explorer на лист рисунка (мышкой) - тогда UML Add-On прорисует на рисунке эту часть модели. Если Ваша внешняя программа действует аналогично и связывается с тем же Add-On, то и действия пользователя должны быть аналогичны. А если нет, то надо знать, как она связывается с Visio. |
|
|
AsTeRiX
11 Posts |
Posted - 02/25/2008 : 12:31:00
|
программа - MS Dynamics Ax. Версия визио - от 2003 и выше (по документации. У меня 2007). Принцип действия именно такой как Вы описали - программа формируется файл *.txt с списком описаний объектов - тип, GUID parent, GUID, name, ... (прочие параметры). Затем создается визио файл и через ком объекты запускается метод run объекта AddOn 'UML Background Add-on'.
Собственно, интересует именно то, можно ли вместо пользователя автоматически перенести модель на листик? Чтоб получить уже прорисованную диаграмку, а не пустой лист (я понимаю что получится плохо, с этим будем разбираться по ходу..). Ну и если можно, то как - не могу найти такоих методов.. |
Edited by - AsTeRiX on 02/25/2008 12:37:07 |
|
|
Tumanov
Russia
1198 Posts |
Posted - 02/25/2008 : 14:06:41
|
Совсем не уверен, что AddOn 'UML Background Add-on' разрешит выполнить какие-либо свои внутренние функции... Может пойти другим путем - взять входной текстовый файл и прорисовать все самому? Если связь с окном Model Explorer Вам не очень важна, а главное - получить картинку, то может это и проще будет. В Visio ведь рисуют не только примитивами. Можно программно перетаскивать мастер-шейп с трафарета на рисунок и заполнять его свойства. Если структура текстового файла достаточно прозрачна... -------- Вот посмотрите примерчик (правда немного из другой области) http://visio.artberg.ru/biblio/st005.htm |
|
|
AsTeRiX
11 Posts |
Posted - 02/25/2008 : 15:23:20
|
Грустно это, конечно. Я-то думала что раз объект уже в визио то отобразить его на листе можно запросто.. Ну значит будем заниматься рисованием - структура файла очень даже прозрачна :) (вот только интересно бы посмотреть из каких соображений он так формируется - может туда можно еще какие-нить нужные параметры добавить?)
Спасибо большое за информацию!
|
Edited by - AsTeRiX on 02/25/2008 15:26:07 |
|
|
Tumanov
Russia
1198 Posts |
Posted - 02/25/2008 : 15:50:48
|
quote: Грустно это, конечно... значит будем заниматься рисованием
Я могу и ошибаться... Стопроцентной уверенности нет :) |
|
|
|
Topic |
|
|
|