Pola typu Combo
Niektóre informacje na formularzu łatwiej jest wprowadzać użytkownikowi, gdy ma do dyspozycji listę rozwijaną z pozycjami do wyboru. Przykładem zastosowania takiej listy jest skorowidz jednostek miary.
W tym celu w definicji formularza wybieramy wiersz jednostka miary
Następnie ustawiamy w kolumnie Typ Kolumny jako combo.
Kolejnym krokiem konfiguracji programu jest wskazanie za pomocą zapytania SELECT do bazy SQL jakie dane mają być dostępne w skorowidzu. Jako dane do skorowidza pobierane są wartości z pierwszej kolumny zapytania, jeżeli zapytanie zwraca więcej kolumn to będą one ignorowane.
UWAGA: kontrolka COMBO nadaje się do wykorzystania dla danych słownikowych zawierających, kilka, kilkanaście wierszy do wyboru. W przypadku potrzeby rozbudowanej funkcjonalności należy skontaktować się z producentem oprogramowania. Nie należy w zapytaniu zwracać więcej niż 100 rekordów, gdyż program automatycznie ograniczy ich listę do pierwszych 100 pozycji.
Aby lista zawierała zdefiniowane kody jednostek miary należy wprowadzić zapytanie:
SELECT KOD FROM x_skorowidze where PRX=’JED’ and AKTYWNE=1 ORDER BY KOD
W efekcie na formularzu dostępna będzie lista do wyboru (combo)
Tekst i wartość
Istnieją sytuacje gdy tekst wyświetlany na liście wyboru COMBO nie jest tożsamy z wartością przypisaną do tekstu. Jeżeli potrzebujemy mieć zapisaną inną wartość niż wyświetlana w kontrolce Combo to należy w zapytaniu podać dwie kolumny zamiast jednej, gdzie druga kolumna oznacza tekst do wyświetlenia dla użytkownika, pierwsza natomiast to wartość, która będzie zapisana w bazie.
Przykład zapytania gdzie tekst i wartość będą takie same:
SELECT KOD FROM x_skorowidze where PRX=’JED’ and AKTYWNE=1 ORDER BY KOD
oraz zapytanie dla którego wyświetlanym tekstem będzie wartość odczytana z kolumny OPIS, a wartość zapisywana w bazie to KOD
SELECT KOD, OPIS FROM x_skorowidze where PRX=’JED’ and AKTYWNE=1 ORDER BY KOD
Zmienne
W zapytaniu zwracającym listę skorowidza combo można wykorzystać zmienną @ODDZIAL aby pobierać wiersze danego oddziału w kontekście zalogowanego użytkownika. Zapytanie wówczas wyglądałoby następująco:
SELECT KOD, OPIS FROM x_skorowidze where PRX=’JED’ and ODDZIAL=@ODDZIAL and AKTYWNE=1 ORDER BY KOD
gdzie wartość @ODDZIAL zostaje zostąpiona symbolem oddziału przypisanym do użytkownika programu.