我想以編程方式向Enterprise Architect圖中的連接器添加註釋。 到目前爲止,我只設法增加註釋元素與下面的代碼:Enterprise Architect 9:向連接器添加註釋
foreach (EA.Element element in Package.Elements)
{
foreach (EA.Connector conn in element.Connectors)
{
EA.Element newNote = Package.Elements.AddNew("MyNote", "Note");
newNote.Notes = "Some string";
newNote.Update();
//position calculation is left out here
EA.DiagramObject k = diagram.DiagramObjects.AddNew(position, "");
k.ElementID = newNote.ElementID;
k.Sequence = 9;
k.Update();
EA.Connector newConn = newNote.Connectors.AddNew("NewLink", "NoteLink");
newConn.SupplierID = conn.SupplierID;
newConn.Update();
EA.DiagramLink newLink = diagram.DiagramLinks.AddNew("newLink", "NoteLink");
newLink.ConnectorID = newConn.ConnectorID;
newLink.Update();
圖像可能使得它更清楚其實我是想:
http://www.directupload.net/file/d/3536/6bkijpg2_png.htm
我的問題是:如何做我得到附在連接器上的筆記?我假設我必須更改此行「newConn.SupplierID = conn.SupplierID;」,但「newConn.SupplierID = conn.ConnectorID」會導致異常。 如果有人能幫助我,我會很開心!
此致敬禮
非常感謝您的解釋!它有助於我理解筆記與連接器的連接。 現在我運行另一個問題: newNote.MiscData(3)=「idref =」+ conn.ConnectorID +「;」; 不起作用,因爲MiscData不是一種方法。而newNote.MiscData [3]是隻讀的。如何正確設置該值? – user3318587
我發現了這個問題的解決方案:我們必須通過SQL來設置PDATA4,這對應於API中的MiscData [3]。 (參考:https://leanpub.com/InsideEA/read)。 (「UPDATE t_object SET PDATA4 = \」idref1 =「+ conn.ConnectorID +」; \「WHERE Object_ID =」+ newNote.ElementID);這個行可以完成這個任務:Repository.Execute(「UPDATE t_object SET PDATA4 = \」idref1 =「+ conn.ConnectorID +」; \「WHERE Object_ID =」+ newNote.ElementID); 之後,需要更新圖表以使SQL語句的效果可見。 – user3318587
您需要直接操作底層數據庫表。我已經相應地更新了代碼示例。 – Uffe