Modyfikacja wydruków dokumentów

Definicje wydruków

Definicje wydruków znajdują się w katalogu Printouts w katalogu instalacyjnym Comarch WMS Magazynier. Każda definicja znajduje się w oddzielnym katalogu, którego nazwa jest jednocześnie nazwą definicji. Wewnątrz katalogu muszą zostać umieszczone co najmniej trzy pliki definiujące źródło danych - Data.xml, układ wydruku - Layout.xml oraz jego wygląd - Styles.xml. Każdy z tych plików musi być poprawnym plikiem xml o określonej nazwie. Dokładna struktura każdego z tych plików została opisana w poszczególnych artykułach: Data.xml, Layout.xml, Styles.xml.

Źródło danych

Źródło danych dla wydruku musi zostać umieszczone w pliku o nazwie Data.xml. Głównym elementem w pliku jest sekcja data wewnątrz której musi się znaleźć dokładnie jeden element setf. Wewnątrz elementu setf musi się znaleźć jeden lub więcej elementów set. Każdy element set reprezentuje jeden zbiór danych (wynik jednego zapytania SQL). Musi on zawierać dwa elementy podrzędne: name - który określa nazwę zbioru oraz query, które definiuje zapytanie SQL na bazie danych systemu ERP XL.
Uwaga
Prezentowane zapytania SQL mogą różnić się w zależności od wersji systemu ERP XL.
  Przykładowy plik Data.xml
Przykład
<?xml version="1.0" encoding="utf-8"?> <data> <setf> <set> <name>DocumentPositions</name> <query> SELECT A.Code, A.Name, I.Quantity, I.RealizedQuantity, A.BasicUnitSymbol, CAST(I.RealizedQuantity * ISNULL(AU.Denominator, 1) / ISNULL(AU.Nominator, 1) as DECIMAL(19,4)) as SecondaryQuantityRealized, ISNULL(AU.UnitSymbol, A.BasicUnitSymbol) as SecondaryUnitSymbol FROM WMS.Items I JOIN WMS.vArticles A ON I.ArticleId = A.Id LEFT JOIN WMS.vArticleUnits AU on AU.ArticleId = I.ArticleId AND AU.UnitId = I.SecondaryUnitId WHERE I.DocumentId = @DocumentId </query> </set> <set> <name>CompanyData</name> <query> SELECT Frm_GidFirma as CompanyUnitId, Frm_Nazwa1 as CompanyFullName, Frm_Ulica as Street, Frm_KodP as ZipCode, Frm_Miasto as [City], Frm_NipPrefiks as NipPrefiks, Frm_NIP as NIP, Frm_telefon1 as Phone, Frm_Email as Email FROM [CDN].[Firma] WHERE Frm_DataArc = 0 </query> </set> </setf> </data>
  Zapytanie może być standardowym zapytaniem SQL lub nazwą procedury składowanej, która zwraca żądany wynik. Aby skorzystać z procedury składowanej do elementu query należy dodać atrybut type z wartością StoredProcedure.
Wskazówka
Przy wykonywaniu zapytań z pliku Data.xml przekazywane są do nich parametry zależne od typu oraz kontekstu wydruku. Jakie parametry przekazywane są do określonego typu wydruku można sprawdzić w tabeli [WMS].[PrintoutsArguments]. W przykładzie powyżej wykorzystany został jeden parametr @DocumentId.

Układ wydruku

Zawartość oraz układ wydruku definiowany jest w pliku Layout.xml. Głównym elementem w pliku jest document. Musi zawierać on co najmniej element body, który zawiera główną część wydruku. Dodatkowo w elemencie document może zostać umieszczony element title oraz wiele elementów header oraz footer. Zawartość elementów body, header oraz footer może zostać skomponowana z innych elementów opisanych poniżej. Elementy te mogą być zagnieżdżane.

Elementy

Wszystkie dostępne elementy, które mogą zostać zastosowane podczas tworzenia układu wydruku zostały opisane poniżej. Opis każdego elementu zawiera następujące sekcje:
  • Zawartość - opisuje jakie elementy podrzędne można umieścić wewnątrz danego elementu.
  • Parametry - opisuje wszystkie dostępne atrybuty jakie można dodać do elementu i co oznaczają.
  • Elementy stylujące - zawiera listę selektorów, które dopasowują dany element w pliku Styles.xml
  • Elementy podrzędne - opcjonalna sekcja opisująca elementy, które mogą wystąpić tylko wewnątrz danego elementu. Dla każdego elementu podrzędnego zachowany jest układ opisu taki sam jak dla głównego elementu.
  • Przykład - zawiera fragment kodu z przykładowym wykorzystanie opisywanego elementu.
 
Nazwa Barcode
Opis Kod kreskowy
Zawartość Wewnątrz elementu barcode umieszczane są dane tekstowe, które mają być przez ten kod zakodowane
Parametry
  • type - określa typ kodu kreskowego. Możliwe wartości: upc-a, upc-e, upc 2 digit ext., upc 5 digit ext., ean-13, jan-13, ean-8, itf-14, codabar, postnet, bookland/isbn, code 11, code 39, code 39 extended, code 39 mod 43, code 93, logmars, msi, interleaved 2 of 5, standard 2 of 5, code 128, code 128-a, code 128-b, code 128-c, telepen, fim, pharmacode
  • height - wysokość bazowa kody kreskowego w px. Wartość domyślna to 50
Elementy stylujące
  • Barcode
Przykład
<barcode type="Code 93"><data set="DocumentHeader" var="EAN" /></barcode>
 
Nazwa  Body
Opis Główna sekcja wydruku
Zawartość Dowolny element nietekstowy.
Parametry Brak
Elementy stylujące
  • Body
Przykład
<?xml version="1.0" encoding="utf-8"?> <document> <title><data set="DocumentHeader" var="NumberString" /></title> <body> [zawartość wydruku] </body> </document>
 
Nazwa Br
Opis Złamanie linii w tekście
Zawartość Element nie może zawierać żadnych elementów
Parametry Brak
Elementy stylujące Brak
Przykład
<p>Tekst<br/> w wielu<br/>liniach</p>
 
Nazwa Data
Opis Element zwracający dane ze źródła danych w postaci tekstowej
Zawartość Element nie może zawierać żadnych elementów
Parametry
  • set - nazwa zestawu danych
  • var - nazwa kolumny
  • index - indeks wiersza ze źródła danych (wartość domyślna 0)
  • format - todo
Elementy stylujące Brak
Przykład
<barcode type="Code 93"><data set="DocumentHeader" var="EAN" /></barcode>
 
Nazwa Footer
Opis Stopka wydruku
Zawartość Dowolny element nietekstowy.
Parametry
  • page - strona wydruku. Jeżeli nie podamy tego parametru to stopka traktowana jest jako stopka główna. Możliwe wartości: first - pierwsza strona, last - ostatnia strona, even - strona parzysta
Elementy stylujące
  • Footer
Przykład
<?xml version="1.0" encoding="utf-8"?> <document> <footer page="last"> <p>Stopka ostatniej strony</p> </footer> <footer> <p class="footer">Strona <pageNumber/> z <numOfPages/></p> </footer> <body> [...]
 
Nazwa Header
Opis Nagłówek wydruku
Zawartość Dowolny element nietekstowy
Parametry
  • page - strona wydruku. Jeżeli nie podamy tego parametru to nagłówek jest traktowany jako nagłówek główny. Możliwe wartości: first - pierwsza strona, even - strona parzysta
Elementy stylujące
  • Header
Przykład
<?xml version="1.0" encoding="utf-8"?> <document> <header> <p>Nagłówek</p> </header> <body> [...]
 
Nazwa Horizontal
Opis Podział na sekcje ułożone poziomo
Zawartość Jeden lub więcej elementów section
Parametry Brak
Elementy stylujące Brak
Elementy podrzędne
  • Section
 
Nazwa Horizontal: Section
Opis Sekcja
Zawartość Dowolne elementy nietekstowe
Parametry
  • weight - waga szerokości kolumny. Wartość domyślna 1.
Elementy stylujące
  • Section
Przykład
<horizontal> <section><p class="sign">Dokument wystawił</p></section> <section weight="0,1"></section> <section><p class="sign">Towar wydał</p></section> <section weight="0,1"></section> <section><p class="sign">Data odbioru</p></section> <section weight="0,1"></section> <section><p class="sign">Towar odebrał</p><p class="footer">Strona <pageNumber/> z <numOfPages/></p></section> </horizontal>
 
Nazwa Hr
Opis Linia pozioma
Zawartość Element nie może zawierać żadnych elementów
Parametry Brak
Elementy stylujące
  • Hr
Przykład
<p>tekst1</p> <hr /> <p>tekst2</p>
 
Nazwa If
Opis Element testowy pozwalający na układ wydruku zależny od dowolnych warunków
Zawartość Element test oraz co najmniej jeden z elementów true i false
Parametry Brak
Elementy stylujące Brak
Elementy podrzędne
  • Test
  • True
  • False
 
Nazwa If: Test
Opis Element zawierający warunek decydujący o tym czy do wydruku zostaną dodane elementy z sekcji true czy false . Warunek może być dowolnym wyrażeniem logicznym zawierającym podstawowe operacje matematyczne, porównania. Może on także zawierać nawiasy.
Zawartość Dowolne elementy tekstowe
Parametry Brak
Elementy stylujące Brak
 
Nazwa If: True
Opis Element zawierający elementy, które zostaną w przypadku kiedy warunek z sekcji test zostanie spełniony.
Zawartość Dowolne elementy, które mogą zostać umieszone w rodzicu elementu test
Parametry Brak
Elementy stylujące Brak
 
Nazwa If: False
Opis Element zawierający elementy, które zostaną w przypadku kiedy warunek z sekcji test nie zostanie spełniony.
Zawartość Dowolne elementy, które mogą zostać umieszone w rodzicu elementu test
Parametry Brak
Elementy stylujące Brak
Przykład
<if> <test><data set="DocumentsPositions" var="Id" /> < 3123</test> <true> <horizontal> <section weight="2"> <p><data set="DocumentsPositions" var="Name" /></p> <p><data set="DocumentsPositions" var="Barcode" /></p> </section> <section weight="3"> <p><data set="DocumentsPositions" var="Name" /></p> <p><data set="DocumentsPositions" var="Barcode" /></p> </section> </horizontal> </true> <false> <p><data set="Header" var="CompanyName" /></p> </false> </if>
 
Nazwa Image
Opis Obraz z bazy lub z dysku.
Zawartość Element nie może zawierać żadnych elementów.
Parametry
  • path - ścieżka do pliku względnie do katalogu głównego definicji wydruku. Jeżeli ustawiamy parametr path pozostałe parametry będą ignorowane.
  • set - Nazwa źródła danych
  • var - Nazwa kolumny w źródle danych
  • index - Indeks wiersza w źródle danych
Elementy stylujące
  • Image
Przykład
<image path="logowms.png" /> <image set="Header" var="Logo" />
 
Nazwa PageNumber
Opis Numer aktualnej strony.
Zawartość Element nie może zawierać żadnych elementów.
Parametry Brak
Elementy stylujące Brak
Przykład
<footer> <p class="footer">Strona <pageNumber/> z <numOfPages/></p> </footer>
 
Nazwa P
Opis Paragraf
Zawartość Dowolny element tekstowy
Parametry Brak
Elementy stylujące P
Przykład
<p class="date">Data wystawienia:&#160;<data set="DocumentHeader" var="DocumentCreationDate" /></p>
 
Nazwa RowNumber
Opis Numer aktualnego wiersza tabeli
Zawartość Element nie może zawierać żadnych elementów
Parametry Brak
Elementy stylujące Brak
Przykład
<table set="DocumentPositions"> <column weight="2" description="Lp." class="number"> <rowNumber /> </column> <column weight="12" description="[Kod] Nazwa towaru"> [<tableData var="Code" />] <tableData var="Name" /> </column> </table>
 
Nazwa StaticTable
Opis Tabela statyczna o ustalonej liczbie kolumn oraz wierszy
Zawartość Element head oraz jeden lub więcej elementów row
Parametry Brak
Elementy stylujące
  • StaticTable
Elementy podrzędne
  • Head
  • Column
  • Row
  • Cell
 
Nazwa StaticTable: Head
Opis Element definiujący nagłówek tabeli.
Zawartość Jeden lub więcej elementów column
Parametry Brak
Elementy stylujące Brak
 
Nazwa StaticTable: Column
Opis Element definiujący pojedynczą kolumnę tabeli.
Zawartość Dowolne elementy nietekstowe
Parametry
  • weight - waga szerokości kolumny. Wartość domyślna 1
Elementy stylujące
  • HeadCell
 
Nazwa StaticTable: Row
Opis Element definiujący pojedyńczy wiersz tabeli
Zawartość Jeden lub więcej elementów cell
Parametry Brak
Elementy stylujące Brak
 
Nazwa StaticTable: Cell
Opis Element definiujący pojedynczą komórkę wiersza tabeli.
Zawartość Dowolne elementy nietekstowe.
Parametry
  • collspan - parametr mówiący o tym ile kolumn ma zajmować dana komórka (parametr pozwalający na scalanie komórek tabeli).
  • rowspan - parametr mówiący o tym ile wierszy ma zajmować dana komórka (parametr pozwalający na scalanie komórek tabeli).
Elementy stylujące
  • Cell
Przykład
<staticTable class="customer"> <head> <column weight="1"><p class="tableHead">Odbiorca</p></column> <column weight="1"><p class="tableHead">Nabywca</p></column> </head> <row> <cell> <p class="customer"><data set="DocumentHeader" var="CustomerName" /><br/> <data set="DocumentHeader" var="Street" /><br/> <data set="DocumentHeader" var="ZipCode" /> <data set="DocumentHeader" var="City" /><br/> NIP: <data set="DocumentHeader" var="Tin" /><br/> </p> </cell> <cell> <p class="customer"><data set="DocumentHeader2" var="CustomerName" /><br/> <data set="DocumentHeader2" var="Street" /><br/> <data set="DocumentHeader2" var="ZipCode" /> <data set="DocumentHeader2" var="City" /><br/> NIP: <data set="DocumentHeader2" var="Tin" /><br/> </p> </cell> </row> <row> <cell collspan="2"> <p>...</p> </cell> </row> </staticTable>
 
Nazwa Table
Opis Tabela dynamiczna o ustalonej liczbie kolumn.
Zawartość Jeden lub więcej elementów column
Parametry
  • split - określa czy tabela może zostać podzielona na kilka stron. Parametr może przyjmować wartość true lub false .
  • set - nazwa zestawu danych.
Elementy stylujące
  • Table
Elementy podrzędne
  • Column
  • TableData
 
Nazwa Table: Column
Opis Element definiujący kolumnę tabeli.
Zawartość Dowolne elementy tekstowe
Parametry
  • description - nagłówek kolumny.
  • weight - waga szerokości kolumny. Wartość domyślna 1
Elementy stylujące
  • DataCell
  • HeadCell
 
Nazwa Table: TableData
Opis Element zwracający wartość tekstową ze zbioru danych bazującą na zbiorze danych tabeli, kolumnie podanej w parametrze var oraz aktualnym wierszu tabeli.
Zawartość Element nie może zawierać żadnych elementów.
Parametry
  • var - nazwa kolumny ze zbioru danych.
Elementy stylujące Brak
Przykład
<table set="DocumentPositions"> <column weight="2" description="Lp." class="number"> <rowNumber /> </column> <column weight="12" description="[Kod] Nazwa towaru"> [<tableData var="Code" />] <tableData var="Name" /> </column> <column weight="4" description="Ilość" class="number"> <tableData var="RealizedQuantity" /> </column> <column weight="4" description="Jm. (podstawowa)"> <tableData var="BasicUnitSymbol" /> </column> <column weight="4" description="Ilość" class="number"> <tableData var="SecondaryQuantityRealized" /> </column> <column weight="4" description="Jm. (pomocnicza)"> <tableData var="SecondaryUnitSymbol" /> </column> </table>
 
Nazwa Title
Opis Tytuł dokumentu używany do nazwania pliku PDF.
Zawartość Dowolny element tekstowy.
Parametry Brak
Elementy stylujące Brak
Przykład
<title><data set="DocumentHeader" var="NumberString" /></title>

Wygląd wydruku

Poniższy dokument składa się z opisu trzech części składających się na wygląd wydruku:
  • Atrybuty zawężające
  • Selektory
  • Reguły
Dostosowanie wygląd wydruku możliwe jest poprzez plik Styles.xml. Głównym elementem pliku jest style, który zawiera elementy określające wygląd poszczególnych elementów wydruku zdefiniowanych w pliku Layout.xml. Jednym z elementów podrzędnych elementu style jest element fonts, który określa wszystkie fonty, które zostaną wykorzystane w wydruku. Może on zawierać, jeden lub więcej elementów font, który definiuje krój, wielkość, wygląd oraz styl fontu.
Przykład
<font name="title" face="Arial" size="20" color="#9fc54c"/>
Atrybuty elementu font to:
  • name - określa nazwę fontu, przez którą możemy się do niego odwołać
  • face - nazwa kroju fontu
  • size - rozmiar w punktach
  • color - kolor
  • style - style fontu. Może zawierać jedną (lub więcej wartości oddzielonych znakiem spacji) z wartości bold, italic, underline.
Wewnątrz elementu fonts powinien znaleźć się także jeden element font z pominiętym atrybutem name. Font ten będzie stosowany jako font domyślny dla wydruku.
Przykład
<fonts> <font face="Trebuchet MS" size="10"/> <font name="title" face="Arial" size="20" color="#9fc54c"/> <font name="header" face="Tahoma" size="8" color="#999999"/> <font name="summary_value" face="Trebuchet MS" size="15" color="#9fc54c" style="bold"/> </fonts>
  Oprócz elementu fonts w pliku Styles.xml mogą znajdować się elementy w schemacie:
<selektor>
<reguła/>
<reguła/>
[...]
</selektor>
Gdzie selektor decyduje o tym, czy podległe mu reguły zostaną zastosowane dla danego elementu. Większość selektorów ma taką samą nazwę jak element, który stylują. Np. w celu ostylowania paragrafu (element p w pliku Layout.xml ) należy zastosować selektor p.  
Przykład
<p> <margin top="5"/> </p>
Powyższy przykład wszystkim paragrafom wydruku ustawi margines górny na 5 punktów. Selektor może wybrać do ostylowania tylko wybrane elementy danego typu. W tym celu do elementu w pliku Layout.xml oraz selektora w pliku Styles.xml należy dodać atrybut class. Selektor wybierze wtedy tylko te elementy, które mają identyczną wartość atrybutu class.  
Przykład
<p> <text font="normal"/> </p> <p class="title"> <text font="title"/> </p>
Powyższy przykład ustawi font wszystkich paragrafów na normal ale te, których atrybut class to title zostanie ustawiony font title. Dokładny opis innych atrybutów selektorów oraz spis reguł stylujących znajduje się w sekcji Wygląd. Lista selektorów oraz reguł, które można zastosować dla danego elementu znajduje się w opisie poszczególnych elementów w sekcji Układ. Reguły z pliku Styles.xml stosowane są od góry do dołu tzn. jeżeli dwa selektory dopasują ten sam element i zawierają one takie same reguły z innymi wartościami to zostanie zastosowana wartość występująca później.

 

Atrybuty zawężające

Opis każdego selektora zawiera listę elementów, które styluje oraz listę reguł, jakie można w nim umieścić. Opis każdej reguły zawiera listę atrybutów jakie można w niej zastosować. Każdy selektor może zostać zawężony poprzez atrybut class. Dodatkowo selektory elementów związane z tabelami mogą zostać zawężone poprzez atrybut index, który może zawierać liczbę całkowitą lub wyrażenie postaci An+B, gdzie A oraz B to liczby całkowite. Selektor taki dopasuje element, jeżeli zgadza się on z indeksem wiersza tabeli (wiersze tabeli numerowane są od 0 z góry na dół). Przykłady:
  • index="0" - dopasuje pierwszy wiersz w tabeli
  • index="first" - dopasuje pierwszy wiersz w tabeli
  • index="last" - dopasuje ostatni wiersz w tabeli
  • index="5" - dopasuje szósty wiersz w tabeli
  • index="2n" - dopasuje parzyste wiersze tabeli tzn. z indeksem równym 0,2,4... czyli wiersze pierwszy, trzeci, piąty...
  • index="3n+1" - dopasuje wiersze z indeksem 1, 4, 7...
  • index="3n+2" - dopasuje wiersze z indeksem 2, 5, 8...
 

Selektory

 
Nazwa Barcode
Opis Selektor dla kodu kreskowego
Elementy stylowane
  • Barcode
Parametry zawężające
  • class
Reguły
  • fit
 
Nazwa Body
Opis Selektor dla głównego elementu wydruku
Elementy stylowane
  • Body
Parametry zawężające
  • class
Reguły
  • page
  • margin
 
Nazwa Cell
Opis Selektor dla komórki w tabeli statycznej
Elementy stylowane
  • Cell
Parametry zawężające
  • class
  • index
Reguły
  • border
  • background
  • text
 
Nazwa DataCell
Opis Selektor dla komórki w tabeli dynamicznej
Elementy stylowane
  • Column
Parametry zawężające
  • class
  • index
Reguły
  • border
  • background
  • text
 
Nazwa Footer
Opis Selektor dla stopki dokumentu
Elementy stylowane
  • Footer
Parametry zawężające
  • class
Reguły
  • margin
  • text
 
Nazwa HeadCell
Opis Selektor dla komórki nagłówka w tabeli dynamicznej
Elementy stylowane
  • Column
Parametry zawężające
  • class
Reguły
  • border
  • background
  • text
 
Nazwa Header
Opis Selektor dla nagłówka dokumentu
Elementy stylowane
  • Header
Parametry zawężające
  • class
Reguły
  • margin
  • text
  • border
  • background
 
Nazwa Hr
Opis Selektor dla linii poziomej
Elementy stylowane
  • Hr
Parametry zawężające
  • class
Reguły
  • border
 
Nazwa Image
Opis Selektor dla obrazka
Elementy stylowane
  • Image
Parametry zawężające
  • class
Reguły
  • fit
 
Nazwa P
Opis Selektor dla paragrafu
Elementy stylowane
  • P
Parametry zawężające
  • class
Reguły
  • margin
  • text
  • border
  • background
 
Nazwa Section
Opis Selektor dla sekcji
Elementy stylowane
  • Section
Parametry zawężające
  • class
Reguły
  • border
  • background
  • text
 
Nazwa StaticTable
Opis Selektor dla tabeli statycznej
Elementy stylowane
  • StaticTable
Parametry zawężające
  • class
Reguły
  • width
  • border
  • background
  • text
 
Nazwa Table
Opis Selektor dla tabeli dynamicznej
Elementy stylowane
  • Table
Parametry zawężające
  • class
Reguły
  • width
  • border
  • background
  • text
 

Reguły

 
Nazwa Background
Opis Reguła określająca tło elementu
Atrybuty
  • color - kolor tła elementu. Może on być w formacie #RRGGBB lub 0xRRGGBB lub 0xAARRGGBB
 
Nazwa Border
Opis Reguła określająca obramowanie elementu
Atrybuty
  • left - szerokość lewego obramowania.
  • right - szerokość prawego obramowania.
  • top - szerokość górnego obramowania.
  • bottom - szerokość dolnego obramowania.
  • color - kolor obramowania elementu. Może on być w formacie #RRGGBB lub 0xRRGGBB lub 0xAARRGGBB
  • borderStyle - styl obramowania. Może przyjmować jedną z wartości: o dashdot o dashdotdot o dashlargegap o dashsmallgap o dot o none o single
Uwagi Szerokość obramowania może być podana w różnych jednostkach m.in.: cm, in, mm, pt. Domyślną jednostką są punkty.
 
Nazwa borderLeft, borderRight, borderTop, borderBottom
Opis Reguły określające poszczególne części obramowania elementu
Atrybuty
  • width - szerokość obramowania
  • color - kolor obramowania
  • borderStyle - styl obramowania
 
Nazwa Fit
Opis Reguła określająca rozmiar elementu
Atrybuty
  • width - szerokość elementu
  • height - wysokość elementu
Uwagi Szerokość i wysokość może być podana w różnych jednostkach m.in.: cm, in, mm, pt. Stylowany element zachowa swoje proporcje przyjmując mniejszy z podanych wymiarów.
 
Nazwa Margin
Opis Reguła określająca marginesy elementu
Atrybuty
  • left - lewy margines
  • right - prawy margines
  • top - górny margines
  • bottom - dolny margines
Uwagi Szerokość marginesu może być podana w różnych jednostkach m.in.: cm, in, mm, pt.
 
Nazwa Text
Opis Reguła określająca styl tekstu
Atrybuty
  • align - wyrównanie tekstu. Przyjmuje jedną z wartości: o right - wyrównanie do prawej o left - wyrównanie do lewej o justify - wyjustowanie tekstu o center - wyśrodkowanie tekstu
  • indent - wcięcie pierwszej linii tekstu.
  • leftIndent - wcięcie tekstu z lewej.
  • rightIndent - wcięcie tekstu z prawej.
  • font - nazwa fontu zdefiniowana wcześniej w sekcji fonts .
  • color - kolor tekstu. Może on być w formacie #RRGGBB lub 0xRRGGBB lub 0xAARRGGBB
 
Nazwa Width
Opis Reguła określająca szerokość elementu
Atrybuty
  • percentage - procentowa szerokość elementu bazująca na szerokości elementu-rodzica

Przykładowa modyfikacja

W przykładzie do standardowego wydruku dokumentu Zlecenie Wydania Magazynowego dodana zostanie kolumna zawierająca informację o wadze brutto danej pozycji.
Standardowy wydruk dokumentu ZWM
  W celu dodania kolumny należy wprowadzić modyfikację w plikach Data.xml oraz Layout.xml. W pliku Data.xml do zapytania SQL zwracającego dane pozycji dokumentu należy dodać kolumnę z informacją o wadze brutto (I.GrossWeight) według przykładu poniżej. Modyfikację oznaczono kolorem żółtym:
<?xml version="1.0" encoding="utf-8"?>
<data> 
<setf>
<set>
<name>DocumentPositions</name>
<query>
SELECT A.Code, A.Name, I.Quantity, I.RealizedQuantity, A.BasicUnitSymbol,
CAST(I.RealizedQuantity * ISNULL(AU.Denominator, 1) / ISNULL(AU.Nominator, 1) as DECIMAL(19,4)) as SecondaryQuantityRealized,
ISNULL(AU.UnitSymbol, A.BasicUnitSymbol) as SecondaryUnitSymbol, I.GrossWeight
FROM WMS.Items I
JOIN WMS.vArticles A ON I.ArticleId = A.Id
LEFT JOIN WMS.vArticleUnits AU on AU.ArticleId = I.ArticleId AND AU.UnitId = I.SecondaryUnitId
WHERE I.DocumentId = @DocumentId
</query>
</set>
...
  Do pliku Layout.xml należy w tabeli z pozycjami natomiast dodać nową kolumnę Waga brutto według następującego przykładu:
...
<table set="DocumentPositions">
<column weight="2" description="Lp." class="number">
<rowNumber />
</column>
<column weight="12" description="[Kod] Nazwa towaru">
[<tableData var="Code" />] <tableData var="Name" />
</column>
<column weight="4" description="Ilość" class="number">
<tableData var="RealizedQuantity" />
</column>
<column weight="4" description="Jm. (podstawowa)">
<tableData var="BasicUnitSymbol" />
</column>
<column weight="4" description="Ilość" class="number">
<tableData var="SecondaryQuantityRealized" />
</column>
<column weight="4" description="Jm. (pomocnicza)">
<tableData var="SecondaryUnitSymbol" />
</column>
<column weight="4" description="Waga brutto">
<tableData var="GrossWeight" />
</column>
</table>
...
  Po wprowadzeniu modyfikacji wydruk dokumentu ZWM powinien wyglądać następująco:
Wydruk dokumenty ZWM po modyfikacji