Форум пользователей Visio

Форум по вопросам применения и программирования в Visio
Текущее время: 28 мар 2024, 22:43

Часовой пояс: UTC + 3 часа [ Летнее время ]


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


При размещении файлов предпочтительным является формат vsd (а не vsdx/vsdm)
Размещая ваши вложения на форуме не используйте имена файлов содержащих кириллицу, в противном случае файл будет иметь имя .<расширение файла> !

Для форматирования ваших сообщений используйте BBCodes, описание используемых на форуме BBCodes.



Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: Привязка к данным произвольного шейпа
СообщениеДобавлено: 25 июл 2013, 15:12 
Не в сети

Зарегистрирован: 24 июл 2013, 17:11
Сообщений: 15
Откуда: Санкт-Петербург
Использую Visio c: 2013
Отрасль: САПР
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
Добрый день.
Ситуация следующая: шейп "метка" привязывается к произвольному шейпу, ID которого заранее неизвестен, при помощи Controls.
Подскажите, пожалуйста, могу ли я как-нибудь достучаться до данных этого произвольного шейпа. Цель - метка должна менять геометрию в зависимости от данных произвольного шейпа.
Заранее благодарю за помощь.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Привязка к данным произвольного шейпа
СообщениеДобавлено: 25 июл 2013, 16:15 
Не в сети
Ветеран

Зарегистрирован: 21 окт 2011, 12:01
Сообщений: 939
Откуда: г. Екатеринбург
Использую Visio c: 2011
Очков репутации: 127

Добавить очки репутацииУменьшить очки репутации
каким образом привязывается "метка"? без использования макросов?


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Привязка к данным произвольного шейпа
СообщениеДобавлено: 25 июл 2013, 16:59 
Не в сети

Зарегистрирован: 24 июл 2013, 17:11
Сообщений: 15
Откуда: Санкт-Петербург
Использую Visio c: 2013
Отрасль: САПР
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
Непосредственно работа с шейпами происходит в другом приложении (AVEVA Diagrams, AD), там "метка" привязывается скорее всего при помощи макроса, я могу задать вопрос разработчакам. В AVEVA Diagrams нет возможности работать с ShapeSheet, поэтому чтобы сделать шейп интеллектуальным я копирую его из AD и дальше работаю с ним в Visio. В ShapeSheet "метки" уже привязанной в AD к некоторому шейпу можно увидеть следующее:
Изображение.
В разделе Controls Branch.218! - имя шейпа к которому привязывана "метка". Это имя может быть любым. Больше в ShapeSheet "метки" ссылки на шейп, к которому она привязана, я не нашел. Если бы можно было бы вытащить эту ссылку из Controls, проблема бы решилась.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Привязка к данным произвольного шейпа
СообщениеДобавлено: 25 июл 2013, 18:06 
Не в сети
Ветеран

Зарегистрирован: 21 окт 2011, 12:01
Сообщений: 939
Откуда: г. Екатеринбург
Использую Visio c: 2011
Очков репутации: 127

Добавить очки репутацииУменьшить очки репутации
да уж, AVEVA Diagrams - и правда AD))

увидеть шейп, к которому привязана ваша метка непосредственно из нее нельзя (или мне неизвестно как), не используя VBA. можно только подготовить заранее основной шейп прописав например функцию ID() например в секцию User и читать из нее номер родительского шейпа. тогда да. но как вы это сделаете не влезая в шейпы ADа заранее? это вопрос скорее к разрабам этой поделки


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Привязка к данным произвольного шейпа
СообщениеДобавлено: 25 июл 2013, 18:38 
Не в сети
Ветеран

Зарегистрирован: 21 окт 2011, 12:01
Сообщений: 939
Откуда: г. Екатеринбург
Использую Visio c: 2011
Очков репутации: 127

Добавить очки репутацииУменьшить очки репутации
хотя можно извратиться например так. если у вас имя родительского шейпа всегда "Branch", то можно получить ID этого шейпа из секции Controls так:
в следующие ряды своей "метки" помещаем формулы:
начало имени шейпа-родителя:
User.Start: FIND("Branch",Controls.Attach)
конец имени шейпа-родителя:
User.End: FIND("!",Controls.Attach)
Итоговая ячейка:
User.Parent: MID(Controls.Attach,User.Start,User.Start-User.End)
в итоге получаем в User.Parent имя шейпа родителя и через конструкцию "User.Parent!" получаем доступ к его ячейкам.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Привязка к данным произвольного шейпа
СообщениеДобавлено: 26 июл 2013, 11:27 
Не в сети

Зарегистрирован: 24 июл 2013, 17:11
Сообщений: 15
Откуда: Санкт-Петербург
Использую Visio c: 2013
Отрасль: САПР
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
Сделал так, как Вы предлагаете, ячейки User.*** возвращают значение #Value!. Быть может это связано с тем что в Controls.Attach представлена функция, вычесляющая координаты точки присоединения, а не текст? Шейп Branch я могу отредактировать, перед тем как использовать его в AD, и добавить в User функцию ID(), но что с этим делать дальше?


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Привязка к данным произвольного шейпа
СообщениеДобавлено: 26 июл 2013, 12:23 
Не в сети
Ветеран

Зарегистрирован: 21 окт 2011, 12:01
Сообщений: 939
Откуда: г. Екатеринбург
Использую Visio c: 2011
Очков репутации: 127

Добавить очки репутацииУменьшить очки репутации
Цитата:
добавить в User функцию ID(), но что с этим делать дальше?

тут я поторопился. я что-то подобное делал, но с помощью макросов. из ID() брал номер шейпа.
а вам нужно NAME() - его полное имя.
но тут проблема, что это самое имя можно получить только внутри этого шейпа. но не из другого.

Цитата:
User.*** возвращают значение #Value!

да, тут надо как-то вытащить именно формулу.
я больше специализируюсь на VBA все-таки, поэтому сразу не скажу.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Привязка к данным произвольного шейпа
СообщениеДобавлено: 26 июл 2013, 13:32 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
я в свое время пытался найти как используя shapesheet найти имя (или ID) приконнекченного шейпа, безрезультатно

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Привязка к данным произвольного шейпа
СообщениеДобавлено: 26 июл 2013, 13:40 
Не в сети

Зарегистрирован: 24 июл 2013, 17:11
Сообщений: 15
Откуда: Санкт-Петербург
Использую Visio c: 2013
Отрасль: САПР
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
Да, похоже придется искать другие решения. В любом случае, спасибо за помощь!


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Привязка к данным произвольного шейпа
СообщениеДобавлено: 26 июл 2013, 14:44 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
а метка что из себя представляет ? в шейпшите есть функции для работы с Callout (типа наших выносок): CALLOUTTARGETREF() и CALLOUTCOUNT(). Про них я не понял еще как они работают.
вроде еще какие-то функции есть. можно попробовать порыться в этом направлении

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Привязка к данным произвольного шейпа
СообщениеДобавлено: 26 июл 2013, 18:33 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
Вот ссылки по теме, судя по описанию практически что нужно !

http://books.google.ru/books?id=cBIEXe3 ... EF&f=false (с примером не работающим)
http://blogs.office.com/b/visio/archive ... -2010.aspx
http://blogs.technet.com/b/visio_ru/arc ... 41599.aspx
но у меня что-то не работает :(
может это мой персональный глюк, у меня и аддоны не работают например…

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Привязка к данным произвольного шейпа
СообщениеДобавлено: 29 июл 2013, 17:22 
Не в сети

Зарегистрирован: 24 июл 2013, 17:11
Сообщений: 15
Откуда: Санкт-Петербург
Использую Visio c: 2013
Отрасль: САПР
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
Спасибо за подсказку!
Действительно, формула =GetVal(CALLOUTTARGETREF()!Prop.ХХХ) позволяет получить для выноски (Callout) значение Prop.ХХХ шейпа, к которому выноска привязана.
Осталось только придумать, как сделать мою "метку" выноской (Callout). :)


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

Часовой пояс: UTC + 3 часа [ Летнее время ]



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

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


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

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Вы можете создать форум бесплатно PHPBB3 на Getbb.Ru, Также возможно сделать готовый форум PHPBB2 на Mybb2.ru
Русская поддержка phpBB