TCheckBox 按字段过滤数据集

Posted

技术标签:

【中文标题】TCheckBox 按字段过滤数据集【英文标题】:TCheckBox to filter dataset by a field 【发布时间】:2015-07-22 14:24:35 【问题描述】:

我在勾选复选框时尝试按一个字段过滤数据集,以下是我整理并认为是正确的代码,但它似乎不起作用,它带回 0 条记录。

procedure TfrmCustomers.cbClick(Sender: TObject);
if cbActive.Checked = True then
with dmod.cds do
begin
  DisableControls;
  try
    Filtered := False;
    FilterOptions := [foCaseInsensitive,foNoPartialCompare];
    Filter := ('active LIKE true');
    Filtered := True;
  finally
    EnableControls;
  end;
end;
end;

数据集中字段的名称称为“活动”,它存储“真”或“假”的字符串。

任何帮助将不胜感激。

谢谢,

【问题讨论】:

【参考方案1】:

如果'active'字段包含一个字符串,你应该写:

Filter := ('active = ''true''');

现在您正在过滤布尔值 True。 另外,为什么不为这个 Active 字段使用布尔/位字段?

【讨论】:

【参考方案2】:

像这样改变过滤线

Filter := ('active = ''true''');

【讨论】:

没有。 LIKE 速度较慢,适用于使用通配符时使用。如果您要匹配特定内容,请改用=

以上是关于TCheckBox 按字段过滤数据集的主要内容,如果未能解决你的问题,请参考以下文章

Django Queryset 按确切字符串过滤数组字段

PostgreSQL。按数组字段值的交集过滤

Django - 按 CharField 值长度过滤查询集

按年份过滤大型数据集

Dynamics 365 V9.0 多选选项集之组织服务查询数据过滤及字段赋值

在 Javascript 中有效地逐步过滤大型数据集