VBA > Opis obiektów VBA > MxGrid > Zasady kontroli poprawności oraz wsparcie mechanizmów zapisu

Drukuj

Zasady kontroli poprawności oraz wsparcie mechanizmów zapisu

Po wejściu w tryb edycji w dowolnej komórce w wierszu danych, zarówno dana komórka jak i cały wiersz oznaczane są jako zmienione oraz tworzony jest dodatkowy, ukryty wiersz danych, zawierający oryginalną zawartość wszystkich komórek danych z tego wiersza.

Przechowanie oryginalnej zawartości wiersza umożliwia odwołanie zmian dokonanych w komórce lub w całym wierszu i przywrócenie stanu początkowego.

Po wprowadzeniu zmian w polu i przy próbie jego opuszczenia (przejścia do innej komórki na tym samym arkuszu) generowane jest zdarzenie OnValidateCell. Zdarzenie to jest generowane tylko i wyłącznie przy próbie opuszczenia zmienionej komórki.

Przeznaczeniem tego zdarzenia jest dokonanie kontroli poprawności danych wprowadzonych do tej komórki oraz zadecydowanie, czy wolno opuścić tę komórkę, czy też wprowadzona wartość jest niepoprawna i pola edycyjnego nie wolno opuścić.

Jeśli w obsłudze zdarzenia zezwolono na opuszczenie pola edycyjnego, a pole do którego przechodzimy znajduje się w tym samym wierszu, to nic więcej się nie dzieje. Po zmianie dowolnego innego pola w tym samym wierszu danych i opuszczenia go na rzecz innego pola w tym samym wierszu, generowane jest tylko kolejne zdarzenie OnValidateCell.

Przy próbie opuszczenia wiersza w którym zmieniono wartości komórek jest generowane dodatkowe zdarzenie OnValidateRow. Zdarzenie to jest generowane tylko i wyłącznie przy próbie opuszczenia zmienionego wiersza danych.

 

Celem tego zdarzenia jest:

Dokonanie sprawdzenia poprawności całego wiersza danych, w szczególności kompletności informacji oraz wzajemnych relacji pomiędzy poszczególnymi polami danych.

Zapisanie zmian dokonanych w wierszu. Jeśli obiekt prezentuje dane związane z tabelami bazy danych, w obsłudze tego zdarzenia należy zmienione dane zapisać do bazy danych.

W obsłudze tego zdarzenia możemy stwierdzić, że wprowadzone dane są niepoprawne i nie zezwolić na opuszczenie wiersza danych.

Opuszczenie wiersza danych jest równoznaczne z zakończeniem edycji wiersza danych i zaakceptowaniem zmian dokonanych w tym wierszu.

Po zaakceptowaniu zmian w wierszu i po zezwoleniu na opuszczenie wiersza niszczony jest tymczasowy wiersz zawierający oryginalne dane oraz zdejmowany jest znacznik zmienionego wiersza. Od tego momentu nie jest już możliwe przywrócenie stanu początkowego wiersza (inaczej niż ręczne wprowadzenie danych początkowych).

Taki wiersz nie przechowuje żadnych dodatkowych informacji ani o jego stanie początkowym, ani też o samym fakcie jego zmiany (jeśli taka informacja jest potrzebna, może być jawnie umieszczona przez osobę piszącą kod obsługujący zdarzenie OnValidateRow, np. w polu UserData).

 

Operacja

Działania

Uwagi

Próba edycji komórki

Wygenerowanie zdarzenia TryToEdit

Możliwe jest zezwolenie na edycję lub zabronienie edycji

Edycja zawartości komórki

Zapamiętanie oryginalnej zawartości wiersza

Oznaczenie komórki jako zmienionej

Oznaczenie wiersza jako zmienionego

Tworzone jest pole edycyjne. Dla pól wyboru (typu CheckBox) edycja jest równoznaczna ze zmianą stanu pola wyboru

Próba opuszczenia zmienionej komórki

Wygenerowanie zdarzenia OnValidateCell

Kontrola poprawności zmienionej komórki.

Możliwe jest zabronienie opuszczenia pola

Próba opuszczenia zmienionego wiersza

Wygenerowanie zdarzenia OnValidateRow

Kontrola poprawności całego wiersza, zapisanie zmian do bazy danych.

Możliwe jest zabronienie opuszczenia wiersza

Opuszczenie wiersza

Usunięcie oryginalnej zawartości wiersza, usunięcie znacznika zmienionego wiersza

Zaakceptowanie dokonanych zmian