Tworzenie szablonów HTML i PDF
Szablon
Plik szablonu musi być poprawnie zbudowanym plikiem w formacie .html. Dodatkowo plik może zawierać obsługiwane zmienne.
Przykładowy plik szablonu jest domyślnie dołączany do obiegu („Szablon HTML”), a jego zawartość jest następująca:
<!DOCTYPE html>
<html>
<head id="Head1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Drukowanie Reklamacji</title>
</head>
<body>
<form id="form1">
<table border="1" width="760" style="border-color: gray;" cellpadding="4px" cellspacing="0px">
<tr>
<td colspan="4">
Nagłówek
</td>
</tr>
<tr>
<td colspan="2">
Informacje podstawowe.
</td>
<td colspan="2">
Informacje dodatkowe.
</td>
</tr>
<tr>
<td></td>
<td></td>
<td>
{BARCODE1D}
</td>
<td>
{BARCODE2D}
</td>
</tr>
<tr>
<td>
Numer dokumentu:
</td>
<td>
{WFD_ID}
</td>
<td colspan="2" rowspan="4"
</tr>
<tr>
<td>
Sygnatura:
</td>
<td>
{SIGNATURE}
</td>
</tr>
<tr>
<td>
Autor:
</td>
<td>
{I:WFD_CreatedBy}
</td>
</tr>
<tr>
<td>
Osoba przypisana:
</td>
<td>
{I:ASSIGNEDPERSONFULL}
</td>
</tr>
</table>
</form>
</body>
</html>
W celu dodania kodów kreskowych należy w wybranym miejscu źródła umieścić tagi {BARCODE2D}
lub {BARCODE1D}
.
Przygotowany plik należy dodać jako szablon do Procesu szablonów dokumentów.
Tagi
Tworząc szablon wydruku HTML istnieje możliwość stosowania standardowych tagów oraz tagów do wyświetlania zawartości Listy pozycji oraz Tabeli danych.
Poniżej omówiono obsługę wartości pól z tabeli „WFElementsDetails” powiązanych z elementem.
Przykładowa konfiguracja wyświetlania elementów w szablonie HTML:
<table>
{SUBELEMHEADERTEMPLATE:816129ca-3fc5-4894-9b48-ee396592389f}
<tr>
<td>LP</td>
<td>MPK</td>
<td>Netto</td>
<td>Zaakceptował</td>
</tr>
{/SUBELEMHEADERTEMPLATE} {SUBELEMROWTEMPLATE:816129ca-3fc5-4894-9b48-ee396592389f}
<tr>
<td>{DET_LP}</td>
<td>{DET_Att1}</td>
<td>{DET_Value1}</td>
<td>{DET_Att4}</td>
</tr>
{/SUBELEMROWTEMPLATE} {SUBELEMFOOTERTEMPLATE:816129ca-3fc5-4894-9b48-ee396592389f}
<tr>
<td></td>
<td>Suma: {DET_Value1}</td>
<td></td>
</tr>
{/SUBELEMFOOTERTEMPLATE}
</table>
Dobrą praktyką jest umieszczanie konfiguracji w całości wewnątrz tabeli HTML.
W przypadku zdefiniowanego powyżej przykładowego szablonu:
- utworzony zostanie nagłówek
{SUBELEMHEADERTEMPLATE:816129ca-3fc5-4894-9b48-ee396592389f}
, - dla wszystkich elementów utworzone zostaną kolumny: „DET_Att1”, „DET_Value1”, „DET_Att4”
{SUBELEMROWTEMPLATE:816129ca-3fc5-4894-9b48-ee396592389f}
, - możliwe jest użycie nazw „L:DET_Value1”, „L:DET_Att4”, dzięki czemu formatowanie nazw będzie odpowiadać ustawieniom języka przeglądarki użytkownika,
- utworzony zostanie wiersz podsumowania, w którym dla kolumn typu Liczba zmiennoprzecinkowa może być wpisana suma – w przykładzie „DET_Value1”
{SUBELEMFOOTERTEMPLATE:816129ca-3fc5-4894-9b48-ee396592389f}
.
Numer GUID „816129ca-3fc5-4894-9b48-ee396592389f” to identyfikator atrybutu (tabela „WFConfigurations”) definiującego Listę pozycji lub Tabelę danych.
Szczegółowe informacje na temat stosowanie identyfikatora GUID w szablonach HTML dostępne są w ARTYKULE na naszym blogu technicznym.
Stosowanie nagłówka („HEADER”) i stopki („FOOTER”) jest opcjonalne.
Całość tekstu zawartego między {SUBELEMROWTEMPLATE:816129ca-3fc5-4894-9b48-ee396592389f}
a {/SUBELEMROWTEMPLATE}
zostanie powtórzona tyle razy, ile dostępnych jest elementów na Liście pozycji z tagami {DET_…}
zamienionymi na wartości z kolumn tabeli („WFElementDetails”).
W analogiczny sposób obsługiwane są wartości pól atrybutu Tabela danych:
<table>
{SQLGRIDHEADERTEMPLATE:6ba0813f-eebf-498a-a950-81db55177794}
<tr>
<td>{Opis}</td>
<td>{miasto}</td>
<td>Komentarz</td>
</tr>
{/SQLGRIDHEADERTEMPLATE} {SQLGRIDROWTEMPLATE:6ba0813f-eebf-498a-a950-81db55177794}
<tr>
<td>{Opis}</td>
<td>{miasto}</td>
<td>Tekst</td>
</tr>
{/SQLGRIDROWTEMPLATE} {SQLGRIDFOOTERTEMPLATE:6ba0813f-eebf-498a-a950-81db55177794}
<tr>
<td></td>
<td>Suma</td>
<td></td>
</tr>
{/SQLGRIDFOOTERTEMPLATE}
</table>
Przykłady wydruków
Niniejsza sekcja zawiera przykładowe zawartości szablonów HTML dla Listy pozycji i Tabeli danych wraz z wygenerowanymi na ich podstawie tabelami.
Wydruk dla Listy pozycji
Lista pozycji, dla której tworzony jest szablon HTML:
Przykładowy szablon HTML dla powyższej Listy pozycji:
<table>
{SUBELEMHEADERTEMPLATE:816129ca-3fc5-4894-9b48-ee396592389f}
<tr>
<td>ID</td>
<td>Nazwa</td>
<td>Ilość</td>
<td>Cena</td>
<td>Zamówiony przez</td>
<td>Opis</td>
<td>Koszt łącznie</td>
</tr>
{/SUBELEMHEADERTEMPLATE} {SUBELEMROWTEMPLATE:816129ca-3fc5-4894-9b48-ee396592389f}
<tr>
<td>{DET_ID}</td>
<td>{DET_Att1}</td>
<td>{DET_Value2}</td>
<td>{DET_Value1}</td>
<td>{DET_Att2}</td>
<td>{DET_LongText1}</td>
<td>{DET_Value3}</td>
</tr>
{/SUBELEMROWTEMPLATE} {SUBELEMFOOTERTEMPLATE:816129ca-3fc5-4894-9b48-ee396592389f}
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>Suma: {DET_Value3}</td>
</tr>
{/SUBELEMFOOTERTEMPLATE}
</table>
Oznaczenie „816129ca-3fc5-4894-9b48-ee396592389f” umieszczone we frazach {SUBELEMHEADERTEMPLATE:}
, {SUBELEMROWTEMPLATE:}
i {SUBELEMFOOTERTEMPLATE:}
to identyfikator GUID Listy pozycji.
Dla powyższego szablonu (umieszczonego w bloku body
) wygenerowana zostania następująca tabela:
Wydruk dla Tabeli danych
Tabela danych, dla której tworzony jest szablon HTML:
Przykładowy szablon HTML dla powyższej Tabeli danych:
<table>
{SQLGRIDHEADERTEMPLATE:6ba0813f-eebf-498a-a950-81db55177794}
<tr>
<td>Nazwa</td>
<td>Ilość</td>
<td>Cena</td>
<td>Zamówiony przez</td>
<td>Opis</td>
</tr>
{/SQLGRIDHEADERTEMPLATE} {SQLGRIDROWTEMPLATE:6ba0813f-eebf-498a-a950-81db55177794}
<tr>
<td>{ProductName}</td>
<td>{ProductCount}</td>
<td>{ProductPrice}</td>
<td>{OrderedBy}</td>
<td>{ProductDescription}</td>
</tr>
{/SQLGRIDROWTEMPLATE} {SQLGRIDFOOTERTEMPLATE:6ba0813f-eebf-498a-a950-81db55177794}
<tr>
<td></td>
<td></td>
<td>Suma: {ProductPrice}</td>
<td></td>
<td></td>
</tr>
{/SQLGRIDFOOTERTEMPLATE}
</table>
Oznaczenie „6ba0813f-eebf-498a-a950-81db55177794” umieszczone we frazach {/SQLGRIDHEADERTEMPLATE:}
, {/SQLGRIDROWTEMPLATE:}
i {/SQLGRIDROWTEMPLATE:}
to identyfikator GUID Tabeli danych.
Dla powyższego szablonu (umieszczonego w bloku body
) wygenerowana zostania następująca tabela: