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

Форум по вопросам применения и программирования в Visio
Текущее время: 17 июн 2019, 02:36

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


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


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



Начать новую тему Ответить на тему  [ Сообщений: 29 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Вопрос по ссылкам
СообщениеДобавлено: 26 дек 2018, 18:39 
Не в сети
Постоянный участник

Зарегистрирован: 24 авг 2016, 22:21
Сообщений: 50
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Добрый вечер, форумчане.
Прошу помощи в очередной раз по Visio2010.
Создал шейп. В разделе Events прописал следующее
Изображение
При дропе этого шейпа создаются вполне себе нормально работающие ссылки. При даблклике происходит переход.

Необходимо, чтобы в тексте этого шейпа был прописан номер страницы, куда он ссылается.
Какую формулу нужно в текстовое поле прописать?
Заранее спасибо


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

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

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


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

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

Добавить очки репутацииУменьшить очки репутации
А точно номер нужно? Имя не годится?


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

Зарегистрирован: 24 авг 2016, 22:21
Сообщений: 50
Использую Visio c: 2013
Очков репутации: 0

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

Да. Именно PAGENUMBER()


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Вопрос по ссылкам
СообщениеДобавлено: 27 дек 2018, 08:46 
Никогда ранее не пользовался фигурами Off-Page Reference ! попробовал сейчас в Visio Online Plan 2, лично у меня надстройка OPC работает только со штатными фигурами.
Попытался добавлять своим фигурами или даже менять формулы в штатных фигурах - ничего не работает ! Глянул в ShapeSheet родной фигуры, у нее оказывается есть несколько специфических ячеек связанных с этой надстройкой.
Изображение
Одна из них явно связана со страницами. Возможно это только в моей версии так, в 2010 все попроще


Пожаловаться на это сообщение
Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Вопрос по ссылкам
СообщениеДобавлено: 27 дек 2018, 09:47 
Нашел старую статью Going Off the Page. Так что используемый в качестве индекса CMD аргумент функции явно не связан с номером страницы !


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

Зарегистрирован: 24 авг 2016, 22:21
Сообщений: 50
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Тот самый… писал(а):
Никогда ранее не пользовался фигурами Off-Page Reference ! попробовал сейчас в Visio Online Plan 2, лично у меня надстройка OPC работает только со штатными фигурами.
Попытался добавлять своим фигурами или даже менять формулы в штатных фигурах - ничего не работает ! Глянул в ShapeSheet родной фигуры, у нее оказывается есть несколько специфических ячеек связанных с этой надстройкой.
Изображение
Одна из них явно связана со страницами. Возможно это только в моей версии так, в 2010 все попроще


Я просто нарисовал прямоугольник. Скопировал формулы в ячейках EventDrop и EventDblClick из штатной фигуры "Ссылка на другую страницу" из трафаретов "Блок-схема"-"Фигуры схемы SDL". Этот прямоугольник потом в свой трафарет запихнул и оттуда уже перенес на пустой лист. Отработала формула EventDrop, открылось окошко ссылки, создал ссылку на какой-то другой лист, и вот после этого появляются в шейпах эти самые User-defined cells. Я так понимаю, что это ID "исходного" шейпа, "обратного" шейпа, и страницы, на которой расположен "обратный шейп".


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Вопрос по ссылкам
СообщениеДобавлено: 27 дек 2018, 10:53 
is308 писал(а):
Я так понимаю
наверно вы все правильно понимаете, но обратите внимание что эти ID зашифрованы в виде GUID !
И делает это шифрование надстройка OPC (Off-Page Connector add-on), поэтому без вызова окна и назначения там страницы на которой будет расположена ответная часть, ничего не выйдет прикрутить в ShapeSheet !
Изображение
А на другой странице, в фигуре ответной части вставить поле PAGENUMBER() через Ctrl+F9. То в фигуре которую вы собственно дропнули на лист, будет отображаться номер листа с ее ответной части


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

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

Добавить очки репутацииУменьшить очки репутации
Цитата:
А на другой странице, в фигуре ответной части вставить поле PAGENUMBER() через Ctrl+F9. То в фигуре которую вы собственно дропнули на лист, будет отображаться номер листа с ее ответной части

Таки дудки!
Условие не выполняется.
В ответной части должен стоять не номер своего листа, а номер листа, на который осуществляется возврат.
То есть на первом листе в ссылке должен стоять номер 2, а на втором в обратной ссылке - номер 1. Разве не так?


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Вопрос по ссылкам
СообщениеДобавлено: 27 дек 2018, 11:53 
Tumanov писал(а):
Разве не так?
если честно, я не совсем понял чего хочет добиться is308 !
по факту на обоих листах будет в этом случае светиться лишь один номер листа.
Ссылки на пару статей David J Parker (на английском), где он допиливал штатный функционал этих фигур и надстроек.
Page Grids and Off Page References
Making the Off-Page Reference Hyperlink URL Safe
немного оффтоп, но довольно интересные статьи !


Пожаловаться на это сообщение
Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Вопрос по ссылкам
СообщениеДобавлено: 27 дек 2018, 12:12 
честно говоря не понял зачем вообще нужно связываться с этой надстройкой. как вариант вполне подходит написать с ячейке

Events

EventDblClick

GOTOPAGE(SHAPETEXT(TheText))

 



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

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

Добавить очки репутацииУменьшить очки репутации
Цитата:
если честно, я не совсем понял чего хочет добиться is308 !

Скорее всего какой-то стандарт требует, чтобы на переходе стоял номер листа, куда переходят.
Если это делать макросом, то никаких проблем.
Если ставить не номер, а имя листа - никаких проблем.
Если соблюдать условие, что номер листа содержится в имени (например, Лист-22), то выделить номер из имени тоже легко.
Более того, можно даже придумать обходный маневр, который позволил бы вытащить с листа результат функции PageNumber(). С одним условием - этот результат должен находиться в какой-то ячейке. Например ThePage!User.Pagenumber. А вот тут проблема. Лист вставляется чистым. Нет на нем лишних ячеек.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Вопрос по ссылкам
СообщениеДобавлено: 27 дек 2018, 12:18 
Тот самый… писал(а):
честно говоря не понял зачем вообще нужно связываться с этой надстройкой. как вариант вполне подходит написать с ячейке
в этом случае речь идет об имени листа, а не его номере! да тут условие не выполняется
но если в документе листы имеют имена Page-XX, то можно формулу чуть изменить

Events

EventDblClick

GOTOPAGE("Page-1"&SHAPETEXT(TheText))

 



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

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

Добавить очки репутацииУменьшить очки репутации
Однако, похоже что новую ячейку удастся вставить по EventDrop. Типа
+SETF(GetRef(ThePage!User.PN),"=PageNumber()")
Сейчас уже некогда, но чуть попозже попробую доделать...
Но вообще-то, вариант несерьезный. Разве что "для тренировки ума". На самом деле такие вещи нужно делать макросом.


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

Зарегистрирован: 24 авг 2016, 22:21
Сообщений: 50
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Tumanov писал(а):
В ответной части должен стоять не номер своего листа, а номер листа, на который осуществляется возврат.
То есть на первом листе в ссылке должен стоять номер 2, а на втором в обратной ссылке - номер 1. Разве не так?

Именно так!


Последний раз редактировалось is308 27 дек 2018, 13:15, всего редактировалось 1 раз.

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

Зарегистрирован: 24 авг 2016, 22:21
Сообщений: 50
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Тот самый… писал(а):
если честно, я не совсем понял чего хочет добиться is308 !

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

Почему не макросом, а именно ShapeSheet? Мне просто так удобнее. Полученные через ShapeSheet так называемые "умные" шейпы можно перекидывать из документа в документ без каких-либо лишних действий. С макросами не так удобно.

Если форумчане, без сомнений являющиеся специалистами в Visio, не смогут помочь, то я буду через макросы решать эту задачу.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Вопрос по ссылкам
СообщениеДобавлено: 27 дек 2018, 14:28 
is308 писал(а):
Почему не макросом, а именно ShapeSheet? Мне просто так удобнее. Полученные через ShapeSheet так называемые "умные" шейпы можно перекидывать из документа в документ без каких-либо лишних действий. С макросами не так удобно.
точно также макрос можно сохранить в стенсиле с этими умными шейпами. открыли этот стенсил с любым документом и все макросы содержащиеся в данном стенсили можно будет запустить и там !

Файл образец с моим тупым решением лежит здесь
Изображение

1. В поле свойств фигуры в ручную вбиваем имя листа
2. Его порядковый номер отображается внутри фигуры
3. По двойному клику производится переход

собственно формулу смотреть в ячейках User.defined cells
Изображение


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

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

Добавить очки репутацииУменьшить очки репутации
Решение 2. Ничего не вбиваем вручную
Скорее всего можно оптимизировать, я еще посмотрю.
Тем не менее, решение на макросе будет проще и самое главное - надежнее.


Вложения:
HyperlinkOPC2.vsd [22 Кб]
Скачиваний: 6
number.gif
number.gif [ 680.33 Кб | Просмотров: 229 ]
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Вопрос по ссылкам
СообщениеДобавлено: 27 дек 2018, 15:10 
Не в сети
Постоянный участник

Зарегистрирован: 24 авг 2016, 22:21
Сообщений: 50
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Tumanov писал(а):
Решение 2. Ничего не вбиваем вручную
Скорее всего можно оптимизировать, я еще посмотрю.
Тем не менее, решение на макросе будет проще и самое главное - надежнее.

Спасибо.
Сейчас буду изучать как это все фунциклирует.
При быстром рассмотрении шейп работает, но есть моментик.
Для понимания пусть два шейпа, ссылающиеся друг на друга, называются "прямой" и "обратный".
Я дропаю мастер-шейп на стр1. В открывшемся меню выбираю ссылку на стр2. В итоге получаю в документе "прямой" и "обратный" шейпы. В них номера страниц как нужно, а именно: в "прямом" - 2, в "обратном" -1. Теперь вставляю между стр 1 и 2 одну новую страницу. Бывшая стр2 становится страницей 3. Теперь в "прямом" - 3, в "обратном" - 1. Все прекрасно.

А вот если теперь "обратный" шейп вырезать и вставить на стр.2, то в "прямом" не происходит изменения текста с 3 на 2. Наверное нужно в EventsXFMod прописать что-то.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Вопрос по ссылкам
СообщениеДобавлено: 27 дек 2018, 15:17 
Tumanov писал(а):
Решение 2. Ничего не вбиваем вручную
Волшебно ! Это решение лучше чем решение под №1 по мере поступления.
Единственный нюанс, е выполняется пожелание
is308 писал(а):
И если в этот документ понадобиться вставить еще несколько страниц между 1-ой и N-ой, то работы ручками прибавляется. А если таких "разрывов" схем много в документе, то и подавно.
в решении №1, есть косяк - если изменить нумерацию страниц, то номер листа в красном квадрате не обновится. можно влезть в свойства, изменить имя страницы добавив точку например. и снова убрать точку.
Или можно добавить секцию Actions, и в ней действие которое обновит значение в красном квадрате формулой
SETF(GetRef(Fields.Value),TRIM(User.Row_1))
Tumanov писал(а):
Тем не менее, решение на макросе будет проще и самое главное - надежнее.
100%


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

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



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

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


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

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