我无法理解它:-) 如何使用程序更改Sparx中对象(BPMN活动)的颜色(背景颜色)?
我有GUID,我可以选择对象,只是弄清楚如何更改颜色?
假设我有GUID {E595409F-CFED-4334-8DA3-F13D8A81A534}的对象,我希望背景颜色为红色。
代码是什么(在Perl,Python或visual basic中,任何人都可以)。不在Sparx脚本中。
这是代码(python)
import win32com.client
eaApp = win32com.client.Dispatch("EA.App")
#print the connection string
eaRep = eaApp.Repository
print('Connection string: ', eaRep.ConnectionString)
#select the activity based on GUID
guid = '{E595409F-CFED-4334-8DA3-F13D8A81A534}'
activity = eaRep.GetElementByGUID(guid)
print('Activity: ', activity.Name)
#Change the backgroud color to red
activity.Style = '''BCol=255;'''
activity.Update
但最后两行是错误的,因为那些是我不知道如何
答案 0 :(得分:1)
元素上的样式是图表上使用时此元素的默认外观。
在每个图表上都可以覆盖它。这些设置存储在<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="mobile-home-second-menu clearfix">
<ul class="home-second-menu clearfix">
<li class="first-menu-item">
<a href="#">Main category</a>
<ul class="submenu">
<li class="second-menu-item">
<a href="#">Subcategory</a>
</li>
</ul>
</li>
<li class="first-menu-item">
<a href="#">Main category</a>
<ul class="submenu">
<li class="second-menu-item">
<a href="#">Subcategory</a>
</li>
</ul>
</li>
</ul>
</div>
中。
假设您尝试更改默认外观,则应使用EA.DiagramObject
。
help file说明了以下内容:
无效
注意:设置元素的视觉外观。
参数:
•范围:长 - 设定修改的外观范围
的值
1 - 基础 (整个模型的默认外观)
设置外观 仅在所选图表中的元素(图表对象),请参阅设置 DiagramObject类主题中的样式
•项目:长 - 外观 要修改的功能
0 - 背景颜色
1 - 字体颜色
2 - 边框 颜色
3 - 边框宽度
•值:长 - 将外观设置为
答案 1 :(得分:1)
好的,让它运转起来。这是现在正在运行的代码。
import win32com.client
#Declare what
DiagramGUID = '{9262BA28-AE78-45ce-A060-FEC95DE4301E}'
ObjectGUI = '{6B80AB10-0104-4d42-B5BF-2EDC4EA053CC}'
ObjectColor = '''255'''
#connect to EA
eaApp = win32com.client.Dispatch("EA.App")
#get the repository
Repository = eaApp.Repository
print('Connection string: ', Repository.ConnectionString, '\n')
#get diagram using GUID
dia = Repository.GetDiagramByGUID(DiagramGUID)
print('Diagram name selected: ', dia.Name)
#Get the activity ID based on GUID
activity = Repository.GetElementByGUID(ObjectGUI)
ElementID = activity.ElementID
#get the fist object in the diagram
dia_obj = dia.DiagramObjects.GetAt(0)
#start from 0
i = 0
#now find the right diagram object based on ID
while (dia_obj.ElementID != ElementID):
i = i+1
print('i is ', i)
print('comparing ', dia_obj.ElementID, ' with ', ElementID)
dia_obj = dia.DiagramObjects.GetAt(i)
#change the style and update diagram object
dia_obj.SetStyleEx('''BCol''',ObjectColor)
dia_obj.Update()
会出现错误(如果找不到合适的物品,我需要注意。如果有更好的方法可以做我需要做的事情,请告诉我。