微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在脚本中使用元素“图表属性”

如何解决在脚本中使用元素“图表属性”

我有自己的MDG,其中包含多个元素。当将它们放置在不同的图中时,我需要更改这些元素的视图。 MDG中有一种称为“用户选择的设置”的机制,我使用它来更改元素的视图(例如,通过形状脚本函数“ HasProp”)。但是出于几个原因,我需要通过脚本更改元素的图表属性。有什么办法可以在脚本中使用图属性作为元素?

解决方法

可能,但有些棘手。首先,您需要掌握存储在t_diagram中的正确图表的表数据。发出类似的SQL

SELECT StyleEx FROM t_diagram WHERE Diagram_ID = <theID>

当然<theID>必须是图的图ID。现在您可以使用一些字符串操作。这是我的测试图带来的:

排除RTF = 0; DocAll = 0; HideQuals = 0; AttPkg = 1; ShowTests = 0; ShowMaint = 0; SuppressFOC = 1; MatrixActive = 0; SwimlanesActive = 1; KanbanActive = 0; MatrixLineWidth = 1; MatrixLineClr = 0 ; MatrixLocked = 0; TConnectorNotation = UML 2.1; TExplicitNavigability = 0; AdvancedElementProps = 1; AdvancedFeatureProps = 1; AdvancedConnectorProps = 1; m_bElementClassifier = 1; ProfileData =; MDGDgm = VW VA功能3 ::用例活动; STBLDgm =; ShowNotes = 0; OPTIONS_9CEFE070 =结构= 1:; VisibleAttributeDetail = 0; ShowOpRetType = 1; SuppressBrackets = 0; SuppConnectorLabels = 0; PrintPageHeadFoot = 0; ShowAsList = 0; SuppressedCompartments =; Theme =:119; SaveTag = 79E21B13 ;;

最好是CSV。参见

OPTIONS_9CEFE070=Structure=1:;

实际编码图属性。这里只是名称为Structure的一个,其值设置为1。9CEFE070引用GUID的图表对象。当然不是直接。

因此使用以下命令查找图本身的图对象

SELECT Object_ID,ObjectStyle FROM t_diagramobjects

Object_ID用于标识后面的对象(您可以使用联接来获取所需的信息)。 ObjectStlye包含类似内容(根据我的测试)

DUID=9CEFE070;HideIcon=0;

那里有十六进制字符串。现在,您知道该一个对象已设置了图表属性。

您应该手动发出一些查询以熟悉它。

现在,要设置属性,您只需“从”图表的图表对象中找到DUID(只需使用上面的查询)即可。现在,您可以添加该OPTIONS_<duid>部分,或者如果它已经存在,则需要使用相应的字符串操作对其进行修改。最后,您需要使用

更新图表表
Repository.Execute("UPDATE t_diagram SET StyleEx = `<new string>` WHERE diagram_id = <theID>")

请注意,这是一个未记录的操作,您会得到

a)不支持,并且 b)可以轻易破坏您的整个模型 c)a)的原因。

有备份!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。