如何在 Sparx Enterprise Architect 中的 "Find in Project" 内创建多个自定义搜索组

How do I create multiple custom search groups inside "Find in Project" in Sparx Enterprise Architect

我想知道如何在 Enterprise Architect 中创建自定义搜索定义并将它们放在多个自定义组中,而不是 "My Searches" 或我的插件名称。

这是我目前尝试的方法:

有没有办法拥有多个自定义组(无需注册多个插件)?

在 Sparx 文档中我找不到任何提示。感谢您的帮助和回复。

您可以使用创建 MDG 技术 向导将您的搜索添加到 MDG。

如果您导入该 MDG,这些搜索将显示在其正确的组中,并带有 MDG 的名称。

@geert-bellekens 的回答绝对有效。然而,我找到了另一种方法来实现相同的目标(这对我的插件设置来说稍微容易一些)。

SQL 搜索查询的预期结构定义如下:

<?xml version="1.0" encoding="UTF-8"?>
<RootSearch>
  <Search Name="{0}" GUID="{1}" PkgGUID="-1" Type="0" LnksToObj="0" CustomSearch="1" 
    AddinAndMethodName="{3}">
    <SrchOn>
      <RootTable Filter="{2}" Type="-1">
        <TableName Display="Custom SQL Search" Name="" />
        <TableHierarchy Display="" Hierarchy="" />
      </RootTable>
    </SrchOn>
    <LnksTo />
  </Search>
</RootSearch>

属性 AddInMethodName 实际上用作 组名 ,搜索将出现在该组名下(并且不必与定义的加载项名称相关)。

所以我们可以定义不同组名的查询如下:

var displayName = // arbitrary search display name;
var sql = "SELECT * FROM t_object"; // arbitrary SQL search string;
var guid = "{11111111-2222-3333-4444-555555555555}" // any guid;
var groupName = // arbitrary group name (without dot)
var addInSearchName = groupName + "." + displayName;

var xml = string.Format(TEMPLATE_SQL_SEARCH, displayName, guid, sql, addInSearchName);

repository.AddDefinedSearches(xml);

结果可能如下所示(组名称 SMVSQL 与实际的 AddIn 名称无关):

对我来说,这种方法更简单,因为我在 resource.resx 中定义了几个 SQL 查询语句,并希望在 AddIn 启动时动态加载它们。创建和使用 MDG Technology 文件似乎需要更多工作(尽管这也可以即时创建)。 注意:这不适用于 AddIn Searches,其中 AddInMethodName 必须在 AddIn 的程序集中解析为 Type.FullName