搜索面板和过滤数据(SearchPanel)
行政2023 年 3 月 2 日约3分钟DBGridEh
可以显示一个特殊的面板来搜索和过滤网格中的数据。
在搜索模式下,网格在所有网格单元格中以不同的颜色(默认为黄色)显示搜索短语。网格还允许您过滤数据,以便屏幕仅显示包含搜索字符串的记录。中有省略号按钮“...” TDBGridEh.SearchPanel
。单击该按钮会打开一个下拉菜单,您可以在其中选择网格中的以下搜索选项:
- 搜索区域:当前列或整个网格。
- 搜索有或没有文本大小写。
- 搜索完整的单词或部分单词。如果找到的文本隐藏在单元格的边框后面,则找到的隐藏匹配项的数量会显示在单元格右上角的黄色框中。
如果网格连接到DataSet
类型的a TMemTableEh
,则通过 自动执行检测到的单元格的自动搜索SearchPanel
。找到的值显示在搜索字符串的右侧。在计算过程中,找到的中间数量显示在括号中。显示的最终金额不带括号。
要配置设置面板,使用子属性搜索和过滤属性DBGridEh.SearchPanel
。
子属性属性TDBGridEh.SearchPanel
:
property Enabled: Boolean
将属性设置Enabled
为True
以激活面板的搜索和过滤器。激活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
property OnSearchEditKeyPress
property OnSearchEditKeyUp
property OnSearchEditChange
property OnCheckCellHitSearch
property OnGetHighlightStrings
请参阅使用事件通过文件夹中的搜索面板编写高级搜索的示例:DEMOS\DBGridEh.SearchPanel
部分Demo3
。