如何在 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" 或我的插件名称。
这是我目前尝试的方法:
- 我导出了我的搜索定义并查看了结果 XML 但我找不到与组名的任何关系。
- 当我通过
repository.AddDefinedSearches()
添加搜索时,定义的搜索将出现在自定义组中,其名称与已注册的加载项相同。
有没有办法拥有多个自定义组(无需注册多个插件)?
在 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
。
我想知道如何在 Enterprise Architect 中创建自定义搜索定义并将它们放在多个自定义组中,而不是 "My Searches" 或我的插件名称。
这是我目前尝试的方法:
- 我导出了我的搜索定义并查看了结果 XML 但我找不到与组名的任何关系。
- 当我通过
repository.AddDefinedSearches()
添加搜索时,定义的搜索将出现在自定义组中,其名称与已注册的加载项相同。
有没有办法拥有多个自定义组(无需注册多个插件)?
在 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
。