我使用CXGRID過濾出一部分資料,想統一修改某一列的值,直接處理后臺資料集用
FIRST;
WHILE NOT EOF DO
BEGIN
。。。
END
這樣處理是整張表,撤掉過去后看到全部都被修改了。
他的過濾機制跟DBGridEh不同,DBGrideh是filter資料集的模式。
而CXGRID不是,不知道如何統一修改過濾出來的資料呢?
uj5u.com熱心網友回復:
使用CXGRID過濾出資料,是在CXGrid資料的基礎上,通過再次過濾,讓CXGRID僅顯示過濾后的資料。但是CXGRID的資料集并沒有過濾,所以你使用
with CXGRID1.DataSource.DatsSet do
begin
first;
while not Eof do
begin
.......
end;
end;
這些都還是沒有過濾的資料。
建議你使用一個程序(或按鍵事件),通過SQL陳述句過濾,再進行你需要的處理:
procedure TFrm1.Button1Click(Sender: TObject);
var SQL:string;
begin
SQL:='select * from 表名 Where (日期>='+#39+s1+#39+') and (日期<='+#39+s2+#39+')';
DataModule1.ClientDataSet1.Active:=False;
DataModule1.ClientDataSet1.DataRequest(SQL);
DataModule1.ClientDataSet1.Active:=True;
with DataModule1.ClientDataSet1 do
begin
first;
while not Eof do
begin
.......
end;
end;
DataModule1.ClientDataSet1.Active:=False;
end;
DataModule1.ClientDataSet1 這是C/S的控制元件,你可以使用其它資料集控制元件。如:ADO的資料集控制元件。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/55121.html
標籤:VCL組件開發及應用
