Enterprise Architect 的工件注释中未显示新行
New line not displayed in Artifact notes of Enterprise Architect
我正在 Enterprise Architect 中编写 VBA 脚本,我试图从 excel 自动创建元素(工件类型)。
我的目标是逐行阅读 excel 并根据 excel 列中的名称创建元素并添加我可以从另一列获得的注释。我实现了以下代码。
'objExcel is an Excel application object
For i = 2 To rowCount
id = objExcel.Cells(i,1).Value
notes = objExcel.Cells(i,2).Value
set element = elements.AddNew( id, "Artifact")
'notes = Replace(notes, "\n", "\r\n")
'notes = Replace(notes, Chr(13) + Chr(10), "\r\n")
notes = Replace(notes, vbNewLine, "\r\n")
element.Update()
Next
现在的问题是,注释里面的描述没有显示新行,而是显示为单行。 Whosebug 中也有类似的问题,但该解决方案也不起作用。
ele.Notes = "111" + "\n" + "222\r\n333"";
ele.Update();
我也尝试了上面的代码,但问题仍然存在,它在 EAP.Is 中显示为 111\n222\r\n333 有解决办法吗?
您需要使用
转换笔记的文本
formatted = Repository.GetFieldFromFormat (string Format, string Text)
将值文本从格式“HTML”、“RTF”或“TXT”转换为 Enterprise Architect 的内部格式。如果你只是在 x1F 以上和 x80 以下使用纯 ASCII,你可以跳过它。
例如你使用它就像
element.Notes =
Repository.GetFieldFromFormat ("HTML", "<ol><li>one<li>two<ol>");
if (!element.Update ()) print "Update failed";
反之亦然
html = GetFormatFromField(("HTML", element.Notes)
将从元素的注释 属性 中 return 一个 HTML 字符串。
如果您通过 Alt + Enter,[=27 在 Excel 单元格中插入一些带有额外换行符的文本=]
这些存储为 CHR(10)
(与 VBA 中的 vbLf
相同)。
许多基于 Windows 的文本格式使用 "line feed" 和 "carriage return" 的组合(CHR(10)
和 CHR(13)
,相当于 vbCrLf
).
所以请尝试:
notes = Replace(notes, vbLf, vbCrLf)
有关 Windows 和 MacOS 之间的更多选择和差异,请参阅 here。
我正在 Enterprise Architect 中编写 VBA 脚本,我试图从 excel 自动创建元素(工件类型)。
我的目标是逐行阅读 excel 并根据 excel 列中的名称创建元素并添加我可以从另一列获得的注释。我实现了以下代码。
'objExcel is an Excel application object
For i = 2 To rowCount
id = objExcel.Cells(i,1).Value
notes = objExcel.Cells(i,2).Value
set element = elements.AddNew( id, "Artifact")
'notes = Replace(notes, "\n", "\r\n")
'notes = Replace(notes, Chr(13) + Chr(10), "\r\n")
notes = Replace(notes, vbNewLine, "\r\n")
element.Update()
Next
现在的问题是,注释里面的描述没有显示新行,而是显示为单行。 Whosebug 中也有类似的问题,但该解决方案也不起作用。
ele.Notes = "111" + "\n" + "222\r\n333"";
ele.Update();
我也尝试了上面的代码,但问题仍然存在,它在 EAP.Is 中显示为 111\n222\r\n333 有解决办法吗?
您需要使用
转换笔记的文本formatted = Repository.GetFieldFromFormat (string Format, string Text)
将值文本从格式“HTML”、“RTF”或“TXT”转换为 Enterprise Architect 的内部格式。如果你只是在 x1F 以上和 x80 以下使用纯 ASCII,你可以跳过它。
例如你使用它就像
element.Notes =
Repository.GetFieldFromFormat ("HTML", "<ol><li>one<li>two<ol>");
if (!element.Update ()) print "Update failed";
反之亦然
html = GetFormatFromField(("HTML", element.Notes)
将从元素的注释 属性 中 return 一个 HTML 字符串。
如果您通过 Alt + Enter,[=27 在 Excel 单元格中插入一些带有额外换行符的文本=]
这些存储为 CHR(10)
(与 VBA 中的 vbLf
相同)。
许多基于 Windows 的文本格式使用 "line feed" 和 "carriage return" 的组合(CHR(10)
和 CHR(13)
,相当于 vbCrLf
).
所以请尝试:
notes = Replace(notes, vbLf, vbCrLf)
有关 Windows 和 MacOS 之间的更多选择和差异,请参阅 here。