1. cxgrid 是否能做到在結果中過濾,如何做
ado 中recordset可以過濾
2. delphi中cxgrid cheackbox 多選
在 Properties 的 OnEditValueChanged 事件寫代碼:
將當前行的主鍵值記錄下來
Qry過濾,Filter := 'Check欄位 =True'
將過濾出來的記錄Check欄位 全部修改為 False
根據第1步記錄的主鍵值,定位回修改的那行,並將其Check欄位 修改為 True
大致代碼如下
var
tmpKey:string;
begin
ifnotqry.FieldByName('Check欄位').AsBooleanthen
Exit;
tmpKey:=qry.FieldByName('key欄位').AsString;
qry.DisableControls;
try
qry.Filtered:=False;
qry.Filter:='Check欄位=True';
qry.Filtered:=True;
whilenotqry.IsEmptythen
begin
qry.Edit;
qry.FieldByName('Check欄位').Value:=False;
qry.Post;
end;
qry.Locate('key欄位',tmpKey,[]);
qry.Edit;
qry.FieldByName('Check欄位').Value:=True;
qry.Post;
finally
qry.EnableControls;
end;
end;