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

Форум по вопросам применения и программирования в Visio
Текущее время: 19 мар 2024, 08:17

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


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


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

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



Начать новую тему Ответить на тему  [ Сообщений: 125 ]  На страницу Пред.  1, 2, 3, 4, 5 ... 7  След.
Автор Сообщение
 Заголовок сообщения: Ссылка на шейп на другой странице
СообщениеДобавлено: 15 авг 2012, 14:00 
Не в сети

Зарегистрирован: 21 авг 2012, 10:58
Сообщений: 10
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Здравствуйте, Коллеги.
В справке Visio-2010 есть указание на возможность использования ссылки такого вида: Pages[Страница-3]!Лист.4!BeginX.
Однако, мне не удалось добиться работоспособности такой конструкции: Pages[Страница-1]!Sheet.1!Width.
Можете подсказать как правильно получить значение ячейки с другой страницы (в том числе интересуют и значения из ShapeSheet самой страницы)?
Дополнено позднее: 26.09.2019 добавлено видео, для тех кому лень читать сообщения в этой ветке
Встроенное видео спрятано под спойлер ↓ Прямая ссылка на видео
Спойлер:
phpBB [youtube]

Также может быть полезно почитать написанное в ветке: там есть специальный файл эксель позволяющий сформировать ссылку и видео с описанием работы с данным файлом


Последний раз редактировалось Surrogate 26 сен 2019, 10:54, всего редактировалось 1 раз.

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

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

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


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

Зарегистрирован: 26 дек 2014, 11:03
Сообщений: 12
Использую Visio c: 1994
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Вот файл.
Хотелка внутри.


Вложения:
др стр.vsdx [15.13 Кб]
Скачиваний: 180
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Ссылка на шейп на другой странице
СообщениеДобавлено: 26 дек 2014, 11:15 
Не в сети
Content manager
Content manager
Аватара пользователя

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

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


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

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

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

скорее всего все дело в том что у шейпов и страниц есть две сущности Name и NameU. Визио работает с NameU, а пользователи через шейпшит доступно лишь Name

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


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

Зарегистрирован: 26 дек 2014, 11:03
Сообщений: 12
Использую Visio c: 1994
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Таки Shishok был ближее к теме.

Любое решение принимается. Как добраться до NameU? В том числе и листового.


Вложения:
др стр.vsd [26.5 Кб]
Скачиваний: 223
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Ссылка на шейп на другой странице
СообщениеДобавлено: 26 дек 2014, 12:13 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5042
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
IMHO через шейп шит никак, только VBA.
даю пруф
Visio Team 27 Jul 2006 в Name and NameU писал(а):
The local name is a friendly name that is displayed in the Visio user interface. For Visio’s own content, this is a string translated for the product sku of Visio (i.e. German strings in German Visio). Users have the ability to rename Page and Master and Cell objects, and that changes the local name. Local names allow users to see things in a language that makes sense to them.

The universal name is hidden from the user interface and can only be updated through automation. This keeps a universal name consistent across product versions and user edits. A constant name allows solution developers to refer to objects by an identifier that makes sense to them. This identifier works no matter what is displayed for the local name.

Подробнее…

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


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

Зарегистрирован: 26 дек 2014, 11:03
Сообщений: 12
Использую Visio c: 1994
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Может менять ничего не надо. Достаточно выяснить это NameU и обращаться к нему, как к универсальному?

Как это сделать? ВБА - для меня препятствие :? . Кто знает, как выяснить и как (на всякий случай) заменить?

Если конечно такое обращение можно создать..


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

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

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


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

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5042
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
совсем необязательно что-то программировать самому и быть дичайшим кодером!
для твоей задачи достаточно.
1. Открыть редактрор VBA нажав Alt+F11
2. В редакторе в окне Immediate (вызывается сочетанием Ctrl+G), это окно
обычно располагается внизу окна.
если хочешь узнать универсальное имя шейпа пишешь в этом окне
Код:
?ActiveWindow.Selection(1).NameU
если хочешь изменить универсальное имя шейпа пишешь в этом окне
Код:
ActiveWindow.Selection(1).NameU = "чё тебе надо"

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


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

Зарегистрирован: 26 дек 2014, 11:03
Сообщений: 12
Использую Visio c: 1994
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Моя религия позволяет всё, есть только трудности конкретного индивидума.
За ликбез спасибо.;)

NameU и Name могут быть разными, но это имена листа а не книги! Это ничем помочь в универсальности ссылки не может.

пока вариантов не вижу.....


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

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

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


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

Зарегистрирован: 26 дек 2014, 11:03
Сообщений: 12
Использую Visio c: 1994
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Книга (документ), состоит из листов. Моя хочет ссылки между листами только (читай внутри документа).


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

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

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


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

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

Добавить очки репутацииУменьшить очки репутации
ссылка в зависимом шейпе должна быть такого вида:
Pages[Page-1]!Sheet.1!Width
или
SETATREF(Pages[Page-1]!Sheet.1!Width)
тогда связи между страницами работают. но все равно при копировании связи пропадают.
если бы мне нужны были зависимости по документу, я б использовал "Набор элементов документа", поместил бы туда основной шейп как мастер, накопировал оттуда по страницам. теперь при изменении мастера в этом наборе документа все шейпы изменятся также.

всегда, когда не можешь понять логику программы, скорее всего просто не знаешь ее. надо менять подход.


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

Зарегистрирован: 26 дек 2014, 11:03
Сообщений: 12
Использую Visio c: 1994
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
9rey - Спс

Думал об этом. НЕ додумал. Буду думать дальше.
Петляя в подходах ;))


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

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

Добавить очки репутацииУменьшить очки репутации
Цитата:
Любое решение принимается. Как добраться до NameU? В том числе и листового.

Функция PageName(0) - локальное имя страницы.
Функция PageName(750) - универсальное имя страницы.

Функция Name(0) - локальное имя шейпа.
Функция Name(750) - универсальное имя шейпа.

Не знаю, помогут ли эти сведения :roll:.

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


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

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

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


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

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5042
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
1. выделяем сначала шейп образец, потом тот что надо под него подогнать
2. открываем vba Alt+F11
3. в нем жмем Ctrl+G
4. внизу видишь окно Immediate
вставляем туды формулу
Код:
ActiveWindow.Selection(2).cells("width").formulau = "sheet." & ActiveWindow.Selection(1).ID & "!width" : ActiveWindow.Selection(2).cells("Comment").formulau = chr(34) & "pages[" & ActiveWindow.Page.NameU & "]!sheet." & ActiveWindow.Selection(1).ID & "!width" & chr(34): ActiveWindow.Selection(2).cells("eventdrop").formulau = "setf(getref(width),trim(comment))"

5. ставим курсор в конце этой длинной строки и жмем Enter
в итоге получаем то, что хотел пользователь Гоблин. в теле документа никаких макросов не остается Изображение

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


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

Зарегистрирован: 26 дек 2014, 11:03
Сообщений: 12
Использую Visio c: 1994
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Спс за уже написанное. Но Гоблин хочет ещё немного варенья: тот же код, для шейпов с разных страниц! Сам не может. Не может даже правильно спросить PageName(0) :cry:

Всех с уже (еще до 15го продержаться..) наступившим! Успехов!


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

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5042
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
та нет таки ничего прощеИзображение. если хотим сослаться на шейп с другой страницы
0. для простоты, чтоб не морочиться с лишними окнами необходимо чтоб был открыт один документ визио
1. добавляем таки еще одно окно
Изображение
2. Жмем кнопку упорядочить окна
Изображение
3. В Окне:1 открываем лист откуда собираемся считывать данные шейпа и выделяем собственно интересующий шейп.
в Окне:2 открываем лист куда мы хотим загнать необходимые данные и выделяем шейп куда данные вгоняем
Изображение
собственно на данном скриншоте мы подгоняем длину треугольника на листе 2 под размеры круга на листе Страница-1
4. Открываем окно редактора VBA клавишами Alt+F11
5. в нем жмем Ctrl+G
6. вставляем в окне Immediate вставляем формулу Windows(2).Selection(1).cells("width").FormulaU = "pages[" & Windows(1).Page.NameU & "]!sheet." & Windows(1).Selection(1).ID & "!width",
жмем ↵ Enter
7. При необходимости переноса данных для следующих фигур, повторяем пункты 3 и 6.

!
Перед сохранением файла обязательно закрыть Окно:2

PS гулять до 15 это сильно Изображение, не уверен что я таки до 12го таки доживу Изображение

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


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

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



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

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


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

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