SPARX Enterprise Architect. Добавить примечание к диаграмме с форматированным текстом с использованием сценариев - PullRequest
1 голос
/ 07 апреля 2020

Я пытаюсь добавить примечание к диаграмме с форматированным текстом, похожим на свойства диаграммы

enter image description here

Я пытался

dgmElement.Notes = currentPackage.Elements.AddNew("","Text");

и

dgmElement.Notes = currentPackage.Elements.AddNew("", "Note");


dgmElement.Notes 
  = "Classification:" + "UNCLASSIFIED" + String.fromCharCode(13) 
  + "Model Type:    " + "SV1-SFFSESVSE SEASDEAER" + String.fromCharCode(13) 
  + "Diagram Status:" + "APPPROVED" + String.fromCharCode(13) 
  + "Date Modified: " + currentDiagram.ModifiedDate + String.fromCharCode(13) ; 

, но ни один из них не возвращает желаемый формат.

1 Ответ

2 голосов
/ 08 апреля 2020

Оба возможны. EA создает рамку заметки вокруг заметки. Текст появится без рамки.

Форматирование, как в свойствах диаграммы, может быть достигнуто путем добавления символов табуляции. Для «расширенного» форматирования, такого как полужирный текст, вам необходимо использовать операции репозитория GetFieldFromFormat и GetFormatFromField (см. Справку) для преобразования текста во внутренний формат заметок EA и обратно во него.

Это Python пример, но вы, вероятно, можете перевести его на ваш целевой язык:

dia = rep.getDiagramByGUID("{81B59BAD-B22F-4375-AA73-C489958A3D6B}")
pck = rep.getPackageByID(dia.packageID)

text = pck.elements.addNew("", "Text")
text.notes = rep.getFieldFromFormat("TXT", "a\tb\r\nc\td")
# note the \r\n for a newline. Windoze
text.update
dobj = dia.diagramObjects.addNew("l=10;r=110;t=-20;b=-80", "") # coord. on diagram
dobj.elementID = text.elementId
dobj.update
rep.reloadDiagram (dia.diagramID)

В вышеприведенном примере текст также можно было бы присвоить непосредственно text.notes, поскольку это простой случай. Тем не менее, вы также можете указать rtf или html таким образом, и txt будет отформатирован с учетом специальных символов.

...