0

勾选复选框时,我试图按一个字段过滤数据集,以下是我整理并认为是正确的代码,但它似乎不起作用,它带回 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;

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

任何帮助将非常感激。

谢谢,

4

2 回答 2

3

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

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

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

于 2015-07-22T14:40:22.120 回答
0

像这样改变过滤线

Filter := ('active = ''true''');
于 2015-07-22T14:40:56.353 回答