← Powrót do listy dostępnych walidatorów

 
 Jeśli masz problem ze zrozumieniem jak działa walidator, sprawdź opisy: Walidator, Wykonanie warunkowe, Parametry komponentów

Opis walidatora

Walidator tworzy zapytanie na podstawie podanych parametrów i sprawdza, czy zwróci ono wynik. W przypadku użycia zmiennych typu tablicowego zapytanie jest tworzone za pomocą podzapytań połączonych ze sobą dzięki użyciu UNION. W takich podzapytaniach nie należy stosować słówka ORDER BY.

Przykładowa konfiguracja

Parametry konfiguracyjne

Waliduj, gdy ( typ : wartość tekstowa do wyboru z listy ) - Określa w jaki sposób zachowa się walidator po znalezieniu wyników w bazie. Dostępne wartości to: Zwraca wynik / Nie zwraca wyniku

Baza danych ( typ : wartość tekstowa ) - Nazwa konfiguracji bazy danych.

Nazwa zapytania ( typ : zmienna ) - Nazwa (przedrostek z kolumny name z tabeli pm_dbqueries) na postawie której pobrane zostaną zapytania

Parametry zapytania (zmienne) ( typ : wartość logiczna ) - Przekazanie zmiennej tablicowej spowoduje, że dla każdego jej elementu zostanie utworzone podzapytanie. W przypadku przekazania zmiennej nagłówkowej parametr jest traktowany jak wartość stała.

Parametry zapytania (wartości stałe) ( typ : wartość tekstowa ) - Wartości powtarzające się w każdym wygenerowanym podzapytaniu. Przekazywane jako tekst (przydatna funkcja: toString)

Typy wartości stałych ( typ : wartość tekstowa ) - Typy parametrów zapytania z bazy danych

Typ komunikatu ( typ : wartość tekstowa ) - Lista wyboru konfiguracji pojawienia się komunikatu. Możemy wybrać komunikat globalny oraz/lub pod podanymi zmiennymi

Potwierdzenie ( typ : wartość tekstowa ) - Informuje o tym, czy wyświetlić okienko potwierdzenia.

Komunikat globalny ( typ : wartość tekstowa ) - Komunikat globalny

Zmienne formularza ( typ : wartość tekstowa ) - Zmienna, obok której będzie wyświetlony komunikat

Komunikat obok zmiennej ( typ : wartość tekstowa ) - Treść komunikatu błędu, który pojawi się przy wybranej zmiennej formularza

Przykłady zastosowań

Załóżmy, że chcemy sprawdzić w bazie danych, czy faktury, które mamy na formularzu znajdują się już w bazie. Jeżeli tak, to system powinien wyświetlić komunikat o istniejącym duplikacie.

Pierwszym etapem będzie otwarcie konfiguracji naszego walidatora. Dodajemy go do interesującego nas przycisku akceptacji, po czym pojawia się okienko:

Nasz walidator powinien prawidłowo przechodzić, jeżeli w bazie nie zostanie znaleziona faktura o podanym przez nas numerze. Dlatego pierwszy parametr ustawiamy w sposób następujący:

W następnym parametrze, baza danych, wybieramy alias bazy z dbExplorer do której wykonamy nasze zapytanie. W moim przypadku alias nosi nazwę Suncode.

Klucz zapytania jest powiązany z tabelą pm_dbqueries w systemowej bazie danych. To właśnie w tej tabeli określamy nasze zapytanie. W moim przypadku wyglądało to tak:

Dlatego w parametrze "Klucz zapytania" wpisałem:

Następnie należy w parametrze przekazać wartości id wszystkich faktur, które mam w tabeli dynamicznej na formularzu. U mnie znajdują się one w kolumnie o nazwie "Id faktury"

Dlatego przekazuję tę zmienną w odpowiednim parametrze konfiguracji.

Następnie określam w jaki sposób chcę, żeby walidator powiadamiał mnie o nieudanej walidacji:

Działanie komponentu:

W bazie danych znajdują się już faktury o id 1, 3 i 5. Walidator wyświetla błąd walidacji:

A następnie podkreśla wszystkie problematyczne komórki

Po najechaniu na komórkę pojawia się informacja, którą podaliśmy w parametrze:

Mapa z przykładową konfiguracją

 

Powiązane zadania