我试图通过VBScript在我的模型中的所有图表中找到一个元素(在Enterprise Architect中)。 该操作需要哪个命令? 如何查找元素的所有相关链接?
答案 0 :(得分:1)
最好的方法是使用SQL查询获取所有图表的列表。 使用像
这样的东西select distinct d.diagram_ID from t_diagramobjects d
where d.Object_ID = [insert element id here]
将此查询与Repository.SQLQuery()
一起使用,以获取xml格式的所有DiagramID列表。
为了从结果中获取数据,您必须使用与此类似的函数:
Public Function convertQueryResultToArray(xmlQueryResult)
Dim arrayCreated
Dim i
i = 0
Dim j
j = 0
Dim result()
Dim xDoc
Set xDoc = CreateObject( "MSXML2.DOMDocument" )
'load the resultset in the xml document
If xDoc.LoadXML(xmlQueryResult) Then
'select the rows
Dim rowList
Set rowList = xDoc.SelectNodes("//Row")
Dim rowNode
Dim fieldNode
arrayCreated = False
'loop rows and find fields
For Each rowNode In rowList
j = 0
If (rowNode.HasChildNodes) Then
'redim array (only once)
If Not arrayCreated Then
ReDim result(rowList.Length, rowNode.ChildNodes.Length)
arrayCreated = True
End If
For Each fieldNode In rowNode.ChildNodes
'write f
result(i, j) = fieldNode.Text
j = j + 1
Next
End If
i = i + 1
Next
end if
convertQueryResultToArray = result
End Function
获得图表ID后,您可以使用Repository.GetDiagramByID()
获取实际图表。
在模型中循环所有图表的原始方法将无可救药地缓慢,即使对于小型模型也是如此。