dotyczy wersji: 8.1.x; autor: Marcin Wiktor
Celem artykułu jest zademonstrowanie na przykładach funkcjonalności BPS polegającej na tworzeniu wydruków do plików HTML i PDF.
Akcje do generowania wydruków HTML można ustawić jako:
- Akcję na zakończenie,
- Akcję na przejściu ścieżką,
- Przycisk w menu,
- Przycisk w menu (akcja globalna).
Akcje generowania wydruków PDF z kolei można ustawić jako:
- Akcję na wejście,
- Akcję na zakończenie,
- Akcję na przejściu ścieżką,
- Przycisk w menu,
- Przycisk w menu (akcja globalna).
Różnica ta wynika z faktu, że wydruk PDF można skonfigurować tak żeby zapisywał się jako załącznik do przetwarzanego dokumentu. Opis takiej konfiguracji znajduje się w przykładzie nr 2.
1. Przykład realizowanej funkcjonalności – Wniosek urlopowy
Na potrzeby tego artykułu wykorzystany zostanie przykładowy obieg wniosków urlopowych z następującymi atrybutami:
- Data do (data i godzina),
- Data od (data i godzina),
- Data rejestracji wniosku (data i godzina),
- Ilość dni (liczba całkowita),
- Osoba rejestrująca (osoba lub grupa),
- Przełożony (osoba lub grupa),
- Typ nieobecności (pole wyboru),
- Uzasadnienie (wiele wierszy tekstu).
W tym przykładzie wykorzystamy możliwość wygenerowania wydruku HTML oraz wydruku PDF (do wyświetlenia) jako akcja globalna – przycisk w menu. Przycisk będzie dostępny we wszystkich krokach obiegu, poza Rejestracją wniosku.
Pierwszą czynnością będzie otworzenie w przeglądarce nowego dokumentu Wniosku urlopowego oraz włączanie trybu Admina.
Następnie, wśród nowo dostępnych opcji, wybieramy odnośnik „Szablon HTML” i zapisujemy plik na dysku.
Pobrany szablon zawiera spis wszystkich możliwych tagów, jakie możemy użyć w tworzonym dla tego konkretnego obiegu, wydruku HTML.
Spis wszystkich możliwych do użycia w wydrukach tagów jest dostępny w pomocy do BPS Studio (klawisz F1) w temacie „Tagi”. Można tam znaleźć także bardziej zaawansowane tagi, które nie są pokazywane w wygenerowanym szablonie.
Jak można łatwo zauważyć, nazwy tagów to po prostu nazwa kolumny w bazie danych odpowiadającej danemu atrybutowi. W przypadku pól, które składają się z ID i nazwy jak np. {CURRENTUSER}, {DTYPE_name} czy pola wyboru zdefiniowanie jako „picker”, sama nazwa kolumny w tagu zwróci zarówno ID jak i nazwę (wartości są oddzielone znakiem #).
Jeżeli chcemy uzyskać samo ID, wówczas przed nazwą pola należy umieścić I:
W przypadku gdy zależy nam na wyświetleniu samej nazwy, nazwę pola poprzedzamy N:
Dla przykładu niech posłuży nam atrybut „Przełożony”. Sam tag {WFD_AttPeople2} zwróci nam login i nazwę przełożonego. Nam potrzebne jest tylko imię i nazwisko przełożonego, bez loginu. W tym wypadku nazwę kolumny w tagu, poprzedamy N: – {N:WFD_AttPeopl2} i dzięki temu na raporcie będzie wyświetlona tylko nazwa – Borys Szyc.
W naszym wydruku będziemy chcieli umieścić podstawowe informacje o dokumencie oraz wartości wszystkich atrybutów w odpowiednich formatach.
Sam szablon wydruku może być plikiem HTML lub ASPX, w naszych przykładach będziemy stosować jednak tylko pliki html. W przypadku tego procesu zastosujemy prosty szablon:
Szablon zapisujemy jako szablon_wniosek_urlopowy.html
Zapisany szablon należy umieścić w dowolnej bibliotece SharePoint. Nasz szablon zapiszemy na witrynie „Urlopy” w bibliotece „Elementy zawartości witryny”, która jest domyślnie tworzona dla każdej witryny.
Oba wydruki umieścimy jako akcje globalne – przycisk w menu.
W tym celu po wejściu w obieg „Obieg urlopowy” klikamy zakładkę „Akcje globalne” i dodajemy dwie akcje – „Generuj HTML” i „Wydruk PDF”.
Konfiguracja akcji wydruku HTML ogranicza się do podania adresu wcześniej wgranego szablonu html:
W konfiguracji akcji generującej PDF także podajemy adres szablonu, ale ponadto w sekcji „Generuj do …” zaznaczamy „Wyświetl na ekranie” oraz w sekcji „Opcje stopki” odznaczamy „Pokaż stopkę”.
Na koniec, po zaznaczeniu jednej z akcji typu „Przycisk w menu”, obok zakładki „Ustawienia” pojawi się druga o nazwie „Przycisk w menu”.
Możemy w niej skonfigurować np. potwierdzenie żądania wykonania akcji, ograniczenie widoczności czy ikonę akcji. Ponieważ oba przyciski mają być niewidoczne na kroku rejestracji, musimy dodać odpowiedni warunek:
Sprawdźmy teraz czy poprawnie skonfigurowaliśmy obie akcje:
Na koniec zobaczmy efekt jednej z akcji – Generuj HTML
2. Przykład drugi – Proces zapotrzebowania
W tym przykładzie wykorzystamy prosty proces zgłaszania zapotrzebowania.
Wykorzystamy w tym celu 2 atrybuty:
- Data rejestracji (data i godzina),
- Osoba rejestrująca (osoba lub grupa)
- Uwagi (wiele wierszy tekstu)
Oraz listę pozycji składającą się z następujących kolumn:
- Nazwa (pojedynczy wiersz tekstu)
- Kategoria (lista wyboru)
- Koszt (liczba zmiennoprzeciwnkowa, skonfigurowana jako kwota z walutą PLN)
- Opis (wiele wierszy tekstu)
Po zaakceptowaniu wniosku, na przejściu ścieżka będzie generowany wydruk PDF i dołączamy do dokumentu jako załącznik.
Pierwszą czynnością przed stworzeniem naszego wydruku będzie tak jak w pierwszym przykładzie, wygenerowanie szablonu HTML z dostępnymi tagami i na jego podstawie przygotowanie naszego szablonu HTML. Dla tego procesu zastosujemy poniższy szablon:
Szablon zapisujemy jako szablon_zapotrzebowanie.html i podobnie jak w poprzednim przykładzie, umieszczamy w bibliotece „Elementy zawartości witryny”.
Pierwsza część wydruku jest bardzo zbliżona do tej, stworzonej w przykładzie pierwszym, dlatego nie będziemy się nią tu nią zajmować. Zajmiemy się za to częścią, odpowiadającą za wydruk listy pozycji.
Składa się ona z 3 części:
- Nagłówka – {SUBELEMHEADERTEMPLATE:40}
- Części wypisującej wszystkie wiersze tabeli – {SUBELEMROWTEMPLATE:40}
- Stopki – {SUBELEMFOOTERTEMPLATE:40}
Liczba 40 w powyższych tagach oznacza unikalny numer ID listy pozycji.
Do poprawnego wygenerowania zawartości listy wymagana jest tylko środkowa część – {SUBELEMROWTEMPLATE:40}. Nagłówek i stopka są opcjonalne. Nagłówek jednak zawsze warto stosować ze względu na zwiększoną czytelność wygenerowanej listy.
W naszym przykładzie stopkę wykorzystamy do policzenia sumy z pól „Koszt”.
Dobrą praktyką jest umieszczanie całości listy jako tabeli HTML, jednak nie jest wymóg.
Nazwy tagów – podobnie jak przy tych wyświetlających wartość standardowych pól – pochodzą od nazw kolumn, które przechowują wartości danych atrybutów w bazie danych.
Ponieważ zgodnie z założeniami procesu, chcemy żeby wydruk był dołączany do każdego zaakceptowanego dokumentu jako załącznik, musimy skonfigurować odpowiednią akcję.
W tym celu tworzymy nową akcję typu „Generacja PDF” na wejście do kroku „Wnioski zaakceptowane”
Następnie przechodzimy do konfiguracji akcji i uzupełniamy Szablon dokumentu, Nazwę pliku SQL, Opis załącznika SQL i w górnej części sekcji „Generuj do …” zaznaczamy „Do załącznika”
Po przejściu dokumentu do kroku „Zaakceptowane” możemy sprawdzić czy faktycznie dodany został załącznik z prawidłowym wydrukiem:
I sam wydruk:
Drugim specyficznym typem pól w raportach obok list pozycji są Tabele SQL. Tworzy się je analogicznie jak listy, jedyną różnicą są nazwy tagów. Odpowiednio są to:
- Nagłówek – {SQLGRIDHEADERTEMPLATE:ID} {/SQLGRIDHEADERTEMPLATE}
- Zawartość tabeli – {SQLGRIDROWTEMPLATE:ID} {/SQLGRIDROWTEMPLATE}
- Stopka – {SQLGRIDFOOTERTEMPLATE:ID} {/SQLGRIDFOOTERTEMPLATE}