diff --git a/Source/GUIBase/uEditorDBBase.pas b/Source/GUIBase/uEditorDBBase.pas index 75b249d4..ac895788 100644 --- a/Source/GUIBase/uEditorDBBase.pas +++ b/Source/GUIBase/uEditorDBBase.pas @@ -144,7 +144,8 @@ end; procedure TfEditorDBBase.dsDataTableDataChange(Sender: TObject; Field: TField); begin inherited; - ActualizarEstadoEditor; + if not (Sender as TDADataSource).Opening then + ActualizarEstadoEditor; end; procedure TfEditorDBBase.actRefrescarUpdate(Sender: TObject); @@ -180,7 +181,7 @@ end; procedure TfEditorDBBase.RefrescarInterno; var - ABookmark : TBookmark; + AID: Integer; begin inherited; if Assigned(dsDataTable.DataTable) then @@ -188,19 +189,19 @@ begin if (dsDataTable.DataTable.IsEmpty) or (not ModifiedQuery) then Exit; // No continuar con el refresco - ABookmark := dsDataTable.DataTable.GetBookMark; - dsDataTable.DataTable.DisableControls; //<- No descomentar + with dsDataTable.DataTable do + begin + AID := RecIDValue; + DisableControls; //<- No descomentar - ShowHourglassCursor; - try - dsDataTable.DataTable.Refresh; - - if dsDataTable.DataTable.Dataset.BookmarkValid(ABookmark) then - dsDataTable.DataTable.GotoBookmark(ABookmark); - finally - dsDataTable.DataTable.FreeBookmark(ABookmark); - dsDataTable.DataTable.EnableControls; //<- No descomentar - HideHourglassCursor; + ShowHourglassCursor; + try + Refresh; + Locate(RecIDField.FieldName, AID, []); + finally + EnableControls; //<- No descomentar + HideHourglassCursor; + end; end; end; end;