上一页 下一页

创建搜索定义

 

如果要定义自己的搜索,可以使用SQL编辑器,查询生成器或加载项,通过“新搜索”对话框来完成。用户定义的搜索存储在正在使用的计算机的用户应用程序数据中,而不是存储在项目存储库中。

访问

功能区

开始>查看>搜索>模型:    或

设计>元素>编辑>搜索模型: 

键盘快捷键

Crtl + F:   或

Ctrl + Alt + A

创建新的搜索定义

字段/按钮

描述

请参阅

名称

输入搜索名称。

查询生成器

单击此单选按钮可通过内部搜索编辑器创建搜索。

SQL编辑器

单击此单选按钮可通过直接编写SQL语句来创建搜索。

(适用于高级用户。)

加载项搜索

单击此单选按钮可将搜索定义为加载项的功能。

加载项名称和方法

(如果您选择了“加载项搜索”单选按钮,则可用)

输入:

  • 加载项的名称
  • 一段时间(句号)和
  • 运行搜索时要调用的方法的名称(例如,MyAddin.RunThisMethod); 此搜索可以作为加载项的一部分导出和分发
加载项搜索

ok

单击此按钮以创建新搜索并关闭对话框。

搜索构建器面板将在工具栏下方打开。对于:

  • 加载项搜索,无需进一步操作; 单击图标以关闭搜索构建器面板
  • 在查询生成器搜索中,面板默认为“查询生成器”选项卡,您可以开始添加过滤器并构建搜索; 请参阅“ 定义和修改搜索”主题
  • 在SQL搜索中,面板默认为“查询构建器”选项卡,您可以开始为搜索创建SQL语句,如在创建SQL搜索中

Search Builder还提供了一个“ SQL Scratch Pad ”选项卡,您可以使用该选项卡在将SQL语句复制到“查询生成器”选项卡之前创建和测试它们。

“SQL Scratch Pad”上的SQL语句不附加到任何搜索,也不是从“在项目中查找”工具栏启动的任何操作的焦点。

定义和修改搜索

取消

单击此按钮可中止搜索创建并关闭对话框。

创建SQL搜索

您可以通过“查询生成器”选项卡使用SQL编辑器创建SQL语句。SQL编辑器基于通用代码编辑器,并提供从Enterprise Architect存储库结构填充的Intelli-sense自动完成列表。

要显示自动完成列表,请将光标放在命令后面,然后按Ctrl +空格键

根据用户在“搜索术语”字段中输入的搜索词,简单搜索可能是从表中查找对象,例如:

     SELECT * FROM t_object WHERE NAME ='<Search Term>'

在WHERE语句中,您还可以使用#xxx#macros作为字符串替换器,以便不同环境中的不同人员可以使用相同的搜索。这些宏都是区分大小写的。他们包括:

宏观

描述

请参阅

#作者#

从“首选项”对话框“常规”页面中的“作者”字段中获取用户名,以便可以对该用户创建的对象执行定义的搜索(可以在“首选项”对话框中手动重新设置此值) 。

#科#

获取当前所选Package的子Packages的ID,递归地工作到子Package的最低级别。例如:

  • t_object.Package_ID IN(#Branch#)

#Concat value1,value2 ......#

提供一种将两个或多个SQL术语连接成一个字符串的方法,与数据库类型无关。

#Datepart <field>,列#

提供查询Date的一部分的方法,与数据库类型无关。<field>的值可以是以下值之一:

  • DAYOFYEAR
  • 平日
  • DAYNAME

#CurentElementGUID#

获取当前所选元素的ea_guid。例如:

  • t_object.ea_guid LIKE#CurrentElementGUID#

#CurrentElementID#

获取当前所选元素的Object_ID。例如:

  • t_object.Object_ID =#CurrentElementID#

#DB = <DBNAME>#

<DBNAME>可以是以下之一:

  • MYSQL
  • 喷射
  • ACCESS2007
  • ORACLE
  • SQLSVR
  • 作为一个
  • POSTGRES
  • 火鸟

如果当前数据库类型与指定的DBNAME匹配,则仅使用两个匹配的#DB = <DBNAME>#宏之间的代码部分; 它可以用于SQL的一部分可能需要特殊处理的位置,具体取决于当前的数据库类型。例如:

     #DB = ORACLE#t_object.ModifiedDate> =(SYSDATE - INTERVAL'<Search Term>'DAY)#DB = ORACLE#

#现在#

插入当前日期加上或减去指定的小时数或天数; 默认值为天(调整日期格式以适合正在使用的数据库),如下所示:

  • t_object.ModifiedDate> = #Now <Search Term>#

例如:

  • t_object.ModifiedDate> = #Now -4d #d是天
  • t_object.ModifiedDate> = #Now -5h #h是小时
  • t_object.ModifiedDate> = #Now + 3#
  • t_object.ModifiedDate> =#Now#

#包#

获取当前所选Package的Package_ID。例如:

     t_object.Package_ID =#Package#

#用户名#

获取登录到版本控制的人员的名称。此示例来自内置搜索“My Checked Out Packages”。

  • t_package.PackageFlags LIKE'#WC#VCCFG =#WC#CheckedOutTo =#UserName ## WC#'

#WC#

获取当前数据库的相应通配符,以便可以对不同数据库上的模型执行搜索。例如:

     t_object.Name LIKE'#WC#Test#WC#'

GUID和类型

对于使用自定义SQL语句(包括文档报告和模型视图)的所有函数,语句必须返回找到的对象的guid和类型,以便系统可以在项目浏览器中搜索所选项。SELECT语句区分大小写,应按如下所示键入:

  • SELECT ea_guid AS CLASSGUID,Object_Type AS CLASSTYPE,Name FROM t_object

您可以使用别名CLASSGUID和CLASSTYPE扩展SQL搜索的可用性,以便您可以显示“属性”对话框,标记值和元素,连接器,属性或操作的图标,以及在项目浏览器中选择它们。使用这些别名字段的一些简单示例是:

  • SELECT ea_guid AS CLASSGUID,Object_Type AS CLASSTYPE,Name FROM t_object
  • SELECT ea_guid AS CLASSGUID,'Operation'AS CLASSTYPE,Name FROM t_operation
  • SELECT ea_guid AS CLASSGUID,'Attribute'AS CLASSTYPE,Name FROM t_attribute

查询连接器和图表都可以返回与对象类型的默认关联匹配的类型。对于这些表,还应返回CLASSTABLE字段以允许它们与类似的对象类型区分开来。

  • SELECT ea_guid AS CLASSGUID,Connector_Type AS CLASSTYPE,'t_connector'为CLASSTABLE,Name FROM t_connector
  • SELECT ea_guid AS CLASSGUID,Diagram_Type AS CLASSTYPE,'t_diagram'为CLASSTABLE,Name FROM t_diagram

您可以通过在搜索SELECT语句中包含其中一个元素,使搜索用户能够将搜索结果中的元素拖放到图表上:

  • (t_object.Object_ID和t_object.Object_Type)或
  • t_object。ea_guid作为CLASSGUID

当你定义的SELECT语句,点击保存按钮 “查询生成器”的工具栏保存此搜索中; 然后可以从“搜索”下拉列表中进行搜索。

SQL Scratch Pad工具栏按钮

 SQL Scratch Pad ”选项卡通过其工具栏提供少量设施。

图标

描述

单击此图标可测试您已定义的搜索。结果显示在“在项目中查找”视图的主面板中。

单击此图标可将当前SQL搜索保存为新搜索。将显示新搜索名称的提示。

单击“ 确定”按钮后,系统将切换到“查询生成器”选项卡,将SQL语句复制到选项卡,并将搜索名称放入“搜索”字段。

单击此图标可清除当前搜索定义的“ SQL Scratch Pad ”。

备注

  • 在“查询生成器”选项卡上创建自定义SQL搜索时,工具栏中唯一可用的两个图标是“ 保存”图标和“ 删除过滤器”图标  ; 删除筛选器图标实际上是删除搜索内容的删除图标(SQL语句)

学到更多