TCheckBox 按字段过滤数据集
TCheckBox to filter dataset by a field
我在勾选复选框时尝试按一个字段过滤数据集,以下是我整理的代码,我认为是正确的,但它似乎不起作用,它带回了 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;
数据集中字段的名称称为 'active',它存储 'true' 或 'false' 的字符串。
如有任何帮助,我们将不胜感激。
谢谢,
如果字段 'active' 包含一个字符串,您应该这样写:
Filter := ('active = ''true''');
现在您正在过滤布尔值 True。
另外,为什么不为这个 Active 字段使用布尔/位字段?
像这样更改过滤器行
Filter := ('active = ''true''');
我在勾选复选框时尝试按一个字段过滤数据集,以下是我整理的代码,我认为是正确的,但它似乎不起作用,它带回了 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;
数据集中字段的名称称为 'active',它存储 'true' 或 'false' 的字符串。
如有任何帮助,我们将不胜感激。
谢谢,
如果字段 'active' 包含一个字符串,您应该这样写:
Filter := ('active = ''true''');
现在您正在过滤布尔值 True。 另外,为什么不为这个 Active 字段使用布尔/位字段?
像这样更改过滤器行
Filter := ('active = ''true''');