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

Форум по вопросам применения и программирования в Visio
Текущее время: 29 мар 2024, 03:05

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


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


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

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



Начать новую тему Ответить на тему  [ Сообщений: 31 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Скрыть объекты при щелчке на другой объект
СообщениеДобавлено: 27 мар 2015, 18:40 
Судари и сударыни, помогите разобраться. Задача следующая:
есть два объекта, при двойном щелчке на 1 объект должен исчезать второй, при повторном двойной щелке на первый объект, второй должен опять появиться. Я ничего не понимаю :wall: :wall: :wall:


Пожаловаться на это сообщение
Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Скрыть объекты при щелчке на другой объект
СообщениеДобавлено: 27 мар 2015, 19:05 
Не в сети
Content manager
Content manager
Аватара пользователя

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

1. нужно включить режим Разработчика
Surrogate писал(а):
что по умолчанию в визио 2010 и 2013 эта панелька отключена…
Изображение
2. нужно найти номер ID второго объекта, на ленте Разработчик выбрать пункт Имя фигуры.
Изображение
В самой верхней строке можно увидеть ID данного объекта.
3. Открыть shapesheet™ первого объекта, щелкнув по Показать таблицу свойств фигуры на ленте Разработчик.
Или верхний пункт контекстного меню Показать таблицу свойств фигуры, после правого щелчка мыши.
Изображение
и в ячейку EventDblClick вписать формулу SETF(GetRef(Sheet.<ID>!Geometry1.NoShow),NOT(Sheet.<ID>!Geometry1.NoShow))
Изображение
подставив ID определенный в п. 2
4. закрыть окно редактора shapesheet™

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 27 мар 2015, 20:26 
Не в сети
Ветеран

Зарегистрирован: 06 май 2013, 13:01
Сообщений: 746
Откуда: Россия
Использую Visio c: 2013
Очков репутации: 18

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
нужно включить режим Разработчика

File → Options → Advanced → Run in Developer mode.
Есть подозрение, что просто включение ленты в контекстное меню Shapesheet не добавит, хотя не проверял.
Проверил. Эти флажки эквиваленты и синхронизируются при применении настроек.

Surrogate писал(а):
SETF(GetRef(Sheet.<ID>!Geometry1.NoShow),NOT(Sheet.<ID>!Geometry1.NoShow))

А как же текст?
Я вроде во се поля, которыми можно что-то скрыть прописывал.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 27 мар 2015, 20:41 
Не в сети
Ветеран

Зарегистрирован: 06 май 2013, 13:01
Сообщений: 746
Откуда: Россия
Использую Visio c: 2013
Очков репутации: 18

Добавить очки репутацииУменьшить очки репутации
Нашёл. Прозрачность текста на 100%, если фигура скрыта:
Код:
.CellsSRC(visSectionCharacter, 0, visCharacterColorTrans).FormulaForceU = "IF(User.Index>" & GroupName & "!User.Count,100%,User.Transparency)"
Т. е. в ячейку Character.Transparency поставить 100%.

Ну и уточнение, что скрывать надо все геометрии, если их несколько, но это и так очевидно.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re:
СообщениеДобавлено: 27 мар 2015, 20:48 
Не в сети
Content manager
Content manager
Аватара пользователя

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

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re:
СообщениеДобавлено: 27 мар 2015, 21:52 
Не в сети
Content manager
Content manager
Аватара пользователя

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

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 27 мар 2015, 22:19 
Не в сети
Ветеран

Зарегистрирован: 06 май 2013, 13:01
Сообщений: 746
Откуда: Россия
Использую Visio c: 2013
Очков репутации: 18

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
ТС ничего не писала что это за фигуры. Если фигура 2 группа то это не спасет

В общем, надо делать пользовательскую переменную User.Visible и писать в неё.
А фигура уже должна сама за счёт формул разобраться, что с этим делать - тогда будет работать для всего.

Surrogate писал(а):
пруфы где?

В смысле? Мне привести VBA-код, которым я прописываю формулы для видимости геометрий и прозрачности текса?
А заодно и выставление нулевых размеров (у меня каждый следующий шейп выстраивался за предыдущим. Кстати, я тут подумал, наверное можно было бы сделать реализацию получше при помощи контейнеров, хотя не уверен. В любом случае, к этой теме это не относится.
Ну, одну я уже привёл :)

Surrogate писал(а):
это тебе очевидно. А ТС?

Я надеялся, что тоже :)


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Скрыть объекты при щелчке на другой объект
СообщениеДобавлено: 27 мар 2015, 22:23 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 2253
Очков репутации: 100626

Добавить очки репутацииУменьшить очки репутации
Цитата:
...формулы для видимости геометрий и прозрачности текста...

А еще можно (иногда) перебрасывать шейп на невидимый слой.
Всего одна ячейка. И для групп работает.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re:
СообщениеДобавлено: 27 мар 2015, 23:35 
Не в сети
Ветеран

Зарегистрирован: 30 июл 2014, 14:28
Сообщений: 534
Использую Visio c: 2008
Очков репутации: 107

Добавить очки репутацииУменьшить очки репутации
Qwertiy писал(а):
Нашёл. Прозрачность текста на 100%, если фигура скрыта:
Код:
.CellsSRC(visSectionCharacter, 0, visCharacterColorTrans).FormulaForceU = "IF(User.Index>" & GroupName & "!User.Count,100%,User.Transparency)"
Т. е. в ячейку Character.Transparency поставить 100%.

Qwertiy, есть ведь чудесная ячейка для скрытия текста. Секция - Miscellaneous, ячейка - HideText.
Булево значение - это ведь проще чем прозрачность менять. :) Я в своих таблицах так текст в заголовках строк/столбцов скрываю.

_________________
GitHub
Yandex-диск с набором полезных утилит


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 27 мар 2015, 23:50 
Не в сети
Ветеран

Зарегистрирован: 06 май 2013, 13:01
Сообщений: 746
Откуда: Россия
Использую Visio c: 2013
Очков репутации: 18

Добавить очки репутацииУменьшить очки репутации
Tumanov писал(а):
А еще можно (иногда) перебрасывать шейп на невидимый слой.
Всё гениальное просто :)
Shishok писал(а):
есть ведь чудесная ячейка для скрытия текста. Секция - Miscellaneous, ячейка - HideText
Упс.. Не заметил)))


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re:
СообщениеДобавлено: 28 мар 2015, 00:16 
Не в сети
Content manager
Content manager
Аватара пользователя

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

А еще можно (иногда) перебрасывать шейп на невидимый слой.
Всего одна ячейка. И для групп работает.
ТС ничего не писала, за то что из себя представляет вторая фигура которую надо скрыть. этот фокус сработает если фигура - картинка, OLE-объект

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Скрыть объекты при щелчке на другой объект
СообщениеДобавлено: 28 мар 2015, 02:15 
Не в сети
Ветеран
Аватара пользователя

Зарегистрирован: 28 апр 2013, 14:03
Сообщений: 963
Откуда: Вена, Австрия
Использую Visio c: 1998
Очков репутации: 100614

Добавить очки репутацииУменьшить очки репутации
Tumanov писал(а):
А еще можно (иногда) перебрасывать шейп на невидимый слой.
Всего одна ячейка. И для групп работает.

Перебрасывать AFAIK из шейпшита не получится. Или?
Т.е. изменить слой через ячейку шейпшита (т.е. через LayerName из LayerMembership) AFAIK нельзя (она только "отображает" реальный слой, но ее изменение никаких последствий не имеет)
Может косяк, может фича.

Но можно слой включать-отключать.
Т.е. создать 1 слой положить на него шейп B, а по дабл-клику на шейпе A менять видимость этого слоя.

Но вообще - нафига это нужно (исходная задача)? Т.е. дабл-клики это же изврат какой-то, не?
Почему просто слои не использовать если надо что-то скрыть-показать?

Про слои например здесь вменяемо так написано:
http://blogs.technet.com/b/visio_ru/arc ... 17351.aspx

_________________
Полезные инструменты для создания диаграмм Visio:
https://unmanagedvisio.com/


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

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

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Скрыть объекты при щелчке на другой объект
СообщениеДобавлено: 28 мар 2015, 09:15 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 2253
Очков репутации: 100626

Добавить очки репутацииУменьшить очки репутации
Цитата:
Перебрасывать AFAIK из шейпшита не получится. Или?

Может я неточно выразился... :(
Делаем так:
На листе 2 шейпа.
Создаем один слой и назначаем его невидимым.
Во втором шейпе создаем одну строку CustomProperties и в Value пишем формулу
=SETATREF(Sheet.1!LayerMember)
Открываем Shape Data, селектируем второй шейп и начинаем баловаться:
Пишем 0 - первый шейп исчезает; пишем 1 - появляется.
То есть шейп 1 то прыгает на невидимый слой, то слезает с него. Это я и назвал "перебрасываем".
P.S. Проверял в Visio 2007.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Скрыть объекты при щелчке на другой объект
СообщениеДобавлено: 28 мар 2015, 09:36 
еще про слои


Пожаловаться на это сообщение
Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Скрыть объекты при щелчке на другой объект
СообщениеДобавлено: 28 мар 2015, 10:37 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 2253
Очков репутации: 100626

Добавить очки репутацииУменьшить очки репутации
Да, собственно вариант решения (для переключателя по DblClick)...
Формула может быть такой:
=IF(StrSame(Sheet.1!LayerMember,"0"),SETF(GetRef(Sheet.1!LayerMember),""),SETF(GetRef(Sheet.1!LayerMember),"0"))
или даже такой
=IF((Sheet.1!LayerMember=0),SETF(GetRef(Sheet.1!LayerMember),1),SETF(GetRef(Sheet.1!LayerMember),0))
Это при условии, что невидимый слой является единственным. Иначе с номером будет посложнее.
(На картинках тоже работает.)


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Скрыть объекты при щелчке на другой объект
СообщениеДобавлено: 28 мар 2015, 12:51 
Не в сети
Ветеран
Аватара пользователя

Зарегистрирован: 28 апр 2013, 14:03
Сообщений: 963
Откуда: Вена, Австрия
Использую Visio c: 1998
Очков репутации: 100614

Добавить очки репутацииУменьшить очки репутации
Tumanov писал(а):
Да, собственно вариант решения (для переключателя по DblClick)...
Формула может быть такой:
=IF(StrSame(Sheet.1!LayerMember,"0"),SETF(GetRef(Sheet.1!LayerMember),""),SETF(GetRef(Sheet.1!LayerMember),"0"))


Не, я именно это и имел в виду. У меня это просто не работает почему-то. Похоже скорее на глюк (просто уже видел раньше такую фигню с не-апдейтящимися из шейпшита слоями)
Т.е. пофик что пишешь в LayerMember - оно игнорится. См. пример ниже (файл приаттачен).

Изображение


Вложения:
Drawing2.vsd [70 Кб]
Скачиваний: 237

_________________
Полезные инструменты для создания диаграмм Visio:
https://unmanagedvisio.com/
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Скрыть объекты при щелчке на другой объект
СообщениеДобавлено: 28 мар 2015, 13:02 
Не в сети
Ветеран
Аватара пользователя

Зарегистрирован: 28 апр 2013, 14:03
Сообщений: 963
Откуда: Вена, Австрия
Использую Visio c: 1998
Очков репутации: 100614

Добавить очки репутацииУменьшить очки репутации
Вроде дошло - оно для состваных шейпов так работает (т.е. для групп). Сервер на картинке - группа на самом деле.
Т.е. запись в ШШ меняет слой только у текущего шейпа (но не у вложенных). Что ожидаемо в принципе.
А через пользовательский интерфейс (или VBA) - у всех (включая вложенные).

_________________
Полезные инструменты для создания диаграмм Visio:
https://unmanagedvisio.com/


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Скрыть объекты при щелчке на другой объект
СообщениеДобавлено: 28 мар 2015, 13:33 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 2253
Очков репутации: 100626

Добавить очки репутацииУменьшить очки репутации
И правда.
Это лечится, конечно. Если у вложенных шейпов установить ссылку на шейп-группу, то и они начнут за группой перепрыгивать.
Типа, LayerMember=Sheet.4!LayerMember
Но помнить об этом надо.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Скрыть объекты при щелчке на другой объект
СообщениеДобавлено: 30 мар 2015, 10:20 
Всем доброе утро!

Так приходишь на работу, а тут такая дискуссия на интересующую тему. Спасибо огромное всем, кто откликнулся! Буду разбираться. :) :) :)


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

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



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

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


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

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