Kontrolka typu „Lista” umożliwia wybór jednej pozycji z rozwijalnej listy wartości kontrolki.
Na definicji kontrolki dostępne są następujące pola:
- Nazwa wyświetlana – jest to pole, którego zawartość będzie widoczna na karcie obiegu, wartość pola nie musi być unikalna, dzięki temu możliwe jest dodanie kilku kontrolek, dla których wyświetlana jest taka sama nazwa.
- Nazwa (identyfikator) – jest to pole, którego wartość widoczna jest wyłącznie we właściwościach kontrolki. Wartość tego pola musi być unikalna w ramach karty obiegu.
- Prezentuj na całej szerokości – zaznaczenie tej właściwości spowoduje wyświetlenie kontrolki na całej szerokości okna „Karta obiegu”.
- Ustaw kontrolkę na początku wiersza – parametr odpowiada za ustawienie kontrolki na początku nowego wiersza karty obiegu, bez konieczności dodawania separatorów pomiędzy kontrolką bieżącą, a kontrolką poprzednią. Możliwość użycia parametru „Ustaw kontrolkę na początku wiersza” uzależniona jest od wartości parametru „Prezentuj na całej szerokości”. Gdy zaznaczono parametr „Prezentuj na całej szerokości”, nie ma możliwości użycia parametru „Ustaw kontrolkę na początku wiersza”. Gdy parametr „Ustaw kontrolkę na początku wiersza” jest zaznaczony, parametr „Prezentuj na całej szerokości” jest dostępny, jego zaznaczenie spowoduje wyłączenie i dezaktywację parametru „Ustaw kontrolkę na początku wiersza”.
- Pokaż na liście – parametr odpowiedzialny za to, czy na liście dokumentów zawężonej do typu obiegu, na którym dodano kontrolkę, będzie wyświetlana kolumna z wartościami kontrolki.
Gdy w polu „Inicjowanie” wybrano opcję „Słownik”, wówczas istnieje możliwość definiowania nowej wartości po kliknięciu w link „Dodaj” i ikonka usunięcia jej z listy (ikonka kosza).
Inicjowanie wartości
Pole Inicjowanie może przyjmować wartości: Słownik, SQL OD lub C# Script.
- Gdy wybrana jest wartość „Słownik”, operator może zdefiniować stałą listę pozycji kontrolki i wybrać pozycję prezentowaną w kontrolce jako wartość domyślna.
- W przypadku wartości „SQL OD” lista pozycji jest inicjowana w oparciu o zapytanie SQL działające na bazie Comarch DMS.
- W przypadku wartości „C# Script” możliwe jest zdefiniowanie kodu w języku C#, który będzie inicjował wartości w kontrolce.
Od wersji 2023.1.2 jeżeli operator w ramach pola „Inicjowanie” wybierze wartość SQL OD, SQL ERP lub C# Script, ale nie kliknie w link „Ustaw” i nie wprowadzi zapytania, wówczas przy próbie zapisu typu obiegu zostanie wyświetlony komunikat, a zmiany nie zostaną zapisane.
W takim przypadku należy zmienić wartość pola „Inicjowanie” na „Brak” albo wprowadzić brakujące zapytanie.
W ramach komunikatu podane są nazwa i identyfikator kontrolki, dla której nie wprowadzono wymaganego zapytania oraz opcja wybrana w polu „Inicjowanie” tej kontrolki.
- Parametr „Inicjuj przy każdym otwarciu dokumentu” (dostępny, gdy wybrano inicjowanie SQL lub C# Script). Zaznaczenie parametru powoduje, że wartości wyświetlane w kontrolce będą inicjowane każdorazowo, gdy dokument zostanie otwarty w etapie, w którego właściwościach włączono inicjalizację SQL/C#. Odznaczenie parametru oznacza, że wartość zostanie zainicjowana raz.
Kontrolka typu lista z wartościami zainicjowanymi słownikiem
Gdy parametr ‘Prezentuj wartość domyślną’ pozostanie odznaczony, wówczas na karcie obiegu w kontrolce domyślnie będzie wyświetlana pusta wartość (1), po rozwinięciu listy zostaną wyświetlone zdefiniowane wartości. Zaznaczenie parametru spowoduje, że domyślnie w kontrolce będzie wyświetlana zaznaczona wartość (2).
Przykład zapytania SQL dla kontrolki typu “Lista”:
select 1, 'abcd’
union
select 2, ‘xyz’
Rodzaj identyfikatora – pole umożliwia operatorowi określenie rodzaju identyfikatorów kolejnych pozycji na liście. Przyjmuje wartości:
- Int – gdy identyfikatory kolejnych pozycji na liście określone są liczbą. Dla metody inicjowania listy słownikiem, rodzaj identyfikatora to zawsze int.
- Text – gdy identyfikatory kolejnych pozycji na liście określone są wartością tekstową (np. GUID).
W przypadku, gdy w kontrolce lista określono rodzaj identyfikatora jako int, w edytorze zapytań SQL w mechanizmach inicjowania i obserwowania wyświetlane będą parametry:
- <identyfikator_kontrolki_typu_lista>_Id
- <identyfikator_kontrolki_typu_lista>_Text
W przypadku, gdy w kontrolce lista określono rodzaj identyfikatora jako text, w edytorze zapytań SQL w mechanizmach inicjowania i obserwowania wyświetlane będą parametry:
- <identyfikator_kontrolki_typu_lista>_IdText
- <identyfikator_kontrolki_typu_lista>_Text
Pole Tryb pracy przyjmuje wartości:
- Lista – wypełnia kontrolkę pełną listą pozycji zdefiniowanych w oparciu o zapytanie SQL.
- Wyszukiwanie – inicjuje kontrolkę listą pozycji spełniających kryteria wyszukiwania wprowadzone przez operatora. W trybie pracy Wyszukiwanie umożliwiono szukanie wartości po dowolnym ciągu znaków. Taki tryb pracy uzależniony jest od wartości parametru ‘Szukaj po dowolnym ciągu znaków’. Jeżeli parametr jest wyłączony, wówczas wyszukiwanie odbywa się po początkowych znakach danej wartości. W przypadku, gdy tryb pracy kontrolki zostanie ustawiony na Lista, parametr jest niedostępny.
Kontrolka typu „Lista” może być wykorzystywana, jako kontrolka, z której użytkownik wybiera na karcie obiegu zdefiniowane wartości z konfiguracji kontrolki np. formy płatności. Jeżeli w konfiguracji tej kontrolki wprowadzone jest zapytanie SQL-owe, można na jego podstawie z bazy pobrać konkretną listę wartości, którą aplikacja automatycznie wprowadzi do pola kontrolki.
Na bazie Comarch DMS utworzono dodatkową tabelę (do.wdrKontrahenci), w której przechowywane będą dane kontrahentów:
Na definicji typu obiegu dodano kontrolkę typu lista:
Wartości w kontrolce typu lista będą inicjowane zapytaniem SQL:
Na podstawie zapytania w kontrolce „Kontrahent” na karcie obiegu dostępna będzie lista wszystkich kontrahentów znajdujących się w tabeli:
Kontrolka typu „Lista” na karcie obiegu wypełniana jest wartością domyślną, jeżeli w danym etapie dla tej kontrolki nie została zapisana wartość. Operator może edytować i zmieniać domyślną wartość na dokumencie. Wprowadzona wartość zostanie zapisana i zapamiętana.
Dla kontrolek typu lista została oprogramowana możliwość ponownego inicjowania wartości na kolejnych etapach. Jeżeli dla kontrolki została zaznaczona (na kilku etapach) właściwość „Inicjalizacja SQL” to na każdym etapie kontrolka zostanie zainicjonowana ponownie wartością domyślną.
Umożliwiono odwołanie się do nazwy oraz pozycji wybranego elementu w kontrolce typu „Lista”.
Administrator chce, aby można było w prosty sposób dodać do kontrolki typu Dokumenty w obiegu dokumenty pochodzące z różnych typów obiegów w Comarch DMS.
W tym celu dodaje 3 kontrolki:
- kontrolkę typu Lista o nazwie „Typ obiegu” (identyfikator: Typ_obiegu)
- kontrolkę typu Lista o nazwie ” Dokumenty wybranego obiegu” (identyfikator: wybrany_obieg), która obserwuje kontrolkę „Typ obiegu”
- kontrolkę typu Dokumenty w obiegu o nazwie „Dowiązane dokumenty” (identyfikator: Dowiazane), która obserwuje kontrolkę ” Dokumenty wybranego obiegu”
Następnie we właściwościach kontrolki „Typ obiegu” w polu „Inicjowanie” wybiera „SQL OD” i klika w link „Ustaw”. W ramach otwartego okna wpisuje następujące zapytanie:
select DFH_Id, DFH_Name from do.RO_ObjectsTypes where DFH_Archives = 0
Później administrator we właściwościach kontrolki „Dokumenty wybranego obiegu” w polu „Inicjowanie” wybiera „SQL OD” i klika w link „Ustaw”. W ramach otwartego okna wpisuje następujące zapytanie:
select dwd_id, DWD_FullNumber from do.RO_Documents where DFH_Id = @Typ_obiegu_Id@
Potem zaś administrator we właściwościach kontrolki „Dowiązane dokumenty” w polu „Wzór na wartość” wybiera „SQL OD” i klika w link „Ustaw”. W ramach otwartego okna wpisuje następujące zapytanie:
select @wybrany_obieg_Id@
Następnie administrator zapisuje zmiany.
Od tej pory operator na nowym dokumencie może wybrać typ obiegu dokumentów w kontrolce „Typ obiegu”, a następnie w kontrolce „Dokumenty wybranego obiegu” – numery dokumentów z tego typu obiegu – wówczas wybrane dokumenty zostaną dodane do kontrolki ” Dowiązane dokumenty”. Możliwe jest wybranie kolejno różnych dokumentów z różnych typów obiegu.