首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在脚本中使用元素“关系图属性”

在脚本中使用元素“关系图属性”
EN

Stack Overflow用户
提问于 2020-10-21 20:49:22
回答 1查看 139关注 0票数 1

我有自己的千年发展目标,包括几个要素。当这些元素放置在不同的图表时,我需要改变它的视图。千年发展目标中有一种名为“用户选择的设置”的机制,我使用它来改变元素的视图(例如,通过形状脚本函数"HasProp“)。但出于几个原因,我需要通过脚本更改元素的图表属性。是否有任何方法处理脚本中元素的关系图属性?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-21 21:27:22

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

代码语言:javascript
复制
SELECT StyleEx FROM t_diagram WHERE Diagram_ID = <theID>

当然,<theID>必须是图的图id。现在您可以使用一些字符串操作。下面是我的测试图带来的内容:

ExcludeRTF=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::用例activity;STBLDgm=;ShowNotes=0;OPTIONS_9CEFE070=Structure=1:;VisibleAttributeDetail=0;ShowOpRetType=1;SuppressBrackets=0;SuppConnectorLabels=0;PrintPageHeadFoot=0;ShowAsList=0;SuppressedCompartments=;Theme=:119;SaveTag=79E21B13;;

这是它最好的CSV。请参阅

代码语言:javascript
复制
OPTIONS_9CEFE070=Structure=1:;

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

因此,使用

代码语言:javascript
复制
SELECT Object_ID, ObjectStyle FROM t_diagramobjects

Object_ID用于标识背后的对象(您可以使用一个连接来获取所需的信息)。ObjectStlye包含的内容类似于(从我的测试)

代码语言:javascript
复制
DUID=9CEFE070;HideIcon=0;

还有那根六角线。现在您知道这个对象有一个图表属性集。

您应该手动发出一些查询来熟悉这一点。

现在,要设置一个属性,您必须从关系图的图对象中找到DUID (只需使用上面的查询)。现在您可以添加这个OPTIONS_<duid>部件,或者如果它已经存在,您需要根据字符串操作来修改它。最后,您需要用

代码语言:javascript
复制
Repository.Execute("UPDATE t_diagram SET StyleEx = `<new string>` WHERE diagram_id = <theID>")

请注意,这是一个无文档的操作,您将得到

( a)没有支撑和( b)可以轻易地打击你的整个模型,这是( c)的原因))。

有后援!

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64471543

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档