ProgressBar to element interfejsu użytkownika, który wizualnie przedstawia postęp operacji wykonywanych w procesie. W przypadku wniosków implementowanych w systemie Ferryt, pozwala on użytkownikowi zorientować się, na jakim etapie się znajduje oraz jakie kroki pozostały do zakończenia obsługi wniosku. W tym artykule przedstawię, jak krok po kroku skonfigurować ProgressBar w Ferryt, aby jak najlepiej wspierał użytkowników.
Konfiguracja podstawowa
Konfiguracja ProgressBaru, czyli tzw. paska postępu, rozpoczyna się od Designera Ekranów. Tworzymy w nim ekran, na którym należy umieścić ikonę „Pasek postępu”:

W wielu procesach ProgressBar pełni funkcję elementu nawigacyjnego – ułatwia użytkownikowi orientację w przebiegu obsługi wniosku. Na powyższym przykładzie widzimy, że jest częścią jednego z ekranów procesu, obok innych danych związanych z wnioskiem.
Po lewej stronie interfejsu dostępne są opcje konfiguracji paska postępu:

Najczęściej wykorzystywanym typem są „Pionowe kroki procesu”. Oprócz tego dostępne są jeszcze trzy inne warianty: licznik, etapy i kroki procesu:

Wszystkie przykłady graficzne prezentowane w tym artykule uwzględniają ustawienie „Pionowe kroki procesu”.
Tworzenie reguł BPMN
Dalsza konfiguracja pasku postępu jest już indywidualnym zapotrzebowaniem zgodnym z procesem. Aby ją rozpocząć, należy dodać odpowiednią regułę w modelu BPMN.
Pierwszym krokiem jest ustawienie widoczności ekranu, na którym znajduje się pasek postępu:
G.E010_PasekPostepu.Show();
Następnie zaleca się wyczyszczenie wszystkich ustawień kroków na ProgressBar, nawet, jeśli konfigurujemy dopiero pierwszy status. Jest to zabezpieczenie w przypadku nieoczywistych kroków:
GUI.ProgressSteps.Clear();
W regule musimy umieścić kilka istotnych informacji, na podstawie których pasek postępu będzie odpowiednio ustawiany w zależności od etapu procesowania.
Na początek określamy jego długość, czyli liczbę kroków, korzystając z parametru CF.ProgressStepCount, która przyjmuje wartość typu int.
Kolejne etapy konfiguracji polegają na dodawaniu poszczególnych kroków, które mają być wyświetlane na ekranie. Ustawienie poszczególnych kroków odbywa się w dwóch etapach: ustawienie treści widocznej na ekranie dla danego kroku oraz statusu, jaki powinien być wtedy widoczny. Obie funkcjonalności ustawiamy za pomocą parametrów:
GUI.ProgressSteps[i].Text
GUI.ProgressSteps[i].State
i -> kolejny indeks elementu ProgressBar
Poniżej znajduje się przykład konfiguracji dla pierwszego statusu we wniosku:
G.E010_PasekPostepu.Show(); GUI.ProgressSteps.Clear(); CF.ProgressStepCount = 2; GUI.ProgressSteps[0].Text = "Uzupełnienie wniosku"; GUI.ProgressSteps[1].State = S.Z010_NowyWniosek; GUI.ProgressSteps[1].Text = "Nowy wniosek";
Jak widzimy powyżej, mamy na ekranie widoczny dodatkowy status „Uzupełnienie wniosku”, który jest jedynie prezentowany na ProgressBar i pełni funkcję informacyjną.
Na ekranie będzie widoczny następujący efekt konfiguracji:

Kolejne kroki konfiguruje się w analogiczny sposób, dodając następne etapy procesu, aż do pełnego odwzorowania przebiegu obsługi wniosku.
ProgressBar – podkroki
ProgressBar umożliwia również dodawanie podkroków, czyli elementów podrzędnych do określonych etapów. Możemy wprowadzać kilka zagnieżdżeń, poprzez ustawienie parametru GUI.ProgresSteps[i].Level. Przykład ustawienia takich kroków prezentuje poniższy kod:
GUI.ProgressSteps[0].Text = "Uzupełnienie wniosku"; GUI.ProgressSteps[1].State = S.Z010_NowyWniosek; GUI.ProgressSteps[1].Text = "Nowy wniosek"; GUI.ProgressSteps[2].Text = "Dane wnioskodawców"; GUI.ProgressSteps[2].State = null; GUI.ProgressSteps[3].Level = 1; GUI.ProgressSteps[3].Text = "Wnioskodawcy"; GUI.ProgressSteps[3].State = S.Z020_DaneOsoboweWnioskodawcow;
Jak widzimy na powyższym przykładzie, krok „Dane wnioskodawców” jest krokiem głównym, do którego należy krok podrzędny „Wnioskodawcy”. Ustawienie parametru GUI.ProgresSteps[i].Level = 1, oznacza, że jest podkrokiem głównego kroku, czyli „Dane wnioskodawców”. Po takiej konfiguracji pasek postępu będzie wyglądał w następujący sposób:

W Designerze Ekranów dostępna jest także opcja ukrywania ukończonych podkroków, co poprawia czytelność interfejsu:

ProgressBar – tryb podglądu
Konfiguracja ProgressBar dla trybu podglądu wymaga dodania dodatkowych elementów, na podstawie których działanie paska postępu jest możliwe. W trybie podglądu wniosek znajduje się wyłącznie w opcji do odczytu, a poruszanie się po ProgressBar jest możliwe poprzez odpowiednie ustawienie. W pierwszym kroku, należy dodać parametry określające, który z kroków jest obecnie na pasku postępu. W przedstawionym powyżej przykładzie etap procesu „Nowy wniosek” jest pierwszym krokiem, dlatego należy dodać następujące ustawienie:
GUI.ProgressSteps.CurrentStep = 1; CF.ProgressStepCurrent = 1;
Oba powyższe parametry wskazują na numer kroku w procesie, co jest niezbędne do prawidłowego poruszania się w trybie podglądu za pomocą przycisków i nawigacji samym paskiem postępu. Dodatkowym parametrem, który warto ustawić, by zabezpieczyć się przed niepożądanym poruszaniem się po ProgressBar jest GUI.ProgressSteps.MaxVisitedStep określający, ile kroków przed tym, w którym obecnie się znajdujemy, odwiedzono w czasie procesowania wniosku.
Takie ustawienie warto zastosować już dla drugiego z kroków procesu, by
nie dopuścić do kliknięcia innego kroku niż poprzedniego:
GUI.ProgressSteps.MaxVisitedStep = 1; CF.ProgressStepCount = 4; GUI.ProgressSteps[0].Text = "Uzupełnienie wniosku"; GUI.ProgressSteps[1].State = S.Z010_NowyWniosek; GUI.ProgressSteps[1].Text = "Nowy wniosek"; GUI.ProgressSteps[2].Text = "Dane wnioskodawców"; GUI.ProgressSteps[2].State = null; GUI.ProgressSteps[3].Level = 1; GUI.ProgressSteps[3].Text = "Wnioskodawcy"; GUI.ProgressSteps[3].State = S.Z020_DaneOsoboweWnioskodawcow; GUI.ProgressSteps.CurrentStep = 3; CF.ProgressStepCurrent = 3;
Powyższy kod wskazuje jasno, że proces składa się z 4 kroków, a obecnie znajdujemy się w kroku numer 3, czyli „Wnioskodawcy”. Wcześniej mogliśmy być tylko w kroku
„Nowy wniosek”, stąd parametr MaxVisitedStep = 1.
Konfiguracja dla kroku „Dane wnioskodawców”, gdzie GUI.ProgressSteps[2].State = null, oznacza, że dla danego kroku na ProgressBar będzie on nieaktywny. W efekcie użytkownik nie będzie mógł się do takiego kroku cofnąć, przez to też wszystkie parametry są uwzględnione dla przypadku, gdy przez ten krok fizycznie nie przechodzimy.
Podsumowanie
ProgressBar to nieodłączny element wniosków, z pomocą którego ułatwiamy użytkownikom odnalezienie oraz poruszanie się po nawet najbardziej złożonych procesach. Dzięki odpowiedniej konfiguracji pasek postępu można dostosować dokładnie do potrzeb klienta. Wprowadzenie parametrów takich jak aktualny krok czy liczba wcześniej przebytych kroków umożliwiają skonfigurowanie ProgressBar dla trybu podglądu, ułatwiającego poruszanie się po wniosku w trybie read-only. Dobrze skonfigurowany ProgressBar to nie tylko element wizualny, ale realne wsparcie dla użytkowników.
Autor: Krzysztof Peda – Starszy Ferryt Developer


