0

我有两个 Shape 的 ShapeSheet 的 Shape Data 行:

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 中的相应值。

注意:此处使用的值是我的应用程序实际值的占位符,此处未显示,因此它们不会分散我需要的真实答案,即在选择或更改第一个选项时如何保持选择同步。

谢谢你提供的所有帮助!

4

1 回答 1

3

我在这台机器上没有 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 - 后一个链接还包括一个带有工作形状表的示例文件(嗯,工作到他们暴露我的问题的程度)。

于 2018-12-30T21:54:23.557 回答