搜索面板和过滤数据(SearchPanel)

发布时间 2023-03-26 16:47:46作者: 六十五度

搜索面板和过滤数据(SearchPanel)

行政2023 年 3 月 2 日约3分钟

DBGridEh可以显示一个特殊的面板来搜索和过滤网格中的数据。

在搜索模式下,网格在所有网格单元格中以不同的颜色(默认为黄色)显示搜索短语。网格还允许您过滤数据,以便屏幕仅显示包含搜索字符串的记录。中有省略号按钮“...” TDBGridEh.SearchPanel。单击该按钮会打开一个下拉菜单,您可以在其中选择网格中的以下搜索选项:

  • 搜索区域:当前列或整个网格。
  • 搜索有或没有文本大小写。
  • 搜索完整的单词或部分单词。如果找到的文本隐藏在单元格的边框后面,则找到的隐藏匹配项的数量会显示在单元格右上角的黄色框中。

如果网格连接到DataSet类型的a TMemTableEh,则通过 自动执行检测到的单元格的自动搜索SearchPanel。找到的值显示在搜索字符串的右侧。在计算过程中,找到的中间数量显示在括号中。显示的最终金额不带括号。

要配置设置面板,使用子属性搜索和过滤属性DBGridEh.SearchPanel

子属性属性TDBGridEh.SearchPanel

property Enabled: Boolean

将属性设置EnabledTrue以激活面板的搜索和过滤器。激活Panel静止图像并不意味着它将立即在网格中可见。面板的可见性通过属性设置PersistentShowing

property PersistentShowing: Boolean

指定搜索面板在网格中始终可见。如果PersistentShowing = False,则在按下组合键以激活通过属性 ShortCut 中的面板进行搜索后,面板变得可见。

property ShortCut: TShortCut

指定用于激活搜索面板并将焦点置于输入文本编辑器搜索栏的组合键。默认为Ctrl + F.

property Location: TSearchPanelLocationEh

搜索面板的位置。可以取以下值:

splGridTopEh- 标题上方网格顶部的搜索面板。

splHorzScrollBarExtraPanelEh- 搜索面板位于“额外栏”拇指水平滚动条中。搜索面板在此位置正常工作,“额外面板”滑块可见。

splExternal- 搜索面板在网格之外。在这种模式下,搜索面板的算法和绘图由开发者全权负责。

property FilterOnTyping: Boolean

指定网格将在您在搜索的文本编辑器面板中输入文本时过滤数据。如果FilterOnTyping = False这样,将仅通过按 «Enter» 键或单击搜索面板中的应用过滤器按钮来过滤数据。

property FilterEnabled: Boolean

指定过滤器在搜索面板中可用。如果FilterOnTyping = False,则搜索将仅适用于代码。

property OptionsPopupMenuItems: TDBGridSearchPanelOptionsMenuItemsEh

指定在单击 SearchPanel 中的“搜索选项”(“...”)按钮时出现的下拉菜单的元素列表。TDBGridSearchPanelOptionsMenuItemsEh类型可能包含以下含义

gsmuSearchScopesEh– 搜索区域。

gsmuCaseSensitiveEh– 以区分大小写的模式搜索。

gsmuWholeWordsEh– 按全词搜索。

property SearchScope: TDBGridSearchPanelScopeEh

指定搜索面板中默认运行的搜索区域 该属性可以是以下值之一: gssCurrentColumnEh – 在当前列中搜索。gssEntireGridEh – 在整个网格中搜索。

property CaseSensitive: Boolean

指定搜索的区分大小写。

property WholeWords: Boolean

指定 SearchPanel 中的搜索必须以全词模式执行。

property CellBeginsWithMode: Boolean

指定搜索结果必须从单元格的开头匹配。


SearchPanel 有一组事件来控制文本的键入、在 DBGridEh 中搜索文本以及在网格单元格中突出显示文本。TDBGridEh.SearchPanel班级活动:

property OnSearchEditKeyDown

当在 SearchPanel 的文本编辑器中按下某个键时会发生该事件。

property OnSearchEditKeyPress

在 SearchPanel 的文本编辑器中按下某个键时会发生该事件。

property OnSearchEditKeyUp

当在 SearchPanel 的文本编辑器中打开某个键时会发生该事件。

property OnSearchEditChange

该事件在 SearchPanel 的编辑器更改文本时发生。

property OnCheckCellHitSearch

该事件发生在测试条件期间——指定的网格单元是否满足搜索条件。

property OnGetHighlightStrings

当网格接收到需要突出显示网格单元格作为搜索文本的字符串列表时,会发生此事件。

请参阅使用事件通过文件夹中的搜索面板编写高级搜索的示例:DEMOS\DBGridEh.SearchPanel部分Demo3