Wprowadzenie do wydruków (Altum, Enterprise, XL)

Wprowadzenie do wydruków (Altum, Enterprise, XL)

W aplikacji Comarch POS dostępne są standardowe wydruki, które można modyfikować i dostosowywać do wymagań Klienta. Definicje wydruków dostępnych na stanowisku POS znajdują się standardowo w lokalizacji: C:\Retail\POS2\Printouts.

Folder z wydrukami Comarch POS

Domyślną lokalizację wydruków można zmienić edytując wpis:

<add key=”PrintoutsDirectory” value=”C:\Retail\POS2\2021_2\Printouts” /> znajdujący się w pliku POS2.exe.config dostępnym w katalogu Comarch Retail POS.

Ścieżka do wydruków w pliku POS2.exe.config

Na stanowisku POS standardowo dostępne są wydruki:

  • Korekty faktury zaliczkowej
  • Faktury zaliczkowej
  • Protokołu przyjęcia zwrotu/reklamacji
  • Noty debetowej
  • Przesunięcia międzymagazynowego
  • Operacji kasowych
  • Zamknięcia zmiany kasjera
  • Protokołu rozbieżności
  • Paragonu
  • Korekty ilościowej paragonu
  • Faktury sprzedaży
  • Korekty ilościowej faktury sprzedaży
  • Zamówienia sprzedaży
  • Oferty sprzedaży
  • Tax Free

Każda definicja znajduje się w oddzielnym katalogu, którego nazwa jest jednocześnie nazwą definicji. Wewnątrz w katalogu muszą zostać umieszczone co najmniej trzy pliki definiujące: źródło danych, układ wydruku oraz jego wygląd. Każdy z tych plików musi być poprawnym plikiem xml o określonej nazwie. W folderze danej definicji wydruku znajdują się pliki:

  • Data.xml
  • Layout.xml
  • logo.png
  • Styles.xml

Folder wydruku paragonu

Dodawanie nowej definicji wydruku dokumentu

Aby dodać nowy wydruk należy utworzyć jego definicję tworząc pliki Data, Layout i Style, następnie zapisać je w formacie xml.

Istnieje możliwość dodania kilku definicji dla jednego dokumentu. Nowe definicje wydruków znajdują się również w folderze C:\Retail\POS2\Printouts.

Po dodaniu dodatkowych definicji wydruku na stanowisku POS podczas wydruku danego dokumentu, operator ma możliwość wyboru definicji wydruku:

Dostępne wydruki dla dokumentu paragon

Na bazie POS istnieją dwie istotne tabele, dotyczące wydruków:

  • Printouts – zawiera informacje o podpiętych wydrukach do danego stanowiska POS, a także aktywności danego wydruku i ilości kopii jakie ma tworzyć
  • PrintoutAvailability – zawiera informacje o dostępnych definicjach wydruków i ich miejscu w systemie

Aplikacja Printouts Editor

Aplikacja umożliwia podgląd wydruku na podstawie przykładowego dokumentu, oraz wprowadzenie modyfikacji istniejących definicji wydruków lub dodania nowej. Aplikacja znajduje się w katalogu instalacyjnym Comarch ERP Altum, domyślna ścieżka: C:\Comarch ERP Altum\Headquarters\PrintoutsEditor.

Uwaga
W przypadku braku instalatora, należy skontaktować się z Asystą Techniczną, w celu udostępnienia aplikacji.

Główne okno aplikacji Printouts Editor

Z górnego menu dostępne są przyciski w sekcji Baza:

  • [Połączenie] – otwiera okno z danymi do połączenia z bazą, należy uzupełnić:
    • Nazwę serwera – serwer SQL z bazą danych POS
    • Nazwę użytkownika – nazwa użytkownika SQL
    • Hasło – hasło użtkownika SQL
    • Nazwę bazy danych – nazwa zrestorowanej bazy POS

Okno logowania połączenia z bazą POS

W oknie po wybraniu przycisku [Login] następuję weryfikacja wprowadzonych danych. Po poprawnym wprowadzeniu danych z prawej strony zostanie wyświetlony komunikat o połączeniu do bazy wprowadzonej w oknie logowania.

  • [Wczytaj Bazę] – umożliwia bezpośrednie wczytanie bazy z wybranej lokalizacji. Należy wybrać plik o rozszerzeniu .mdf

Uwaga
Wybrana baza nie może być zrestorowana na serwerze.

w sekcji Wydruki:

  • [Nowy] – umożliwia tworzenie nowego wydruku, po wybraniu przycisku otwiera się standardowy format wydruku składający się z kilku zakładek

Standardowy format wydruku po wybraniu przycisku [Dodaj]

  • [Otwórz] – otwiera do podglądu/modyfikacji wybraną definicję wydruku
  • [Zapisz] – zapis wprowadzonych zmian w otwartym wydruku

Podgląd definicji wydruku

Po wprowadzeniu danych logowania do połączenia i wybraniu przycisku [Otwórz], użytkownik ma możliwość wybrać definicję wydruku, do podglądu na podstawie istniejącego dokumentu w bazie.

Okno wyboru definicji wydruku

Na przykład użytkownik wybiera z folderu C:\Retail\POS2\Printouts definicję wydruku o nazwie: POS20_PL_ReceiptDetails. Otworzy się widok składający się z kilku zakładek:

  • Data – prezentowane są dane z pliku Data.xml
  • Layout – prezentowane są dane z pliku Layout.xml
  • Style – prezentowane są dane z pliku Style.xml
  • Parameters – należy wprowadzić parametr wydruku, jest to ID odpowiedniego dokumentu istniejącego w bazie POS

Podgląd definicji wydruku POS20_PL_ReceiptDetails

Zakładka Parameters

Po pierwszym otworzeniu wybranej definicji wydruku obok zakładki Parameters pojawia się znak ostrzegawczy z wykrzyknikiem, który informuję o braku parametrów wydruku, przez co fizyczny podgląd wydruku nie jest możliwy.

Zakładka Parameters

Parametrem wydruku jest ID dokumentu z tabeli Documents.TradeDocuments z bazy POS, ponieważ podgląd jest możliwy na przykładowym dokumencie.

Uwaga
Należy pamiętać, żeby w wybranej definicji wydruku otwierany był odpowiedni typ dokumentu na przykład dla POS20_PL_ReceiptDetails musi to być paragon.

Podgląd definicji wydruku na konkretnym przykładzie dokumentu

Po załadowaniu parametrów wydruku, na konkretnym dokumencie widzimy jakie dane wyświetlane są na podglądzie wydruku. Z tego poziomu jesteśmy w stanie modyfikować dane w zakładkach Data, Layout i Style.




Dokumentacja techniczna wydruków

Wstęp

Definicje wydruków znajdują się w katalogu c:\Retail\POS2\Printouts\. 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, układ wydruku oraz jego wygląd. 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 poniżej.

Ź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 data, wewnątrz którego 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.

Przykładowy plik Data.xml

Przykład

<?xml version="1.0" encoding="utf-8"?>
<data>
  <setf>
    <set>
      <name>SummaryAmount</name>
      <query>
        SELECT
        FORMAT(Value,'N2','pl-PL') as Amount, c.Symbol as Currency
        from Configuration.Currencies c, [Documents].[TradeDocuments] ts
        join Documents.Payments dp on dp.DocumentId = ts.Id
        where ts.Id = {0} and c.IsSystem = 1
      </query>
    </set>      
    <set>
      <name>DocumentRates</name>
      <query>
        SELECT cvr.Name as Name,
        FORMAT(dva.NetValue,'N2','pl-PL') as NetValue,
        FORMAT(dva.GrossValue,'N2','pl-PL') as GrossValue,
        FORMAT(dva.VatValue,'N2','pl-PL') as Vat
        FROM Documents.VATAggregates dva
        JOIN Configuration.VATRates cvr ON cvr.id = dva.VATRateId
        where DocumentId={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

Parametry źródła danych

Przy wykonywaniu zapytań z pliku Data.xml przekazywane są do nich parametry zależne od typu oraz kontekstu wydruku. 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ć umieszony element title oraz wiele elementów header oraz footer. Zawartość elementów body, header oraz footer może zostać skomponowana z elementów opisanych w sekcji Układ. Elementy te mogą być zagnieżdżane.

Wygląd wydruku

Dostosowanie wyglądu 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 czcionki, 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ę czcionki
  • face – nazwa kroju czcionki
  • size – rozmiar w punktach
  • color – kolor
  • style – style czcionki. Może zawierać jedną (lub więcej wartości oddzielonych znakiem spacji) z wartośći bolditalicunderline.

Wewnątrz elementu fonts powinien znaleźć się także jeden element font z pominiętym atrybutem name. Czcionka ta będzie stosowana jako domyślny czcionka 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

Przykład

<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.

Układ wydruku

Wszystkie dostępne elementy, które mogą zostać zastosowane podczas tworzenia układu wydruku zostały opisane w tej sekcji. 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.

Elementy

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
Elementy stylujące
  • Barcode
Przykład
<barcode type="Code 93"><data set="DocumentHeader" var="EAN" /></barcode>

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>

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>

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>

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>

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>
[...]

Horizontal i Section

Horizontal
Opis Podział na sekcje ułożone poziomo
Zawartość Jeden lub więcej elementów section
Parametry Brak
Elementy stylujące
  • Header
Elementy podrzędne
  • Section
Section
Opis sekcja
Zawartość Dowolne elementy nietekstowe.
Parametry Brak
Elementy stylujące weight – waga szerokości kolumny. Wartość domyślna 1
Elementy podrzędne
  • Section

Przykład dla Horizontal i 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>

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>

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 false
Parametry Brak
Elementy stylujące Brak
Elementy podrzędne
  • Test
  • True
  • False

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
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
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 dla If

Przykład

<if>
        <test><data set="DocumentsPositions" var="Id" /> &lt; 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>

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" />

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>

P

Opis Paragraf.
Zawartość Dowolny element tekstowy.
Parametry Brak
Elementy stylujące
  • P
Przykład
<p class="date">Data wystawienia: <data set="DocumentHeader" 
var="DocumentCreationDate" /></p>

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=”N." class="number">
                 <rowNumber />
        </column>
        <column weight="12" description=”[Kod] Nazwa towaru">
                 [<tableData var="Code" />] <tableData var="Name" />
        </column></table>

StaticTable

Opis Tabela statyczna o ustalonej liczbie kolumn oraz wierszy.
Zawartość Element head oraz jeden lub więcej elementów row
Parametry split – określa czy tabela może zostać podzielona na kilka stron. Parametr może przyjmować wartość true lub false.
Elementy stylujące
  • StaticTable
Elementy podrzędne
  • Head
  • Column
  • Row
  • Cell
Head
Opis Element definiujący nagłówek tabeli.
Zawartość Jeden lub więcej elementów column
Parametry Brak
Elementy stylujące Brak
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
Row
Opis Element definiujący pojedyńczy wiersz tabeli.
Zawartość Jeden lub więcej elementów cell
Parametry Brak
Elementy stylujące Brak
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

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/>
                         IVA: <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/>
                         IVA: <data set="DocumentHeader2" var="Tin" /><br/>
                         </p>
                 </cell>
        </row>
        <row>
                <cell collspan="2">
                         <p>...</p>
                 </cell>
        </row>
</staticTable>

Table

Opis Tabela dynamiczna o ustalonej lub dynamicznej liczbie kolumn.
Zawartość Jeden lub więcej elementów:

  • column
  • dynamic-columns
  • if (może zawierać tylko elementy column, dynamic-columns lub if)
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
  • Dynamic-columns
  • If
  • TableData
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
Dynamic-columns
Opis Element definiujący serię kolumn o nazwie zdefiniowanej poprzez wyrażenie regularne.
Zawartość Dowolne elementy tekstowe
Parametry names – wyrażenie regularne wybierające kolumny ze źródła danych
Elementy stylujące
  • DataCell
  • HeadCell
If

Element warunkowy pozwalający na pokazanie lub ukrycie wybranych kolumn.

Patrz generyczny element If

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 1 – Kolumny statyczne i warunkowe

Przykład

<table set="DocumentPositions">
        <column weight="2" description="N." class="number">
                 <rowNumber />
        </column>
        <column weight="12" description="[Kod] Nazwa towaru">
                 [<tableData var="Code" />] <tableData var="Name" />
        </column>
                 <if>
                         <test>
                                  <hasColumn var="Column15" /> = 1
                         </test>
                         <true>
                                  <column weight="2" description="Test" class="number">
                                          <tableData var="Column15" />
                                  </column>
                         </true>
                 </if>
        <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>

 

Przykład 2 – Kolumny dynamiczne

Przykład

<table set="DocumentPositions">
        <column weight="2" description="N." class="number">
                <rowNumber />
        </column>
        <column weight="12" description="[Kod] Nazwa towaru">
                 [<tableData var="Code" />] <tableData var="Name" />
        </column>
        <dynamic-columns weight="4" description="Waluta {{1}}" names="Currency(.+)">
                 <tableData var="{{0}}" /> {{1}}
</dynamic-columns>
</table>

Title

Opis Tytuł dokumentu używany do nazwania pliku PDF.
Zawartość Dowolny element tekstowy.
Parametry Brak
Elementy stylujące Brak

 

Wygląd wydruku

Wszystkie elementy stylujące (selektory) oraz reguły stylujące zostały opisane w tej sekcji. 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ć.

Atrybuty zawężające

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

Barcode
Opis Selektor dla kodu kreskowego.
Elementy stylowane
  • Barcode
Parametry zawężające
  • class
Reguły
  • fit
  • margin
  • text
  • border
Body
Opis Selektor dla głównego elementu wydruku.
Elementy stylowane
  • Body
Parametry zawężające
  • class
Reguły
  • page
  • margin
Cell
Opis Selektor dla komórki w tabeli statycznej.
Elementy stylowane
  • Cell
Parametry zawężające
  • class
  • index
Reguły
  • border
  • background
  • text
DataCell
Opis Selektor dla komórki w tabeli dynamicznej.
Elementy stylowane
  • Column
Parametry zawężające
  • class
  • index
Reguły
  • border
  • background
  • text
Footer
Opis Selektor dla stopki dokumentu
Elementy stylowane
  • Footer
Parametry zawężające
  • class
Reguły
  • margin
  • text
  • border
  • background

 

 

HeadCell
Opis Selektor dla komórki nagłówka w tabeli dynamicznej.
Elementy stylowane
  • Column
Parametry zawężające
  • class
Reguły
  • border
  • background
  • text
Header
Opis Selektor dla nagłówka dokumentu
Elementy stylowane
  • Header
Parametry zawężające
  • class
Reguły
  • margin
  • text
  • border
  • background
Hr
Opis Selektor dla linii poziomej.
Elementy stylowane
  • Hr
Parametry zawężające
  • class
Reguły
  • border

 

Image
Opis Selektor dla obrazka.
Elementy stylowane
  • Image
Parametry zawężające
  • class
Reguły
  • fit
P
Opis Selektor dla paragrafu.
Elementy stylowane
  • P
Parametry zawężające
  • class
Reguły
  • margin
  • text
  • border
  • background
Section
Opis Selektor dla sekcji.
Elementy stylowane
  • Section
Parametry zawężające
  • class
Reguły
  • border
  • background
  • text

 

StaticTable
Opis Selektor dla tabeli statycznej.
Elementy stylowane
  • StaticTable
Parametry zawężające
  • class
Reguły
  • width
  • border
  • background
  • text
Table
Opis Selektor dla tabeli dynamicznej.
Elementy stylowane
  • Table
Parametry zawężające
  • class
Reguły
  • width
  • border
  • background
  • text

Reguły

Background

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

Border

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:
    • dashdot
    • dashdotdot
    • dashlargegap
    • dashsmallgap
    • dot
    • none
    • single

Szerokość obramowania może być podana w różnych jednostkach m.in.: cm, in, mm, pt. Domyślną jednostką są punkty.

Stylowanie wybranego elementu obramowania

Istnieje możliwość ostylowania tylko wybranej części obramowania np. tylko lewej krawędzi elementu. W tym celu należy zastosować jeden z wybranych selektorów:

  • borderLeft
  • borderRight
  • borderTop
  • borderBottom

Każdy z tych selektorów może zawierać następujące reguły:

  • width – szerokość obramowania
  • color – kolor obramowania
  • borderStyle – styl obramowania

Fit

Reguła określająca rozmiar elementu.

Atrybuty

  • width – szerokość elementu
  • height – wysokość elementu

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.

Margin

Reguła określająca marginesy elementu.

Atrybuty

  • left – lewy margines
  • right – prawy margines
  • top – górny margines
  • bottom – dolny margines

Szerokość marginesu może być podana w różnych jednostkach m.in.: cm, in, mm, pt.

Page

Reguły specjalne dla strony.

Atrybuty

  • orientation – orientacja strony
  • size – rozmiar strony
  • width – szerokość strony
  • footer-distance – odległość stopki od dołu strony
  • header-distance – odległość nagłówka od góry strony

Text

Reguła określająca styl tekstu.

Atrybuty

  • align – wyrównanie tekstu. Przyjmuje jedną z wartości:
    • right – wyrównanie do prawej
    • left – wyrównanie do lewej
    • justify – wyjustowanie tekstu
    • 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

Width

Reguła określająca szerokość elementu.

Atrybuty

  • percentage – procentowa szerokość elementu bazująca na szerokości elementu-rodzica.

 




Udostępnienie wydruku na stanowisku POS (Comarch ERP Altum)

Po stworzeniu swojego wydruku należy go zaimportować po stronie Altum. W tym celu otwieramy okno konfiguracji wydruków (Konfiguracja -> Narzędzia -> Wydruki). Odnajdujemy miejsce gdzie chcemy wpiąć wydruk.

Lista możliwych miejsc gdzie można wpiąć wydruk dostępny na stanowisku POS:

  • Szczegóły faktury sprzedaży
  • Szczegóły paragonu
  • Szczegóły operacji kasowo-bankowej
  • Szczegóły korekty ilościowej faktury sprzedaży
  • Szczegóły korekty ilościowej paragonu
  • Szczegóły zmiany kasjera
  • Raport dzienny
  • Szczegóły reklamacji sprzedaży
  • Szczegóły MM-
  • Szczegóły dokumentu PRP

W każdym z powyższych miejsc wydruk zostanie uruchomiony po zatwierdzeniu / zapisaniu dokumentu danego typu.

Po odnalezieniu właściwego miejsca naciskamy przycisk Dodaj.

Lista wydruków
Lista wydruków

Wpisujemy nazwę wydruku, zmieniamy Typ formatu na POS 2.0.

Dodanie nowego wydruku
Dodanie nowego wydruku

Następnie naciskamy przycisk Zbuduj definicję z grupy przycisków Raport POS 2.0. Otwiera nam się okno gdzie wskazujemy pliki wchodzące w skład wydruku i naciskamy Otwórz.

Budowanie definicji wydruku
Budowanie definicji wydruku

Po zaimportowaniu wydruku do bazy otrzymujemy komunikat o poprawnym zaimportowaniu definicji i zapisujemy wydruk.

Następnie przechodzimy do konfiguracji stanowiska POS na zakładkę wydruki (Konfiguracja -> Struktura praw-> Edytujemy właściwe centrum -> Zakładka Stanowiska POS -> Edycja wybranego stanowiska POS -> Zakładka Wydruki). Na liście dostępnych miejsc dołączamy dodany przed chwilą wydruk.

Na oknie definicji wydruków dostępny jest parametr „Drukuj na domyślnej drukarce systemowej”. Po zaznaczeniu tego parametru wydruk będzie odbywał się na domyślnej drukarce systemowej z pominięciem wyboru drukarki.

Dołączenie wydruku do stanowiska POS
Dołączenie wydruku do stanowiska POS

Okno konfiguracji stanowiska POS zakładka Wydruki
Okno konfiguracji stanowiska POS zakładka Wydruki

Przechodzimy na stanowisko POS, gdzie uruchamiamy aktualizację danych. Po aktualizacji danych nowy wydruk zostaje przesynchronizowany do folderu wskazanego w POS.exe.config w kluczu o nazwie PrintoutsDirectory (domyślnie c:\Retail\POS2\Printouts\ ).

Folder stanowiska POS z przesynchronizowanymi wydrukami
Folder stanowiska POS z przesynchronizowanymi wydrukami

Po synchronizacji wydruku nadawana jest unikalna nazwa (guid).

Na bazie firmowej można zweryfikować, za pomocą poniższego skryptu, który wydruk o jakiej nazwie do folderu o jakiej nazwie został przesynchronizowany.

Zapytanie weryfikujące nazwę folderu wydruku
Zapytanie weryfikujące nazwę folderu wydruku

 




Udostępnienie wydruku na stanowisku POS (Comarch ERP Enterprise)

Aplikacja Comarch POS: Wydruki umożliwia przypisanie wydruków do poszczególnych typów dokumentówOznacza to, że wydruk dla danego dokumentu można zdefiniować globalnie dla jednego lub wszystkich kanałów sprzedaży (jednego lub kilku stanowisk POS, do których jest przypisany dany kanał sprzedaży).

Uwaga
Układ i treść wydruku można następnie indywidualnie dostosować i przypisać do poszczególnych kanałów sprzedaży.

Aplikacja składa się z nagłówka oraz obszaru roboczego.

Aplikacja Comarch POS: Wydruki
Aplikacja Comarch POS: Wydruki

Nagłówek aplikacji

W nagłówku aplikacji znajduje się pole Kod.  W celu zdefiniowania nowego wydruku należy wprowadzić w nim unikalny kod. Aby wyświetlić istniejący wydruk należy wybrać przycisk [Pomoc wyszukiwania wartości]. Po jego wybraniu pojawi się okno z możliwością odszukania odpowiedniej konfiguracji wydruku dla wskazanego kodu.

Funkcja wyszukiwania konfiguracji dla wskazanego kodu wydruku w aplikacji Comarch POS: Wydruki
Funkcja wyszukiwania konfiguracji dla wskazanego kodu wydruku w aplikacji Comarch POS: Wydruki

Po wybraniu przycisku [Start] wyświetlona zostanie lista z możliwością wybrania danego kodu. Istnieje możliwość wyświetlenia listy filtrowanej według wskazanego kodu (oznaczenia wydruku). Po kliknięciu na wybraną konfigurację wydruku zostanie ona wyświetlona w nagłówku aplikacji.

Przykładowy wynik wyszukiwania dla kodu Receipt w aplikacji Comarch POS: Wydruki
Przykładowy wynik wyszukiwania dla kodu Receipt w aplikacji Comarch POS: Wydruki

W nagłówku aplikacji użytkownik ma możliwość zdefiniowania nowej konfiguracji, a także modyfikacji ustawień dla danego kodu oraz usunięcia istniejących już ustawień.

Aby zdefiniować nowy kod należy wybrać przycisk [Nowy] lub [Duplikuj] jeżeli powinno nastąpić powielenie już istniejącego.

Definiowanie nowego wydruku w aplikacji Comarch POS: Wydruki
Definiowanie nowego wydruku w aplikacji Comarch POS: Wydruki

Po wybraniu przycisku [Nowy] w nagłówku pojawi się nowa karta z możliwością określenia poszczególnych wartości w polach:

  • Kod(pole wymagane) – unikalne oznaczenie wydruku
  • Nazwa– nazwa danego wydruku, maksymalna długość nazwy to 255 znaków
  • Organizacja– organizacja, do której zostanie przypisany wydruk
  • Kanał sprzedaży– kanał sprzedaży, dla którego będzie dostępny wydruk

Przykład:

Dla kanału sprzedaży POS_DK użytkownik chce zdefiniować dedykowany wydruk dla faktury sprzedaży. W tym celu zaznacza parametr Aktywny i uzupełnia:

  • Kod– FS
  • Nazwa– Wydruki handlowe – faktura sprzedaży
  • Organizacja – 00000
  • Kanał sprzedaży – DK
  • KStore – Documents à POS à Printouts (ścieżka w repozytorium wiedzy, w której przechowywane są wydruki)
  • Liczba kopii – 1

Zdefiniowany wydruk w aplikacji Comarch POS: Wydruki
Zdefiniowany wydruk w aplikacji Comarch POS: Wydruki

Obszar roboczy

Po wybraniu przycisku [Nowy] w tabeli pojawi się nowy wiersz z możliwością określenia poszczególnych wartości w kolumnach:

  • Widok– pozwala na wskazanie widoku aplikacji odpowiadającego danemu obszarowi stanowiska POS, w którym dany wydruk będzie wykorzystany.

Przykład:

Jeżeli użytkownik wskaże widok Szczegóły faktury sprzedaży, to zdefiniowany wydruk będzie możliwy do wykorzystania dla dokumentu faktury sprzedaży.

  • Dla cyfrowych lub papierowych wydruków– umożliwia wskazanie czy wydruk ma być cyfrowy czy papierowy, jeden wydruk może być dodany zarówno jako cyfrowy jak i papierowy
  • Domyślny– wydruk będzie traktowany jako domyślny dla wskazanego kanału sprzedaży lub organizacji
  • Dostępne przy zatwierdzaniu– zaznaczenie parametru powoduje, że wydruk jest dostępny podczas zatwierdzania dokumentu na stanowisku POS. Jeżeli dla danego widoku dostępnych jest wiele wydruków, użytkownik musi wybrać który ma zostać wydrukowany.

Po wprowadzeniu ustawień należy dokonać zapisu za pomocą przycisku [Zapisz].
W celu udostępnienia danych na stanowisku POS, należy uruchomić aplikację Eksport metadanych POS.




Udostępnienie wydruku na stanowisku POS (Comarch ERP XL)

Aby dodać w Comarch ERP XL wydruk POS należy na Liście załączników dodać załącznik typu Wydruk POS oraz zaznaczyć na nim check, że jest dostępny w aplikacji POS. Następnie należy na Liście oddziałów Comarch POS dodać/edytować stanowisko POS. Po tej operacji wydruk POS zostanie do niego przypięty i należy na nim zaznaczyć, żeby był wysyłany do POS.

Dodawanie wydruku w aplikacji Comarch ERP XL
Dodawanie wydruku w aplikacji Comarch ERP XL




Uruchomienie wydruku na stanowisku POS

Domyślnie wydruk uruchamiany jest po zatwierdzeniu / zapisaniu dokumentu. Wyjątkiem tutaj jest wydruk paragonu (gdzie domyślnie uruchamiany jest wydruk na drukarce fiskalnej zamiast wydruku na zwykłej drukarce).

Ponowny wydruk dokumentu jest dostępny z listy dokumentów lub z poziomu podglądu dokumentu.

Miejsca na stanowisku POS z których możliwe jest uruchomienie wydruku:

  • Lista dokumentów handlowych – możliwy wydruk dokumentu paragonu, faktury sprzedaży, korekty ilościowej paragonu, korekty ilościowej faktury
  • Podgląd dokumentu uruchomiony z listy dokumentów handlowych – wydruk dokumentu który aktualnie jest w podglądzie. możliwy wydruk dokumentu paragonu, faktury sprzedaży, korekty ilościowej paragonu, korekty ilościowej faktury.
  • Zatwierdzenie dokumentu handlowego. Z zależności czy instalacja jest polska czy nie polska (przykładowo we Francji i Niemczech nie ma fiskalizacji na drukarce fiskalnej) zostanie podjęta następująca akcja:
    • Jeśli zatwierdzimy paragon czy fakturę na instalacji polskiej, wydruk zostanie uruchomiony albo na drukarce fiskalnej (w przypadku paragonu) albo na zwykłej drukarce (w przypadku faktury).
    • Jeśli zatwierdzimy paragon czy fakturę na innej instalacji niż polska, wydruk paragonu i faktury zostanie uruchomiony na drukarce zwykłej.
  • Zatwierdzenie dokumentu reklamacji. Dodatkowo wydruk reklamacji jest dostępny z poziomu listy reklamacji oraz z poziomu podglądu dokumentu.
  • Zamknięcie dnia. W trakcie zamykania dnia po zatwierdzeniu zamknięcia uruchamiany jest wydruk
  • Podsumowanie dnia w przypadku wybrania zamkniętego już dnia.
  • Zatwierdzenie dokumentu KP/KW. Dodatkowo wydruk jest możliwy z poziomu podglądu dokumentu.
  • Zatwierdzenie edycji dokumentu MM-. Dodatkowo wydruk jest możliwy z poziomu podglądu dokumentu.
  • Przyjęcie towaru z dokumentu MM-. Dodatkowo wydruk jest możliwy z poziomu podglądu dokumentu.