У меня нет Visio на этом компьютере, поэтому я не могу скопировать и вставить рабочий раствор.Подход становится немного сложным, но чрезвычайно гибким.
Сохраняйте свои списки в разделе User
, а не Prop
- тогда они становятся базовыми данными для использования в свойствах.Если вы используете мастер-трафарет, это также помогает при управлении полями.
Теперь вы можете также сохранить индекс в ваших данных - этот индекс указывает на соответствующие значения в ваших массивах.Вы можете использовать Действия и боковые меню для установки индекса, который при правильной ссылке означает, что вы можете иметь полное имя и / или сокращение в боковом меню, а ShapeSheet выполняет всю работу под ним.
Функции, которые выхочу посмотреть:
Index
(например, INDEX(1,User.Type)
вернет "Beta". (На основе 0) Lookup
(например, LOOKUP("D", User.Abbrev)
вернет«3». (На основе 0) GetAtRef
SetAtRef
SetAtRefExpr
SetF
У меня была похожая бизнес-проблема, которая заключалась в установке цвета фона на основе значения данных формы. Ваше окончательное решение может в конечном итоге включать формулы, подобные этой: =SETF(GetRef(Prop.Type),"GUARD(INDEX(LOOKUP(Prop.X,Prop.X.Format),User.Type))")
.
Для получения дополнительной информации.подробное обсуждение - посмотрите https://superuser.com/questions/1277331/fillforegnd-in-shapesheet-using-wrong-data и расширенное обсуждение на http://visguy.com/vgforum/index.php?topic=8205.15 - последняя ссылка также включает файл примера с рабочими таблицами (ну, работая в той мере, в которой они раскрыли мою проблему).