Visio ShapeSheet ShapeData: синхронизируйте две строки - PullRequest
0 голосов
/ 30 декабря 2018

У меня есть две строки Shape Data для 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 Ответ

0 голосов
/ 31 декабря 2018

У меня нет 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 - последняя ссылка также включает файл примера с рабочими таблицами (ну, работая в той мере, в которой они раскрыли мою проблему).

...