Nowe reguły kolorowania komórek listy pozycji

Facebooktwitterpinterestlinkedinmail
Dotyczy wersji 2021.1.x autor: Józef Cyran

 

Wprowadzenie

W wersji 2021 BPS zostały dodane reguły biznesowe upraszczające pracę z listami pozycji, oraz dodające funkcjonalność ich kolorowania i dynamicznej modyfikacji stylu wybranych (regułami) komórek. Poniższa aplikacja służy przedstawieniu działania tych funkcji na przykładzie procesu obsługi zamówień na wynos w restauracji.

Działanie aplikacji

Zrzut ekranu 1. Wygląd aplikacji

 

Proces posiada atrybuty Total number of orders oraz Orders – delivered i listę pozycji Orders zawierającą wszystkie zamówienia. Zamówienia są wpisywane na listę pozycji przez pracownika restauracji po zamówieniu telefonicznym (chociaż w praktycznej aplikacji można wprowadzić połączenie z systemem elektronicznych zamówień), czas zamówienia oraz jego numer ustawia się automatycznie. Status informuje pracownika o aktualnym stanie zamówienia.

 

Zrzut ekranu 2. Przykładowa lista zamówień

 

Schemat obiegu głównego

Zrzut ekranu 3. Schemat obiegu głównego

 

Schemat obiegu głównego jest prosty – istotna jest ścieżka update która pozwala pracownikowi zapisać obecny stan zamówień po każdej zmianie. Każdy element procesu odpowiada jednemu dniu roboczemu.

 

Konfiguracja procesu

Zrzut ekranu 4. Oprócz atrybutów widocznych w aplikacji istnieją dwa atrybuty techniczne _oldest order time oraz _oldest order

 

Lista pozycji Orders posiada 6 kolumn, kolumna Status zasilana jest źródłem danych typu stała lista pozycji.

 

Zrzut ekranu 5. Źródło danych zasilające kolumnę Status

 

Aby dynamicznie kolorować listę pozycji, należy przejść do konfiguracji do okna reguła formularza po zmianie wartości. Istotnym jest, aby wszystkie reguły znajdujące się w tym oknie przekopiować także do okna reguła formularza uruchamiana podczas startu strony.

 

Zrzut ekranu 6. Reguła formularza po zmianie wartości

 

Na początku atrybut _oldest order time ustawia się wartością obecną – będzie on później ustawiany wartością z kolumny Order time tylko jeśli Order time będzie mniejszy (a więc wcześniejszy) niż aktualna wartość atrybutu technicznego _oldest order time. Celem jest znalezienie najwcześniejszego zamówienia i zaznaczenie jego numeru kolorem czerwonym i pogrubieniem, aby wskazać najbardziej priorytetowe zamówienie.

Atrybut Orders – delivered jest zerowany przed uruchomieniem reguły zliczającej zamówienia dostarczone (poniżej), natomiast atrybut Total number of orders ustawiany jest nową regułą Item list count. Dzięki temu można w prosty sposób zliczyć wszystkie zamówienia.

Aby wyznaczyć liczbę zamówień dostarczonych, należy użyć nowej funkcji For each row. Funkcja ta pozwala wykonać operacje na każdym rzędzie listy pozycji i odnosić się do aktualnej wartości kolumn w tym rzędzie. Służy do tego funkcja Get row value w której wybieramy listę pozycji i kolumnę której wartość chcemy odczytać.

 

Zrzut ekranu 7. Reguła inkrementująca wartość licznika Orders – delivered dla każdego rzędu gdzie ID pola status wynosi wartość stałej Delivered ID

 

Zrzut ekranu 8. Reguły służące pogrubieniu i pokolorowaniu na czerwono numeru najstarszego zamówienia

 

Aby wybrać najstarsze zamówienie używamy funkcji For each row, jeśli wartość _oldest order time jest mniejsza (a więc data-godzina jest "starsza") niż od wartości Order time w obecnie rozważanym rzędzie, to wartość _oldest order time ustawiana jest na tę z obecnego rzędu, a atrybut _oldest order wypełniany jest wartością Order nr. z tego rzędu.

Następna funkcja For each row służy kolorowaniu odpowiednich komórek – dla najstarszego rzędu (który wcześniej wyznaczyliśmy) używamy reguł Set cell font color oraz Set cell font decoration. W przypadku reguły kolorującej komórkę, kolor możemy podać w różnych formatach, zarówno nazwą (red, blue, green) jak i kodem hex co pozwala na wybranie dowolnych wartości. W przypadku dekoracji, mamy do wyboru normalny tekst, pogrubiony, podkreślony oraz kursywę.

 

Zrzut ekranu 9. Reguła kolorująca tło kolumny status

 

Funkcja For each row została użyta jeszcze raz – tym razem w celu pokolorowania statusu w zależności od jego wartości. Funkcja SET CELL BACKGROUND – pozwala ustawić tło komórki – tym razem kolor został podany w wartościach hex.

Poniżej znajdują się wszystkie funkcje wpływania na wygląd komórek (również te nieużyte w aplikacji):

  • SET CELL FONT COLOR – ustawia kolor czcionki
  • SET CELL BACKGROUND – ustawia kolor tła komórki
  • SET CELL FONT DECORATION – ustawia pogrubienie, kursywę, podkreślenie
  • SET CELL FONT SIZE – ustawia rozmiar czcionki
  • SET CELL FONT FAMILY – ustawia czcionkę tekstu
  • SET CELL STYLE – pozwala wybrać stylowanie CSS komórki

Uwaga: powyższe funkcje powinny być używane wyłącznie wewnątrz funkcji FOR EACH ROW – w innym przypadku system nie wie do którego rzędu się odnieść.