我在Delphi中工作,在一个项目中,我确实有一个cxgrid,其中包含master和明细网格。 让我们假设,我们有一个包含多条线的主网格,其中只有很少几条线具有细部网格。我必须搜索文本,以便如果文本不存在于主网格线中,而是存在于同一主网格线的各个详细信息网格中,那么在过滤列表中,我可以看到主网格线。 (没有文字)。
在这方面请帮助我。
谢谢
答案 0 :(得分:0)
devexpress没有为此提供的现成函数。您必须解决。一种简单的方法是在主表中创建一个不可见的列,其中将包含详细信息中的所有可搜索文本。如果您愿意,可以使用此功能:
procedure FilterAll(A_vDBTable: TcxGridDBTableView; ASearchString: string);
var
AView: TcxGridDBTableView;
I: Integer;
s: string;
begin
AView := A_vDBTable;
AView.DataController.Filter.Clear;
AView.DataController.Filter.Root.Clear;
AView.DataController.Filter.Root.BoolOperatorKind := fboOr;
if ASearchString = '' then
begin
Exit;
end;
s := '%' + ASearchString + '%';
for I := 0 to AView.ColumnCount - 1 do
begin
AView.DataController.Filter.Root.AddItem(AView.Columns[I],foLike,s,s);
end;
AView.DataController.Filter.Active := True;
end;