W aplikacji zostały przygotowane przykładowe wydruki, które można dowolnie modyfikować i dostosowywać do wymagań Klienta.
Wskazówka
Definicje wydruków dokumentów znajdują się domyślnie w katalogu: C:\Program Files (x86)\Comarch Mobile\Serwer synchronizacji\Printouts.
Wskazówka
Definicje wydruków raportów znajdują się domyślnie w katalogu: C:\Program Files (x86)\Comarch Mobile\Serwer synchronizacji\Printouts i podkatalogu odpowiednim dla systemu ERP, np. xl11.
Każdy wydruk składa się z trzech części:
Data – zapytania wyciągające dane wykorzystywane na wydruku,
Layout – układ wydruku,
Style – styl wydruku (czcionki, kolory itp.).
Uwaga
Podczas synchronizacji definicji wydruków na urządzenie brana jest pod uwagę data modyfikacji pliku. W celu wymuszenia synchronizacji wydruku należy wykonać dowolną modyfikację.
Dodanie 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. Przykładowo dla dokumentu Zamówienie Sprzedaży istnieje standardowa definicja składająca się z plików:
1#SalesOrder#data#Wydruk_domyślny.xml
1#SalesOrder#layout#Wydruk_domyślny.xml
1#SalesOrder#style#Wydruk_domyślny.xml
Należy dodać nową zmodyfikowaną definicję zmieniając w nazwie plików liczbę 1 na taką, która wśród definicji nie istnieje oraz frazę Wydruk_domyślny na wybraną przez siebie nazwę definicji, np:
45#SalesOrder#data#Mój_wydruk.xml
45#SalesOrder#layout#Mój_wydruk.xml
45#SalesOrder#style#Mój_wydruk.xml
Po tych czynnościach podczas wydruku dokumentu mamy możliwość wyboru definicji wydruku:
Wybór definicji wydruku
Uwaga
W przypadku zapisu definicji wydruku w Notatniku należy wybrać kodowanie UTF-8.
Dodanie nowej definicji wydruku raportu
W celu dodania definicji wydruku raportu w katalogu Printouts i podkatalogu odpowiednim dla systemu ERP należy utworzyć pliki Data, Layout i Style zawierając w nazwie Id raportu z katalogu Reports serwera synchronizacji. Przykładowo, aby utworzyć definicję wydruku dla raportu Sprzedaż w okresach należy raport ten odszukać w katalogu Reports, nosi on nazwę 3#SalesInPeriods#pol.xml. Kolejno w katalogu Printouts i odpowienim podkatalogu utworzyć jego definicję tworząc pliki data, layout i style zawierając w nazwie jego Id:
46#Report#data#3#Moj_wydruk.xml
46#Report#layout#3#Moj_wydruk.xml
46#Report#style#3#Moj_wydruk.xml
Po tych czynnościach w aplikacji pojawi się możliwość wydruku raportu Sprzedaż w okresach.
Usunięcie definicji wydruku
Aby usunąć istniejący wydruk, należy zmienić ID wszystkich jego elementów na ujemne, następnie zmienić datę modyfikacji i wykonać synchronizację.
Zmiana ID wydruku na ujemne
Licznik wydruków
Funkcjonalność licznika wydruków PDF umożliwia ewidencjonowanie wydrukowanych dokumentów danego typu. Dzięki niej będzie można sprawdzić na bazie mobilnej, które dokumenty zostały wydrukowane i ewentualnie według potrzeby będzie można zablokować możliwość edycji już wydrukowanych dokumentów. Dla potrzeb funkcjonalności na bazie mobilnej została dodana tabela RealizedPrintout, w której można odszukać dokładną datę i godzinę wydruku, rodzaj obiektu, liczbę kopii itp.
Informację o liczbie wydruków będzie można wykorzystać w raportach, np. ilość wydrukowanych dokumentów ZS danego dnia.
Dodatkowe informacje na wydrukach
Na wszystkich wydrukach dostępnych z poziomu aplikacji wprowadzone są dodatkowe informacje, które dotyczą:
numeru wydruku,
identyfikatora określającego, że wydruk został stworzony w aplikacji mobilnej,
liczby kopii wydruku,
identyfikatora operatora.
Dodatkowe dane pozwalają na dokładniejszą weryfikację wydruków wykonanych z poziomu aplikacji przez przedstawicieli.
Źródło danych
Wydruk do pdf
Źródło danych dla wydruku musi zostać umieszczone w pliku o nazwie Data.xml. Głównym elementem w pliku jest sekcja datawewną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 wykonywane na mobilnej bazie danych aplikacji Comarch Mobile.
Uwaga
Prezentowane zapytania SQL mogą różnić się w zależności od wersji aplikacji Comarch Mobile.
Przykład standardowego pliku data.xml występującego w definicji wydruku dokumentu Zamówienie Sprzedaży (1#SalesOrder#data#Wydruk_domyślny.xml):
Przyklad
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE data PUBLIC "//UNKNOWN/" "unknown.dtd">
<data>
<setf><set><name>Header</name><query>...</query></set><set><name>DocumentsPositions</name><query>...</query></set><set><name>VatAggregation</name><query>...</query></set><set><name>Logo</name><query>SELECT Data FROM PrintoutsImages WHERE Name='logo.png'</query></set><set><name>FooterAppVersionNumber</name><query>SELECT MajorVersion AS MajorVersion, MinorVersion AS MinorVersion, BuildVersion AS BuildVersionFROM Packages</query></set><set><name>FooterOperatorCode</name><query>SELECT Name AS OperatorCodeFROM Users</query></set><set><name>FooterCopyNumber</name><query>SELECT CASE WHEN COUNT(Number) = 0 THEN 1 ELSE COUNT(Number) + 1 END AS NumbersFROM Documents INNER JOIN RealizedPrintouts rp ON(Documents.Number = rp.DocumentNumber) WHERE Documents.Id=@Id@ </query></set></setf>
</data>
Wydruk termiczny
Jedyną różnicą w definicji pliku data.xml dla wydruków termicznych względem definicji wydruku do pdf jest brak elementu setf. Przykład takiego wydruku (11#SalesOrder#data#Thermal#Vline112#Wydruk_domyślny.xml) wygląda nastepująco:
Przyklad
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE data PUBLIC "//UNKNOWN/" "unknown.dtd">
<data>
<set><name>Header</name><query>...</query></set><set><name>DocumentsPositions</name><query>...</query></set><set><name>VatAggregation</name><query>...</query></set><set><name>FooterAppVersionNumber</name><query>SELECT MajorVersion AS MajorVersion, MinorVersion AS MinorVersion, BuildVersion AS BuildVersionFROM Packages</query></set><set><name>FooterOperatorCode</name><query>SELECT Name AS OperatorCodeFROM Users</query></set><set><name>FooterCopyNumber</name><query>SELECT CASE WHEN COUNT(Number) = 0 THEN 1 ELSE COUNT(Number) + 1 END AS NumbersFROM Documents INNER JOIN RealizedPrintouts rp ON(Documents.Number = rp.DocumentNumber) WHERE Documents.Id=@Id@ </query></set>
</data>
Układ wydruku
Zawartość oraz układ wydruku definiowany jest w pliku Layout.xml. Głównym elementem w pliku jest document. Musi zawierać on element body, który zawiera główną część wydruku. Zawartość elementów body czy też footermoże zostać skomponowana z innych elementów opisanych poniżej. Elementy te mogą być zagnieżdżane. Parametr class odwołuje się do klasy stylu zdefiniowanej w pliku Styles.xml dla danego elementu stylującego.
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:
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.
Wszystkie dostępne elementy, które mogą zostać zastosowane podczas tworzenia układu wydruku zostały opisane poniżej.
Element testowy pozwalający na układ wydruku zależny od dowolnych warunków
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 mieć postać: eq - równy, lt - mniej niż, gt - więcej niż.
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.
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.
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.
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 pliki #style#.xml, np. standardowym plikiem definiującym wygląd Faktury Sprzedaży jest plik 7#SalesInvoice#style#Wydruk_domyślny.xml. Głównym elementem tego pliku jest style, który zawiera elementy określające wygląd poszczególnych elementów wydruku zdefiniowanych w pliku layout.
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.
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.
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.
Przyklad
<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.
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 style 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...
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łady wydruków fiskalnych
W aplikacji Comarch Mobile Sprzedaż nie ma możliwości modyfikacji wydruków z drukarki fiskalnej. Poniżej prezentowane są przykładowe wydruki paragonu oraz faktury na drukarce fiskalnej. W przypadku faktury drukowana jest również kopia dokumentu.
Przykład wydruku faktury na drukarce fiskalnejPrzykład wydruku paragonu na drukarce fiskalnej
Przykłady wydruków termicznych
W aplikacji Comarch Mobile możliwy jest wydruk dokumentów na drukarce termicznej. Wygląd wydruków można dowolnie modyfikować zgodnie z instrukcją dostępną TUTAJ. Poniżej znajduje się przykład standardowego wydruku termicznego dokumentu Zamówienia Sprzedaży.
Przykład wydruku Zamówienia Sprzedaży na drukarce fiskalnej
Przykłady modyfikacji wydruków do pdf
Dodawanie kolumny
Do omówienia tej modyfikacji, wykorzystany zostanie przykład dodania kolumny zawierającej informację o rabacie.
W celu dodania nowej kolumny należy wyedytować plik #data#. Należy odszukać zapytanie wydobywające dane związane z pozycjami dokumentu. Aby wykorzystać te dane w definicji dokumentu konieczne jest stworzenie aliasu tej kolumny np. Discount. Po dokonaniu zmian zapisujemy dokument.
Dodanie aliasu kolumny odpowiedzialnej za wyświetlanie rabatu
Aby dane te pokazywały się na dokumencie, konieczne jest odpowiednie zmodyfikowanie pliku #layout#, w którym w odpowiedniej sekcji należy dodać kolumnę o nazwie „Rabat”.
W description należy wpisać nazwę kolumny, class - określenie klasy, w tym przypadku jest to numer, var - odniesienie do aliasu kolumny określonej w pliku data tj. Discount. Aby poza wartością rabatu wyświetlany był również symbol procentów, należy dodać na końcu linii znak „%”. Ponieważ rabat powinien być wyświetlany zarówno na dokumencie tworzonym od wartości brutto jak i netto, należy skopiować definicje kolumny do poniższej sekcji. Na koniec zapisujemy zmiany.
Dodanie kolumny Rabat w pliku layout
Zmiana kolorystyki
W celu zmiany kolorystyki wydruku należy wyedytować plik #style#, zmieniając kod koloru dla poszczególnych elementów definicji wydruku w sekcji <fonts>. Kolory podawane są w zapisie heksadecymalnym.
Wskazówka
Zalecanym programem do tej modyfikacji jest Notepad++.
Definicje kolorów w zapisie heksadecymalnym dostępne są w Internecie.
Zmiana koloru w pliku style
Dodawanie/usuwanie/zmiana logo
Aby logo było dodane na wydruku, należy wybraną grafikę zapisać pod nazwą logo.png w folderze
wydruków Printouts. Zmiana logo na inne możliwa jest poprzez zmianę nazwy poprzedniej grafiki oraz dodanie nowej, jako plik o nazwie logo.png o nowszej dacie modyfikacji od poprzedniego, tak jak zostało to zaprezentowane na poniższym rysunku:
Zmiana logo na wydruku
W celu usunięcia logo z wydruku dokumentu, należy usunąć zapytania zwracające logo tj.
W pliku Data:
<set>
<name>Logo</name>
<query>SELECT Data FROM PrintoutsImages WHERE Name='logo.png'</query>
</set>
W pliku Layout:
<image set="Logo" var="Data" />
Dodanie nowych danych na wydruk
Jeżeli istnieje potrzeba pokazania na wydruku niestandardowych danych można to zrealizować w następujący sposób:
przesynchronizować potrzebne dane do tabeli Configuration bazy mobilnej
umieścić nowe dane na wydruku
Poniżej przedstawiony jest przykład dodania na wydruk dokumentu danych pracownika, który wystawił dokument: Zamówienie Sprzedaży przy współpracy z Comarch ERP XL 2018.2.1. W sposób opisany poniżej można synchronizować dowolne dane z systemu ERP i prezentować je na wydruku.
Uwaga
Zapytania SQL wykorzystywane w tym przykładzie mogą różnić się w zależności od systemu ERP oraz jego wersji.
W pierwszej kolejności należy w odpowiednim dla wersji systemu ERP pliku konfiguracyjnym znajdującym się w katalogu Methods serwera synchronizacji (ścieżka domyślna: C:\Program Files (x86)\Comarch Mobile\Serwer synchronizacji\Methods\configuration) dodać następujące zapytanie:
UNION ALL
select
1,0,'ImieNazwisko',cast ((Prc_Imie1 +' '+ Prc_Nazwisko) as varchar)from cdn.opekarty opekarjoin cdn.PRCKarty pckar on opekar.Ope_PrcNumer=pckar.Prc_GIDNumerwhere Ope_GIDTyp =128 and Ope_GIDNumer=@UserId
UNION ALL
select
1,0,'telefon',cast (Prc_Telefon3 as varchar)from cdn.opekarty opekarjoin cdn.PRCKarty pckar on opekar.Ope_PrcNumer=pckar.Prc_GIDNumerwhere Ope_GIDTyp =128 and Ope_GIDNumer=@UserId
UNION ALL
select
1,0,'email',cast (Prc_EMail as varchar)from cdn.opekarty opekarjoin cdn.PRCKarty pckar on opekar.Ope_PrcNumer=pckar.Prc_GIDNumerwhere Ope_GIDTyp =128 and Ope_GIDNumer=@UserId
Powyższe zapytania pobierają z bazy systemu ERP dane dotyczące pracownika: imię i nazwisko, telefon, e-mail. Dodanie zapytań do pliku spowoduje, że konkretne dane zostaną przesynchronizowane do tabeli Configuration na bazie mobilnej.
Kolejnym krokiem jest modyfikacja pliku wydruku 1#SalesOrder#data#Wydruk_domyślny.xml znajdującego się w katalogu Printouts serwera synchronizacji. Należy dodać zapytania pobierające zsynchronizowane wcześniej dane do tabeli Configuration. Nowo dodane fragmenty zostały oznaczone kolorem żółtym:
...
<set>
<name>Logo</name><query>SELECT Data FROM PrintoutsImages WHERE Name='logo.png'</query>
</set>
<set><name>Wystawil</name><query>SELECT Value FROM Configuration WHERE key like 'ImieNazwisko'</query></set><set><name>Wystawiltel</name><query>SELECT Value FROM Configuration WHERE key like 'telefon'</query></set><set><name>Wystawilemail</name><query>SELECT Value FROM Configuration WHERE key like 'email'</query></set>
...
Ostatnim krokiem jest modyfikacja pliku wydruku 1#SalesOrder#layout#Wydruk_domyślny.xml, która polega na dodaniu wpisów odpowiedzialnych za wyświetlanie danych, które zostały zwrócone w zapytaniach w pliku 1#Order#data#Wydruk_domyślny.xml:
Po wykonaniu powyższych modyfikacji należy wykonać synchronizację z urządzenia mobilnego. Po modyfikacji wydruk powinien wglądać następująco:
Zamówienie Sprzedaży z danymi osoby wystawiającej
Przykłady modyfikacji wydruków termicznych
Usunięcie tabeli i przesunięcie tekstu
Opis modyfikacji będzie dotyczył standardowej definicji wydruku termicznego dokumentu Faktura sprzedaży. Opisane zostanie usunięcie tabeli zawierającej informacje o VAT oraz przesunięcie informacji o zapłacie na prawą stronę wydruku.
Standardowy wydruk termiczny dokumentu Faktura Sprzedaży
Należy zmodyfikować plik: 17#SalesInvoice#layout#Thermal#Vline112#Wydruk_domyślny.xml. W pliku tym należy usunąć lub zakomentować linijki dotyczące tabeli zawierającej informacje o VAT jak poniżej:
oraz dla części zawierającej informacje o zapłacie zmodyfikować wartości offset z 0 na 40 (cały wydruk ma szerokość 80) poszczególnych danych jak w przykładzie poniżej zaznaczono kolorem czerwonym:
Po wprowadzeniu tej modyfikacji wydruk termiczny Faktury sprzedaży powinien wyglądać następująco:
Wydruk dokumentu Faktura Sprzedaży po modyfikacji
Dodanie nowych danych na wydruk
Jeżeli istnieje potrzeba pokazania na wydruku niestandardowych danych można to zrealizować w następujący sposób:
przesynchronizować potrzebne dane do tabeli Configuration bazy mobilnej
umieścić nowe dane na wydruku
Standardowy wydruk termiczny dokumentu Faktura Sprzedaży
Poniżej przedstawiony jest przykład dodania na wydruk dokumentu danych pracownika, który wystawił dokument: Faktura Sprzedaży przy współpracy z Comarch ERP XL 2018.2.1. W sposób opisany poniżej można synchronizować dowolne dane z systemu ERP i prezentować je na wydruku.
Uwaga
Zapytania SQL wykorzystywane w tym przykładzie mogą różnić się w zależności od systemu ERP oraz jego wersji.
W pierwszej kolejności należy w odpowiednim dla wersji systemu ERP pliku konfiguracyjnym znajdującym się w katalogu Methods serwera synchronizacji (ścieżka domyślna: C:\Program Files (x86)\Comarch Mobile\Serwer synchronizacji\Methods\configuration) dodać następujące zapytanie:
UNION ALL
select
1,0,'ImieNazwisko',cast ((Prc_Imie1 +' '+ Prc_Nazwisko) as varchar)from cdn.opekarty opekarjoin cdn.PRCKarty pckar on opekar.Ope_PrcNumer=pckar.Prc_GIDNumerwhere Ope_GIDTyp =128 and Ope_GIDNumer=@UserId
UNION ALL
select
1,0,'telefon',cast (Prc_Telefon3 as varchar)from cdn.opekarty opekarjoin cdn.PRCKarty pckar on opekar.Ope_PrcNumer=pckar.Prc_GIDNumerwhere Ope_GIDTyp =128 and Ope_GIDNumer=@UserId
UNION ALL
select
1,0,'email',cast (Prc_EMail as varchar)from cdn.opekarty opekarjoin cdn.PRCKarty pckar on opekar.Ope_PrcNumer=pckar.Prc_GIDNumerwhere Ope_GIDTyp =128 and Ope_GIDNumer=@UserId
Powyższe zapytania pobierają z bazy systemu ERP dane dotyczące pracownika: imię i nazwisko, telefon, e-mail. Dodanie zapytań do pliku spowoduje, że konkretne dane zostaną przesynchronizowane do tabeli Configuration na bazie mobilnej.
Kolejnym krokiem jest modyfikacja pliku wydruku 11#SalesOrder#data#Thermal#Vline112#Wydruk_domyślny.xml znajdującego się w katalogu Printouts serwera synchronizacji. Należy dodać zapytania pobierające zsynchronizowane wcześniej dane do tabeli Configuration. Nowo dodane fragmenty zostały oznaczone kolorem żółtym:
...
<set>
<name>Logo</name><query>SELECT Data FROM PrintoutsImages WHERE Name='logo.png'</query>
</set>
<set><name>Wystawil</name><query>SELECT Value FROM Configuration WHERE key like 'ImieNazwisko'</query></set><set><name>Wystawiltel</name><query>SELECT Value FROM Configuration WHERE key like 'telefon'</query></set><set><name>Wystawilemail</name><query>SELECT Value FROM Configuration WHERE key like 'email'</query></set>
...
Ostatnim krokiem jest modyfikacja pliku wydruku 11#SalesOrder#layout#Thermal#Vline112#Wydruk_domyślny.xml, która polega na dodaniu wpisów odpowiedzialnych za wyświetlanie danych, które zostały zwrócone w zapytaniach w pliku 11#SalesOrder#data#Thermal#Vline112#Wydruk_domyślny.xml w miejsce nad linię z informacją o osobach uprawnionych i dacie odbioru:
Po wykonaniu powyższych modyfikacji należy wykonać synchronizację z urządzenia mobilnego. Po modyfikacji wydruk termiczny powinien wglądać następująco:
Wydruk dokumentu Faktura Sprzedaży z dodatkowymi danymi
Społeczność Comarch
Dzięki społeczności Comarch ERP rozwiązujemy problemy, dzielimy się pomysłami oraz informujemy o różnych nowościach.