如何导出EAUML::table默认形状脚本并适配自定义构造型需求?
解决方案:导出EAUML默认形状脚本适配自定义构造型
核心做法
不用从零重写形状脚本,EA支持导出内置构造型的默认形状定义,你只需要在原脚本基础上修改,就能添加自定义标记值的显示逻辑。
具体操作步骤
导出默认形状脚本
- 打开EA,点击顶部菜单栏的
Settings->UML Types - 在弹出窗口切换到
Stereotypes标签页,找到EAUML::table构造型 - 点击窗口底部的
Export按钮,选择存储路径,将默认形状脚本保存为.vbs文件(EA的形状脚本基于VBScript)
- 打开EA,点击顶部菜单栏的
修改脚本添加自定义标记值显示
- 用文本编辑器打开导出的
.vbs文件,找到负责绘制元素属性、标记值的代码段 - 添加自定义标记值的绘制逻辑,比如针对
myProfile::table的「上游表」标记值:' 绘制自定义标记值:上游表 If Repository.GetElementByID(ElementID).Stereotype = "myProfile::table" Then Dim upstreamTag Set upstreamTag = Repository.GetElementByID(ElementID).TaggedValues.GetByName("上游表") If Not upstreamTag Is Nothing Then DrawText 10, 100, "上游表: " & upstreamTag.Value, 0, 0, 0 End If End If - 同理添加
myProfile::column的「列状态」标记值显示逻辑,注意要遍历表的属性(列)逐个处理
- 用文本编辑器打开导出的
导入修改后的脚本关联自定义构造型
- 回到
UML Types的Stereotypes标签页,找到你创建的myProfile::table构造型 - 点击
Import按钮,选择修改后的.vbs文件 - 确认构造型的形状脚本更新后,保存设置并重启EA生效
- 回到
注意点
- 导出脚本时务必选中EAUML::table的默认脚本,避免选错其他构造型的脚本
- 修改脚本时注意VBScript语法规范,比如先判断标记值是否存在,调整绘制坐标避免内容重叠
- 处理列的标记值时,需要在表的形状脚本中遍历元素的属性集合,逐个检查属性的构造型再绘制对应标记值
内容的提问来源于stack exchange,提问作者dmeu
相关产品推荐
相关产品推荐

