Formatowanie danych wyświetlanych na formularzu

Facebooktwitterpinterestlinkedinmail
dotyczy wersji: 8.3.1.x; autor: Szymon Patacz

Dane wyświetlane na formularzu powinny być przedstawione w sposób przejrzysty i czytelny. Przykładem tego może być numer konta rachunku bankowego. Domyślnie w formie elektronicznej jest to ciąg 26 cyfr. Dla zwiększenia czytelności w numerze rachunku umieszczane są również spacje zgodnie z poniższym zapisem:

XX  XXXX  XXXX  XXXX  XXXX  XXXX  XXXX

Przedstawię możliwe sposoby na otrzymanie takiej formy zapisu na formularzu workflow.

Dane pobieramy z zewnętrznego źródła.

Pole z numerem rachunku bankowego może być uzupełniane automatycznie na podstawie wybranego Klienta w polu picker.

Źródło danych zazwyczaj zawierać będzie numer rachunku bez spacji. W przypadku źródła SQL możemy sobie z tym poradzić dodając w zapytaniu zwracającym dane zamiast kolumny z numerem konta kolumnę:

(STUFF(STUFF(STUFF(STUFF(STUFF(STUFF(replace(NRB, ' ', ''),3, 0, ' '),8,0,' '),13,0,' '),18,0,' '),23,0,' '),28,0,' ')) as NRB

 

format_p1

Rysunek 1  Przykładowa konfiguracja pickera uzupełniającego numer rachunku bankowego

W powyższym przykładzie dane w kolumnie NRB zawierają ciąg 26 cyfr. Tak skonstruowane zapytanie zwraca dane w bardziej czytelnym zapisie ze spacjami.

format_p2

Rysunek 2   Wygląd formularza

Numer rachunku bankowego zostaje wpisany przez użytkownika ręcznie.

Nie zawsze jednak dane zostają wprowadzone ze spacjami. Aby ujednolicić format wyświetlanych danych dodamy akcję zmiany wartości pola na przejściu ścieżką.

format_p3

Rysunek 3  Konfiguracja akcji

W pierwszej kolejności akcja usuwa z ciągu znaków istniejące spacje. Po usunięciu spacji w  przypadku podania ciągu 26 znaków wstawiane są w odpowiednich miejscach dodatkowe spacje. Jeżeli w polu została wpisana inna liczba znaków wartość pozostaje bez zmian.

W obu sposobach wykorzystana została funkcja STUFF.

Składnia funkcji:

STUFF(tekst do zmiany, początek, długość, wstawiany tekst)

 

Więcej informacji o funkcji możemy uzyskać na stronie https://msdn.microsoft.com/en-us/library/ms188043.asp

Javascript wykonywany na zmianę wartości

Trzeci możliwy sposób polega na zarejestrowaniu skryptu JS formatującego odpowiednio wartość wpisaną w polu.

Sposób ten może być użyty zarówno w przypadku uzupełniania wartości przez pole wyboru jak i przy ręcznym uzupełnianiu danych.

W zakładce zachowanie na obiegu dodajemy dwie funkcje:

function reverse(s) {

  return s.split('').reverse().join('');

}




function add_spaces(str){

str = (reverse(str)).replace(/ /g,'');

replaced = str.replace(/.{4}/g, function(value) {

  return value + ' ';

});

replaced = (reverse(replaced));

return replaced;

}

 

Dodatkowo musimy ustalić kiedy chcemy, aby została wykonana funkcja wstawiająca dodatkowe spacje.

W przypadku ustawiania pola przez picker możemy zarejestrować na zmianę wartości pola wyboru funkcję:

SetValue('AttText1',add_spaces(GetValue('AttText1')));

 

format_p4

 

W przypadku ręcznego uzupełniania pola z numerem rachunku bankowego tą samą funkcję dodajemy na zmianę wartości pola numer rachunku bankowego.

Do poprawnego działania w funkcji musimy podać prawidłową nazwę pola. Możemy to ustalić w zakładce ogólne atrybutu.

format_p5