我想知道我是否正确地做到了,TourQuery.AfterScroll具有RackQuery,RackQueryAfterScroll具有PosQuery。当用户尝试锁定日期以进行更改时,我会进行刷新以确保他看到的是当前数据。如果没有任何变化,那么请确保TourQuery和RackQuery在刷新之前保持其最后位置。
我尝试了几种不同的方法来执行此操作,但似乎最快的方法是将EnableControls放在AfterScroll之后的Locate之后。
我只是想问一下我是否做对了,或者有更好的方法。我已经尝试过google了,但是DisableControls和EnableControls只是一些基本的东西,而没有最佳实践。
myTour := TourQueryTour.Value;
myPID := RackQueryPID.Value;
TourQuery.DisableControls;
RackQuery.DisableControls;
PosQuery.DisableControls;
if TourQuery.Active then TourQuery.Close;
TourQuery.Parameters.ParamByName('Datum').Value:=DateTimePicker1.DateTime;
TourQuery.Parameters.ParamByName('werk').Value:='XXX';
TourQuery.Open;
cxGrid1DBTableView1.ApplyBestFit();
TourQuery.AfterScroll:=nil;
TourQuery.Locate('Tour',myTour,[]);
TourQuery.EnableControls;
TourQuery.AfterScroll:=TourQueryAfterScroll;
TourQuery.AfterScroll(TourQuery);
RackQuery.AfterScroll:=nil;
RackQuery.Locate('PID',myPID,[]);
RackQuery.EnableControls;
RackQuery.AfterScroll:=RackQueryAfterScroll;
RackQuery.AfterScroll(RackQuery);
PosQuery.EnableControls;