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

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

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


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


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

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



Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: Изменение цвета линии через таблицу данных.
СообщениеДобавлено: 26 окт 2015, 06:26 
Не в сети
Новичок

Зарегистрирован: 13 авг 2012, 04:15
Сообщений: 20
Очков репутации: 5

Добавить очки репутацииУменьшить очки репутации
Необходимо изменять цвет линий через таблицу данных.

В разделе «Данные фигуры», задал постоянный список: Prop.Row_1.Format = "Цвет 1;Цвет 2;Цвет 3;Цвет 4;Цвет 5"

В разделе Пользовательские ячейки список цветов: User.Row_1 = "RGB(205,138,255);RGB(255,100,30);RGB(160,32,240);RGB(181,181,0);RGB(170,150,0)"

и формулу для передачи цвета в ячейку LineColor: User.Row_2 = SETF(GetRef(LineColor),INDEX(LOOKUP(Prop.Row_1,Prop.Row_1.Format),User.Row_1))

В версиях Visio 2010 и старше данная схема работает,
В версии Visio 2007, работать не хочет.

Что можно сделать, чтобы и в Visio 2007 работала.


Вложения:
.vsd [13 Кб]
Скачиваний: 251
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Изменение цвета линии через таблицу данных.
СообщениеДобавлено: 26 окт 2015, 11:34 
Не в сети
Content manager
Content manager
Аватара пользователя

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

Попробовал на визио 2003. Так же не работает.
Setf ничего не пишет в нужную ячейку, если прописать в ячейку LineColor
LineColor
INDEX(LOOKUP(Prop.Row_1,Prop.Row_1.Format),User.Row_1)
значение в этой ячейке всегда 0
даже если в ячейку LineColor тупо прописать значение
LineColor
RGB(205,138,255)
то визуально цвет линии не меняется Изображение

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


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

Зарегистрирован: 13 авг 2012, 04:15
Сообщений: 20
Очков репутации: 5

Добавить очки репутацииУменьшить очки репутации
LineColor = RGB(205,138,255) в Visio 2007 свет линии меняет.
LineColor = IF(LOOKUP(Prop.Row_1,Prop.Row_1.Format)=0,RGB(205,138,255),IF(LOOKUP(Prop.Row_1,Prop.Row_1.Format)=2,RGB(255,100,30),RGB(160,32,240))) - то-же работает.
Но почему не работает функция SETF для LineColor или формула INDEX(LOOKUP(Prop.Row_1,Prop.Row_1.Format),User.Row_1), никак не пойму :wall:


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

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
странно! INDEX и LOOKUP в списке функций появившихся еще до визио 2003 есть
John Goldsmith" в статье Visio ShapeSheet Functions by Version писал(а):
This document is designed as a quick reference for understanding which Visio ShapeSheet functions can be used in which versions. The functions are split into the current 2013 release, followed by 2010, 2007, 2003 and finally all functions that appeared in versions prior to 2003.
The data for this document is collated from the online and downloadable Visio SDK with cross-references to each year’s “What’s New” sections. If you find any discrepancies, please let me know at http://visualsignals.typepad.co.uk/visl ... rsion.html
в строке user.row_33 это работает
user.row_33
INDEX(LOOKUP(Prop.Row_1,Prop.Row_1.Format),User.Row_1)

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Изменение цвета линии через таблицу данных.
СообщениеДобавлено: 11 фев 2019, 01:57 
Работаю в Visio 2016
Также столкнулся с проблемой изменения цвета в зависимости от значения свойств.

Конечно, можно решить так, и оно будет работать:
Цитата:
LineColor = IF(LOOKUP(Prop.Row_1,Prop.Row_1.Format)=0,RGB(205,138,255),IF(LOOKUP(Prop.Row_1,Prop.Row_1.Format)=2,RGB(255,100,30),RGB(160,32,240)))


Но хочется как-то поудобнее, через некий внутренний массив данных от INDEX'а:
Но формулу INDEX(LOOKUP(Prop.Raw,Prop.Raw.Format),"RGB(255,50,50);RGB(100,100,100)") программа не понимает. Я так полагаю, что Visio читает список индекса как ряд текстовых значений, а не как самостоятельные формулы внутри массива.

Игрался с синтаксисом (доходило даже до "=RGB(255,50,50);=RGB(100,100,100)"), но ничего не выходит.

В тщетных попытках, пришел к забавному извращению:
1. Добавил User.RED и User.GREY со значениями: RGB(255,50,50) и RGB(100,100,100)
2. Вписал массив ссылками: INDEX(LOOKUP(Prop.Raw,Prop.Raw.Format),"User.RED;User.GREY")

Честно, я не понимаю логику программы, но оно заработало.

Конечно, оно так не должно быть. Это, как минимум, не красиво.
Считаю тему не закрытой.


Пожаловаться на это сообщение
Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Изменение цвета линии через таблицу данных.
СообщениеДобавлено: 11 фев 2019, 02:30 
Не в сети
Content manager
Content manager
Аватара пользователя

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

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Изменение цвета линии через таблицу данных.
СообщениеДобавлено: 11 фев 2019, 04:38 
Не в сети
Ветеран
Аватара пользователя

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

Добавить очки репутацииУменьшить очки репутации
А теория насчет языка системы не помогает?
То есть, в английском языке, разделитель списка - "," (запятая), а в русском - ";" (точка с запятой)

Возможно, разные версии Visio по-разному это обрабатывают.
То есть, если попробовать заменить
"INDEX(LOOKUP(Prop.Raw,Prop.Raw.Format),"RGB(255,50,50);RGB(100,100,100)")"
на
"INDEX(LOOKUP(Prop.Raw,Prop.Raw.Format),"RGB(255,50,50),RGB(100,100,100)")" <<<< запятая !!

то может заработает?

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Изменение цвета линии через таблицу данных.
СообщениеДобавлено: 11 фев 2019, 13:05 
Не в сети
Administrator

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

Добавить очки репутацииУменьшить очки репутации
То есть в формат можно ставить хоть звездочку, лишь бы потом вовремя заменить ее на ListSeparator :)
Код:
.Format ="RGB(205*138*255);RGB(255*100*30);RGB(160*32*240);RGB(181*181*0);RGB(170*150*0)"
LineColor = SUBSTITUTE(INDEX(Prop.Row_2.Prompt,Prop.Row_1.Format),"*",LISTSEP())


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

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



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

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


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

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