我有一個包含3個clientdataset的數據模塊,所有數據模塊都通過datasetproviders耦合到一個adoquery。每個客戶端數據集上的PacketRecords設置爲-1。 CDS2與CDS1 CDS3一個masterdetail與CDS2當調用disablecontrols時,Delphi clientdataset無法導航
所以我的窗體上的masterdetail,當我移動到CDS1比CDS2另一個記錄和CDS3遵循的預期。
現在我需要遍歷cds3的所有記錄來創建一些字段的總和。 使用下面的代碼時沒有問題,就像一個魅力。 (最多5條記錄目前在所有次)
cds2.First;
while not cds2.Eof do
begin
cds3.First;
while not cds3.Eof do
begin
TotalExcl := TotalExcl + cds3TotalExcl.AsCurrency;
TotalIncl := TotalIncl + cds3TotalIncl.AsCurrency;
cds3.Next;
end;
cds2.Next;
end;
但offcourse我不想dbgrids每次調用第一個和下後移動,所以我呼籲CDS2和CDS3 disablecontrols
的問題是,不僅dbgrid停止移動,而且clientdatasets不再移動!在我刪除禁用控件之前,先調用cds2或cds3絕對不會有任何東西。
在masterdetail關係中使用clientdatasets時,這是正常行爲嗎? 如果是這樣,是否有繞過此「功能」的解決方法?
我使用disablecontrols所有的時間,從來沒有問題,但這是我第一次使用它的3個clientdatasets有masterdetails設置。
新聞F1在DisableControls上:*「如果數據集是主/關係關係的主數據庫,調用DisableControls也會禁用主/關係關係。設置BlockReadSize而不是調用DisableControls會在您滾動數據集時更新詳細數據集,但不會更新數據感知控件。*「 – 2014-09-05 19:34:42
是的,這是有效的。非常感謝你。猜猜這是RTFM的另一種情況... – GuidoG 2014-09-05 19:39:53
不客氣。如果你確定它能夠按照你的想法工作,請考慮發佈一個答案。 – 2014-09-05 19:43:43