XE3 中的快速测试表明,如果您实际使用True
and False
(这是您一直以来应该做的),过滤器可以正常工作。
ClientDataSet1.Filter := 'Controled = False';
ClientDataSet1.Filtered := True;
我创建的测试表包含一个integer
名为的字段ID
和一个Boolean
名为Controlled
(与您的相同,但拼写为 2 Ls)的字段。
测试按钮点击代码:
procedure TForm3.Button1Click(Sender: TObject);
begin
ClientDataSet1.Filtered := False;
if Edit1.Text <> '' then
begin
ClientDataSet1.Filter := Edit1.Text;
ClientDataSet1.Filtered := True;
end
else
ClientDataSet1.Filter := '';
end;
没有过滤器集(Filtered = False
和Filter = ''
):
过滤器 =Controlled = False
过滤器 =Controlled = True