我过去常常使用单个代码来查询筛选器,并使用多个TZquery尝试它,但它无法工作。所有的表都包含client_id列,我希望代码能够使用TEdit上的客户端id搜索信息,它只适用于单个TZquery,但只适用于多个TZquery。谢谢。
下面是我使用的代码:
zquery1.FilterOptions:=[foCaseInsensitive];
zquery1.Filtered := Length(Edit1.Text) > 0;
if zquery1.Filtered then
zquery1.Filter := 'client_id like ' +
QuotedStr('' + Edit1.Text + '') // Zeos- Syntax
else
zquery1.Filter := '';
zquery2.FilterOptions:=[foCaseInsensitive];
zquery2.Filtered := Length(Edit1.Text) > 0;
if zquery2.Filtered then
zquery2.Filter := 'client_id like ' + QuotedStr('' + Edit1.Text + '') // Zeos- Syntax
else
zquery2.Filter := '';
zquery3.FilterOptions:=[foCaseInsensitive];
zquery3.Filtered := Length(Edit1.Text) > 0;
if zquery3.Filtered then
zquery3.Filter := 'client_id like ' + QuotedStr('' + Edit1.Text + '') // Zeos- Syntax
else
zquery3.Filter := '';
zquery4.FilterOptions:=[foCaseInsensitive];
zquery4.Filtered := Length(Edit1.Text) > 0;
if zquery4.Filtered then
zquery4.Filter := 'client_id like ' + QuotedStr('' + Edit1.Text + '') // Zeos- Syntax
else
zquery4.Filter := '';发布于 2013-11-06 05:38:34
只有当筛选为假时,我才会更改筛选条件。所以我将按照以下方式编写您的代码
zquery1.FilterOptions:=[foCaseInsensitive];
zquery1.Filtered := false;
if Length(Edit1.Text) > 0 then
begin
zquery1.Filter := 'client_id like ' + QuotedStr(trim(Edit1.Text)) ;
zquery1.Filtered := true;
end;
zquery2.FilterOptions:=[foCaseInsensitive];
zquery2.Filtered := false;
if Length(Edit1.Text) > 0 then
begin
zquery2.Filter := 'client_id like ' + QuotedStr('' + Edit1.Text + '') // Zeos- Syntax
zquery2.Filtered := true;
end;
zquery3.FilterOptions:=[foCaseInsensitive];
zquery3.Filtered := false;
if Length(Edit1.Text) > 0 then
begin
zquery3.Filter := 'client_id like ' + QuotedStr('' + Edit1.Text + '') // Zeos- Syntax
zquery3.Filtered := true;
end;
zquery3.FilterOptions:=[foCaseInsensitive];
zquery3.Filtered := false;
if Length(Edit1.Text) > 0 then
begin
zquery3.Filter := 'client_id like ' + QuotedStr('' + Edit1.Text + '') // Zeos- Syntax
zquery3.Filtered := true;
end;https://stackoverflow.com/questions/19794664
复制相似问题