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''');