Visio ShapeSheet ShapeData: синхронизация двух строк

У меня есть две строки данных формы для ShapeSheet фигуры:

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, а затем автоматически переключал аббревиатуру на соответствующее значение в Prop.Abbrev.Format.

Примечание. Используемые здесь значения являются заполнителями для фактических значений для моего приложения, которые здесь не показаны, поэтому они не отвлекают от реального ответа, который мне нужен, как синхронизировать выборки при выборе или изменении первого.

Спасибо за любую помощь, которую вы можете дать!


person Chelmite    schedule 30.12.2018    source источник


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

person AJD    schedule 30.12.2018