TCheckBox для фильтрации набора данных по полю

Я пытаюсь отфильтровать набор данных по одному полю при установке флажка. Ниже приведен код, который я собрал, и который, как мне показалось, был правильным, но он, похоже, не работает, он возвращает 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;

Имя поля в наборе данных называется "активным", и в нем хранится строка "true" или "false".

Любая помощь приветствуется.

Спасибо,

2 ответа

Решение

Если поле 'active' содержит строку, вы должны написать:

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

Прямо сейчас вы фильтруете логическое значение True. Кроме того, почему вы не используете логическое / битовое поле для этого активного поля?

Измените строку фильтра следующим образом

Filter := ('active = ''true''');
Другие вопросы по тегам