Informacje wstępne #
Wydruki w systemie Navigator365 zbudowane są na bazie akcji dzięki czemu możemy wywołać wydruk w ramach procedury obiegu dokumentu, podpiąć go pod przycisk na formularzu czy pod menu.
Przygotowanie szablonu wydruku #
Bazą wydruku jest szablon utworzony w Microsoft Word. Tworzymy szablon tak jak zwykły dokument dodając statyczną treść, która ma się znaleźć na wydruku. Do tego musimy jeszcze powiązać pola dynamiczne na szablonie z danymi z formularza. Do tego używamy pól typu MergeField z korespondencji seryjnej Word.
Przy wstawianiu pól MergeField nie ma znaczenia jak je nazwiemy, ważne, by nazwa była jednoznaczna i pozwalała użytkownikowi na prawidłowe skojarzenie z polem na formularzu dlatego nazwa CompanyNIP która wskazuje na numer NIP firmy jest wygodniejsza od Pole23.
Dodatkowo na szablonie możemy używać specjalnych tagów. Służą one do wydruku specjalnych pól takich jak lista czy obraz lub do określania warunku widocznośi na wydruku.
Wydruk listy
W celu umieszczenia listy na wydruku należy zaznaczyć, gdzie się zaczyna i gdzie się kończy lista. Służą do tego tagi:
<<RangeStart:ListName>> … <RangeEnd:ListName>>
Najwygodniej użyć ich w tabeli – w pierszej i ostatniej kolumnie. Pomiędzy tymi tagami możemy wstawiać pola MergeField odpowiadające kolumną naszej listy
Konstrukcja ta działa tak, że w tabeli wstawianych jest tyle wierszy ile wierszy ma lista podpięta pod pole ListName. Każdy wiersz jest wypełniany danymi z wiersza listy, możemy jednak wstawić też inne dane:
- jeżeli wstawisz jakiś ciąg znaków to będzie on powtarzany w każdym wierszu
- jeżeli wstawisz pole spoza listy (np. CompanyName z przykładu) to dane do tego pola będą brane z formularza ale w każdym wierszu będzie ta sama wartość
- jeżeli wstawić jakiś element dynamiczny, np. numerowanie to Word wstawi do każdego wiersza numer i uruchomi mechanizm czyli w każdym kolejnym wierszu będzie kolejny numer zgodnie z wybranym szablonem.
Pola HTML
Gdybyśmy wstawili pole HTML to na wydruku zobaczylibyśmy wszystkie tagi HTML-owe. Chcąc zobaczyć sformatowany tekst należy użyć tagu html_NazwaPola. System rozpozna ten tag i wstawi sformatowane wartości.
Obrazy
Podobnie jak w przypadku pola HTML chcąc wstawić obraz do wydruku powinniśmy go oznaczyć tagiem Picture:NazwaPola
Warunki
Ostatnim tagiem, którego możemy użyć jest tag warunkowy. Składa się on z dwóch elementów – otwierającego i zamykającego – przez co jest podobny do oznaczenia listy. Tag wygląda następująco:
<<VisibleStart:Condition>>
…
<VisibleEnd:ListName>>
Uwaga: Tagi VisibleStart i VisibleEnd muszą być w osobnych wierszach. Tag działa w ten sposób, że jeżeli warunek jest prawdziwy to na wydruku pojawiają się dane zawarte pomiędzy tagami, jeżeli warunek jest fałszywy to nie pojawia się nic. Pomiędzy tagami można wstawić dowolne wartości – statyczny tekst bądź dynamiczne wartości pobierane z formularza poprzez MergeField.
Przykład prostego dokumentu Word z zaznaczonymi tagami:
Przy tworzeniu szablonu Word można korzystać ze wszystkich narzędzi służących do formatowania tekstu. Przygotowany wydruk będzie zgodny z formatowaniem wprowadzonym w szablonie. Dodatkowo pola MergeField można formatować na szablonie co jest szczególnie przydatne dla pól typu data czy liczba. Więcej szczegółów na temat formatowania pól można przeczytać w dokumentacji Microsoft.
Konfiguracja akcji #
Gdy mamy już przygotowany szablon możemy przystąpić do konfiguracji wydruku w Navigatorze. Do tego służy akcja Generuj PDF/Word którą znajdziemy w sekcji Załączniki.
Po wybraniu tej opcji mamy standardowy panel konfiguracji akkcji, w którym musimy podać parametry wydruku oraz powiązania pomiędzy polami na szablonie a polami na formularzu.
Szablon wzorcowy: Navigator pozwala na dynamiczne wskazywanie szablonów wydruku. Możemy mieć np. kilka rodzajów umów i do każdej osobny szablon. Budowanie dla każdego szablonu osobną procedurę z akcją generowania PDF/Word byłoby bardzo niewygodne dlatego powstał mechanizm dynamicznego wskazywania szablonu. Istnieje jedno ważne ograniczenie – wszystkie szablony używane w akcji muszą mieć takie same pola. Wystarczy wtedy wskazać jeden wzorcowy szablon z którego pobrane zostaną pola i na ich podstawie skonfigurować powiązania z formularzem. Do tego właśnie służy opcja Szablon wzorcowy, wskazujemy tu szablon, z którego będą brane pola do konfiguracji. Jeżeli nie wskażemy żadnego źródła szablonu to akcja weźmie szablon wzorcowy jako podstawę do wydruku.
Żródło szablonu: w tym miejscu możemy wskazać źródło szablonu. Należy tu wzkasać atrybut typu Załącznik. Może to być np. pole na formularzu, które dynamicznie będzie uzupełniane właściwym załącznikiem albo też odwołanie poprzez listę do pól na innych formularzach. Jeżeli chcemy np. stworzyć kilka typów umów i do każdej podpiąć inny szablon to tworzymy formularz Typ umowy, na tym formularzu dodajemy pole typu Załącznik i nazywamy go np. Szablon a następnie na formularzy umowy dodajemy pole Typ umowy z podpiętą listą Typy umów. Teraz wystarczy w akcji wskazać pole Szablon poprzez powiązanie przez listę i mieć dynamiczny wybór szablonu do akcji Generuj PDF/Word
Zapisz plik wynikowy jako załącznik: wskazujemy tutaj atrybut typu Załącznik na formularzu do którego będzie dodany wygenerowany plik
Zapisz plik wynikowy jako globalną zmienną: wskazujemy tu zmienną do której zostanie zapisany plik. Taką zmienną możemy później użyć w innych akcjach.
Pobierz w przeglądarce: po zaznaczeniu tej opcji system automatycznie pobierze plik na dysk lokalny po wykonaniu akcji generowania PDF/Word
Typ pliku wynikowego: wybór typu generowanego pliku. Możemy wybrać plik PDF lub Word. W przypadku wybrania pliku Word możemy go później przekonwertować na PDF akcją Przekształć załącznik
Nazwa pliku wynikowego: Określenie nazwy generowanego pliku. Tak jak w każdym polu z mentionsami można tu łączyć statyczny tekst z danymi z formularza.
Ostatnim elementem do skonfigurowania jest lista pól, które należy zmapować z szablonem. Najwygodniej pobrać je po prostu z szablonu. Na poniższym przykładzie pokazujemy cały proces konfiguracji prostego wydruku.
Jak widać system rozpoznaje tagi i prawidłowo przypisuje do nich klucze. Teraz wystarczy tylko wskazać pola na formularzu, które przypiszemy do wartości z szablonu a w przypadku warunku – w standardowy sposób skonfigurujemy warunek i już można uruchomić proces.
Efekt działania widać na tym przykładzie. Proszę zwrócić uwagę na warunek widoczności na wydruku – ukryty jest zarówno napis statyczny jak i pole z formularza zaś sterowanie widocznością odbywa się poprzez przełącznik na formularzu.