Visio ShapeSheet ShapeData: синхронизируйте две строки
У меня есть две строки данных Shape для ShapeSheet Shape:
Shape Data Label Prompt Type Format Value Invisible
Prop.Type "Type" "" 4 "Alpha;Beta;Gamma;Delta;Epsilon;Zeta;Eta;Theta;Iota;Kappa" INDEX(4,Prop.Type.Format) False
Prop.Abbrev "Abbrev" No Formula 4 "A;B;G;D;E;Z;E;T;I;K" INDEX(4,Prop.Abbrev.Format) True
Я намерен использовать это, чтобы пользователь выбрал тип, скажем, Epsilon, и затем Abbrev автоматически переключился на соответствующее значение в Prop.Abbrev.Format.
Примечание. Используемые здесь значения являются местозаполнителями для фактических значений для моего приложения, которые здесь не показаны, поэтому они не отвлекают от реального ответа, который мне нужен, как синхронизировать выборки, когда первый выбран или изменен.
Спасибо за любую помощь, вы можете дать!
1 ответ
У меня нет Visio на этом компьютере, поэтому я не могу скопировать и вставить работающее решение. Подход становится немного сложным, но чрезвычайно гибким.
Сохраните свои списки в User
раздел, а не Prop
- это становится базовыми данными для использования в свойствах. Если вы используете мастер-трафарет, это также помогает в управлении полями.
Теперь вы можете также сохранить индекс в ваших данных - этот индекс указывает на соответствующие значения в ваших массивах. Вы можете использовать Действия и боковые меню для установки индекса, который при правильной ссылке означает, что у вас может быть полное имя и / или сокращение в боковом меню, а ShapeSheet выполняет всю работу под ним.
Функции, которые вы хотите посмотреть:
Index
(напримерINDEX(1,User.Type)
вернется "Бета". (От 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 - последняя ссылка также включает в себя файл примера с рабочими таблицами форм (ну, работая в той степени, в которой они раскрыли мою проблему).