All Forums
 Категория Visio
 Форум Вопросы и ответы
 ShapeSheet
Author Previous Topic Topic Next Topic  

Michael

49 Posts

Posted - 09/28/2003 :  08:18:32
Необходимо сделать в одном стенсиле несколько заготовок (автопозиционируемая рамка) которые различаются одним-двумя параметрами (допустим заливка, толщина линий). Можно ли в невидимый слой поместить несколько образцов, пронумеровав их 1-n, а затем в соответствии со значением кастом_пропертис выбрать соответствующий порядковый номер из другого списка?
Более конкретно: есть 7 вариантов заливок, но номерация их паттернов идет не подряд 28-30, 36-39. Можно ли значение кастом_пропертис использовать как номер скратч-ячейки? Или, если нельзя, как сделать по-другому (желательно без VBA)?

Tumanov

Russia
1198 Posts

Posted - 09/28/2003 :  13:17:26
Не очень понял проблему, но все равно отвечаю :)
Пример:
Берем прямоугольник и делаем ему одно Custom Properties со значениями:
- Label - MyPattern
- Type - Fixed List
- Format - 1;2;12;22
- Value - 2
А в ячейку Fill Pattern загоняем вложенный If типа =IF(Prop.Row_1=1;2;IF(Prop.Row_1=2;3;IF(Prop.Row_1=12;4;8)))
Расшифровка:
Если пользовательское свойство = 1, назначить Pattern = 2, Иначе следующий If
Если пользовательское свойство = 2, назначить Pattern = 3, Иначе следующий If
Если пользовательское свойство = 12, назначить Pattern = 4, Иначе назанчить Pattern = 8
То есть значения одного списка перекодируются в значения другого списка. В Custom Properties выбираются значения из 1, 2, 12, 22, а Pattern получается соответственно 2, 3, 4, 8.
Go to Top of Page

Michael

49 Posts

Posted - 09/28/2003 :  13:27:22
спасибо за ответ господину Туманову,
так я и делал, однако такая система условий хороша для небольшого количества элементов в списке :-), меня интересует более общий подход, можно ли элемент списка 1,2,3,...,n (fixed type в custom properties) использовать как параметр ссылки, например на строку user.row_n.
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 09/28/2003 :  16:43:47
:) Элементарно!

Делаем Format попроще - 1;2;3;4
Именуем 4 ячейки в User тоже 1, 2, 3, 4 - Это не обязательно, просто ссылаться на User.1 проще, чем на User.row_1.
В User прописываем, например, str1, str2, str3, str4.
А в Scratch всовываем вообще страшную штуку - =GUARD(SETF(GetRef(Fields.Value);"=User."&Prop.Row_1))

Теперь, выбирая значения Custom Properties, мы видим, как в текстовом поле шейпа появляется текст str1, str2 и т.д., который записан в разных ячейках User.

Go to Top of Page

Michael

49 Posts

Posted - 09/28/2003 :  17:30:28
Чистая эстетика :)
Чего я и добивался, так что, в очередной раз, вам большое спасибо!
Go to Top of Page
  Previous Topic Topic Next Topic  
Данный сайт является архивом форума visio.artberg.ru, который был закрыт в связи с переходом на новую платформу visio.getbb.ru
Все материалы доступны только для чтения! Если у вас появились вопросы, или вы хотите что-то обсудить, связанное с Visio, обращайтесь на новый форум!
Архив был создан благодаря совместным усилиям Генадия Туманова @Tumanov (visio.artberg.ru), Александра ака @Surrogate (visio.getbb.ru), и Николая Белых @nbelyh (unmanagedvisio.com)