前页 后页

创建搜索定义

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

访问

色带

浏览>搜索>模型: New search icon.

设计>元素>管理>搜索模型: New search icon.

键盘快捷键

Crtl + F: New search icon.

Ctrl + Alt + A: New search icon.

创建一个新的搜索定义

字段/按钮

行动

也可以看看

名称

输入搜索名称。

查询生成器

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

SQL编辑器

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

(适用于高级用户。)

Add-In搜索

单击此单选按钮可将搜索定义为Add-In的功能。

Add-In名称和方法

(如果您选择了“ Add-In搜索”单选按钮,则可用)

输入:

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

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

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

  • Add-In搜索,无需采取进一步措施;单击Edit search.图标以关闭搜索构建器面板
  • 在查询生成器搜索中,面板默认为“查询生成器”标签,您可以开始添加过滤器并构建搜索;请参阅定义和修改搜索主题
  • 在进行SQL搜索时,面板默认为“查询生成器”标签,您可以像在创建SQL搜索中一样开始为搜索创建SQL语句。
Search Builder还提供了“ SQL Scratch Pad”选项卡,您可以使用它来创建和测试SQL语句,然后再将其复制到“ Query Builder”选项卡。

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

定义和修改搜索

取消

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

创建SQL搜索

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

要显示自动完成列表,请将光标置于命令之后,然后按Ctrl + Space。

给定用户在“搜索词”字段中输入的搜索词,简单的搜索可能是从表中找到对象,例如:

SELECT * FROM t_object WHERE NAME ='<搜索词>'

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

巨集

描述

也可以看看

#作者#

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

#科#

获取一个或多个父Package下的每个子Package的ID,递归地工作到子Package的最低级别。例如:

t_object.Package_ID IN(#Branch#)

此宏有三个排列:

  • #Branch#-获取用户选择的父包的每个子包的ID
  • #Branch = <GUID>#或#Branch = <ID>#-获取由GUID或ID指定的父包的每个子包的ID
  • #Branch = <ID>,<ID>,<ID>#-获取其ID指定的每个父Package下的每个子Package的ID

#Concat <值1>,<值2>,...#

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

#Datepart <字段>,<列>#

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

  • 每年的一天
  • 平日
  • 日名

#CurentElementGUID#

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

t_object.ea_guid =#CurrentElementGUID#

#CurrentElementID#

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

t_object.Object_ID =#CurrentElementID#

#DB = <DBNAME>#

DBNAME可以是以下之一:

  • MySQL数据库
  • 喷射
  • 访问2007
  • ORACLE
  • SQLSVR
  • 作为一个
  • 邮编
  • 火鸟
如果当前数据库类型与指定的DBNAME匹配,则仅在两个匹配的#DB = <DBNAME>#宏之间使用代码段。它可以用于SQL的某个部分可能需要特殊处理(取决于当前数据库类型)的地方。例如:

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

#左<field>,<count>#

从字符串的开头开始,从字段返回“计数”个字符。

#现在#

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

  • t_object.ModifiedDate> =#现在<搜索词>#
例如:
  • t_object.ModifiedDate> = #Now -4d#d是天
  • t_object.ModifiedDate> = #Now -5h#h是小时
  • t_object.ModifiedDate> =#现在+ 3#默认为天
  • t_object.ModifiedDate> =#现在#

#包#

获取当前选定包的Package_ID。例如:

t_object.Package_ID =#包装#

#右<field>,<count>#

返回该字段的最后一个“计数”个字符。

#Substring <字段>,<开始>#

返回以“开始”字符(从1开始)开始的字段的其余部分

#Substring <字段>,<开始>,<计数>#

返回从字符“ start”(从1开始)开始的字段的“ count”个字符。

#用户名#

获取登录到版本控制的人员的姓名。本示例来自内置搜索“我已签出的包裹”。

  • t_package.PackageFlags喜欢'#WC#VCCFG =#WC#CheckedOutTo =#UserName ## WC#'

#厕所#

获取当前数据库的适当通配符,因此可以在不同数据库上的模型上执行搜索。例如:

t_object.Name像'#WC#Test#WC#'

GUID和类型

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

  • SELECT ea_guid AS CLASSGUID,Object_Type AS CLASSTYPE,名称来自t_object
您可以使用别名CLASSGUID和CLASSTYPE扩展SQL搜索的可用性,以便可以显示“属性”对话框,元素,连接器,属性或操作的标记值和图标,以及在“浏览器”窗口中选择它们。使用这些别名字段的一些简单示例如下:
  • SELECT ea_guid AS CLASSGUID,Object_Type AS CLASSTYPE,名称来自t_object
  • SELECT ea_guid AS CLASSGUID,“ Operation” AS CLASSTYPE,名称来自t_operation
  • 选择ea_guid AS CLASSGUID,“属性” AS CLASSTYPE,名称来自t_attribute
连接器和图的查询都可以返回与默认关联关系与对象类型匹配的类型。对于这些表,还应该返回CLASSTABLE字段,以使它们与相似的对象类型区分开。
  • SELECT ea_guid AS CLASSGUID,Connector_Type AS CLASSTYPE,“ t_connector”作为CLASSTABLE,名称FROM t_connector
  • 选择ea_guid AS CLASSGUID,Diagram_Type AS CLASSTYPE,'t_diagram'作为CLASSTABLE,名称FROM t_diagram
通过在搜索SELECT语句中包含以下元素之一,可以使搜索用户将搜索结果中的元素拖放到图上:
  • (t_object.Object_ID和t_object.Object_Type)或
  • t_object。 ea_guid AS CLASSGUID
定义SELECT语句后,单击“查询生成器”工具栏中的“保存”按钮以保存此搜索;然后可以从“搜索”下拉列表中进行搜索。

SQL Scratch Pad工具栏按钮

“ SQL Scratch Pad”选项卡通过其工具栏提供了少量功能。

图标

描述

Start test.

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

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

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

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

笔记

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

学到更多