如何解决在脚本中使用元素“图表属性”
我有自己的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 举报,一经查实,本站将立刻删除。