它有一个名为“ Controled”的clientdataset布尔字段。
我想过滤不受控制的记录。
在Delphi XE(VCL)中,我正在使用以下代码,并且可以正常工作:
ClientDataSet1.Filter := 'Controled = 0';
ClientDataSet1.Filtered := True;
在Delphi XE2(FMX)中,此代码不起作用,但是我可以过滤受控记录(
Controled =1
),并且它可以起作用,但我想要不受控制的记录。任何想法还是新版本中的一个?
最佳答案
在XE3中进行的快速测试表明,如果您实际上使用True
和False
(这一直是您应该做的),则过滤器可以正常工作。
ClientDataSet1.Filter := 'Controled = False';
ClientDataSet1.Filtered := True;
我创建的测试表包含一个名为
integer
的ID
字段和一个名为Boolean
的Controlled
字段(与您的表相同,但拼写为2 L)。测试按钮的点击代码:
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