Drukowanie etykiet w aplikacjach Comarch WMS realizowane jest przez usługę Comarch WMS Service. Używane drukarki muszą zostać zainstalowane w systemie Windows, na komputerze, na którym została uruchomiona usługa.
1. Dodawanie drukarek w systemie
Drukarki lokalne, tzn. podłączone do komputera, widoczne są dla wszystkich użytkowników i nie wymagają żadnych dodatkowych operacji, natomiast drukarki sieciowe, są instalowane w systemie tylko dla konkretnego użytkownika i wymagają ich instalacji dla konta, na którym uruchamiana jest usługa Comarch WMS Service. Domyślnie usługa uruchamiana jest na Lokalne konto systemowe i drukarka musi zostać dodana dla tego konta.
Proces dodawania drukarki udostępnionej przebiega dwuetapowo. Najpierw dodajemy drukarkę standardowo do systemu. Następnie uruchamiamy aplikacje „PrinterManager” z katalogu, w którym została zainstalowana aplikacja Comarch WMS Magazynier. W oknie aplikacji prezentowane są drukarki sieciowe, dodane dla aktualnie zalogowanego użytkownika. Na liście zaznaczamy drukarki, które mają zostać dodane dla Lokalnego konta systemowego, a następnie klikamy na przycisk „Dodaj/Usuń”. Aplikacja pozwala także na usunięcie wcześniej dodanej drukarki, poprzez odznaczenie jej na liście i naciśnięcia przycisku „Dodaj/Usuń”.
2. Konfiguracja drukarek
W menu „Drukarki” istnieje możliwość zdefiniowania drukarki dostępnej w systemie (Rys. poniżej). Określamy tutaj:
- Nazwa – nazwa drukarki,
- Drukarka – należy wybrać drukarkę etykiet z listy drukarek, dostępnych dla komputera, na którym uruchomiona jest usługa synchronizacji Comarch WMS Service,
- Typ drukarki – należy wybrać typ drukarki (atramentowa/etykiet),
- Dostępność – należy wybrać magazyn lub magazyny, dla których ma być dostępna ta drukarka.
3. Obsługiwane drukarki
Comarch WMS wspiera obecnie wydruki na drukarkach obsługujących protokoły Direct Protocol (DP), Datamax Programmer’s Language (DPL) oraz Zebra Programming Language (ZPL). Nie ma możliwości wykorzystania standardowych drukarek atramentowych/laserowych oraz drukarek zapisujących wydruki do plików do wydruku etykiet. Renderowanie wydruków etykiet jest realizowane przez samą drukarkę, a nie poprzez aplikację na komputerze jak przy zwykłych drukarkach, przez co nie ma możliwości podglądu wydruku przed jego wydrukowaniem.
Przykładowe modele drukarek etykiet testowane z aplikacją Comarch WMS:
- Intermec PD43 (protokół DP),
- Datamax H-Class H-4310 (protokół DPL),
- Zebra ZT220 (protokół ZPL).
4. Budowa definicji wydruków
Definicje wydruków dla etykiet znajdują się w katalogu „Labels” w katalogu, w którym został zainstalowany Comarch WMS Magazynier. Każda definicja znajduje się w oddzielnym katalogu. Wewnątrz znajduje się plik report.xml. Zbudowany jest on z dwóch głównym sekcji: DataCommand oraz Definition. Sekcja DataCommand definiuje źródło danych, jakie zostanie wykorzystane podczas pobierania danych dla wydruku. Parametr Type może przyjmować jedną z dwóch wartości: StoredProcedure – jeżeli jako źródło danych wykorzystywana jest procedura składowana lub Text – jeżeli jako źródło danych wykorzystywane jest zapytanie SQL. Do źródła danych przekazywane są parametry zależne od kontekstu wydruku oraz jego typu. Dokładny spis parametrów przedstawia poniższa tabela.
Typ etykiety | Miejsce wydruku | Parametry | Opis |
Etykieta partii towaru | Pozycja dokumentu | @PositionId | Id pozycji dokumentu |
Położenie | @LotId | Id partii towaru | |
@LotId | Id partii towaru | ||
Etykieta jednostki logistycznej | Pozycja dokumentu | @PositionId | Id pozycji dokumentu |
Etykieta położenia | Pozycja dokumentu | @PositionId | Id pozycji dokumentu |
Położenie | @WarehouseId | Id magazynu | |
@LocalizationId | Id położenia | ||
@IsSingleInstance | Parametr mówi nam o tym, czy wydruk ma zostać wykonany w kontekście danego położenia, czy jego położeń podrzędnych. |
4.1. Sekcja Definition
Sekcja Definition zawiera definicje samego wydruku tj. jego rozmiar, zawartość oraz wygląd. W tej sekcji możemy wykorzystać dane zwrócone przez źródło danych zwrócone przez zapytanie z sekcji DataCommand. Sekcja Definition podzielona jest na 3 podsekcje: Header – kod z tej sekcji będzie wysłany tylko raz na początku wydruku, Page – kod z tej sekcji będzie wysłany do drukarki raz dla każdej etykiety, Footer – kod z tej sekcji będzie wysłany raz na końcu wydruku. Rozmiar etykiety definiujemy poprzez parametr PageWidth oraz PageHeight. Parametr Language mówi o tym, dla jakiego protokołu zdefiniowany jest dana definicja. Dla Direct Protocol oraz Zebra Programming Language podajemy w tym miejscu DP, natomiast dla Datamax Programmer’s Language podajemy DPL.
4.2. Wykorzystanie danych w sekcji Definition
Dane zwrócone przez źródło danych zdefiniowane w sekcji DataCommand mogą składać się z wielu wyników, ale tylko pierwszy z nich może zawierać wiele rekordów. Każdy z rekordów zostanie przetworzony na jedną etykietę (w zdefiniowanej liczbie kopii). Dane z pierwszego wyniku pobieramy poprzez nazwę kolumny otoczoną przez podwójne nawiasy klamrowe np. {{nazwa_kolumny}}. Dane z pierwszych rekordów pozostałych wyników możemy pobrać analogicznie, poprzedzając nazwę kolumny numerem wyniku i dwukropkiem np. {{1:nazwa_kolumny}}, aby pobrać dane z pierwszego dodatkowego wyniku.
W sekcji możemy wykorzystać funkcje, przetwarzające dane dla wydruku oraz pozwalające na pozycjonowanie elementów wydruku bazując na zdefiniowanym rozmiarze etykiety. Nazwa każdej funkcji zaczyna się od znaku: @, po którym występuje jej nazwa oraz argumenty objęte w nawiasy okrągłe.
Funkcje niezależne od protokołu drukarki:
-
- @comment(comment) – funkcja pozwala wstawić komentarz do kodu wydruku.
- @replace-chars(value,src,dest) – pozwala na zamianę serii znaków w danych na inne.
value – Łańcuch znaków do przetworzenia
src – Znaki źródłowe
dest – Znaki docelowe
Zamienia znaki x,y i z na X,Y i Z w kolumnie Warehouse
- @strip-polish(value) – Zamienia polskie znaki diakrytyczne na ich odpowiedniki bez ogonków.
- @char(number) – Zwraca znak o podanym kodzie.
- @format(value, format) – Formatuje ciąg znaków, format może być dowolnym, poprawnym formatem .NET.
- @dpi(value) – Ustawia DPI dla wydruku. Funkcja wykorzystywana w sekcji Header.
</ br>
Funkcje specyficzne dla protokołu DPL (Datamax Programmer’s Language):
- @num-of-pages() – Zwraca liczbę kopii w formacie 4 znaków z zerami wiodącymi.
- @image(image-name[,width[,height]]) – Przesyła obrazek do drukarki i wstawia jego nazwę w miejscu wywołania. Jeżeli dany obrazek wykorzystany jest kilkukrotnie, wysyłany jest tylko raz. Funkcja posiada opcjonalne parametry określające rozmiar obrazka.
- @module(value) – Ustawia moduł, do którego będą przesyłane grafiki (obrazki). Domyślna wartość to C.
- @width(value[,size]) – Zwraca wartość bazując na szerokości strony. Argument: size określa długość pola (domyślnie 4).
@width(20%) – odpowiada 20% szerokości
@width(50mm)
@width(2in)
- @height(value[,size]) – Analogicznie jak @width lecz bazuje na wysokości strony.
- @h-center(bazeSize,sizePerChar,value[,size]) – Zwraca pozycję od lewego brzegu strony, tak aby obiekt był wyśrodkowany w poziomie. Pozwala na wyśrodkowanie kodu kreskowego.
baseSize – stała szerokość bazowa
sizePerChar – o ile powiększa się szerokość obiektu po dodaniu jednego znaku do value
value – wartość np. kodu kreskowego
size – szerokość pola, domyślnie 4 - @v-center – Analogicznie jak @h-center tylko w pionie.
Funkcje specyficzne dla protokołu DP (Direct Protocol)
-
- @width(value) – Wielkość bazująca na szerokości. Wartość w punktach bazująca na DPI.
@width(20%) – odpowiada 20% szerokości
@width(50mm)
@width(2in)
- @height(value) – Analogicznie jak @width, ale bazuje na wysokości.
- @image(image-name[,width[,height,[,posX,posY[,anchor-point]]]]) – Wysyła grafikę (obrazek) do drukarki przy użycia protokołu PRBUF.
image-name – nazwa obrazka
width – szerokość
height – wysokość
posX – pozycja w poziomie
posY – pozycja w pionie
anchor-point – punkt zaczepienia - @num-of-pages() – Zwraca liczbę stron.
5. Wydruki standardowe
Po instalacji Comarch WMS Magazynier w katalogu „Labels” domyślnie możemy znaleźć definicje dla wszystkich typów wydruków dla wspieranych protokołów.
Typ etykiety | Miejsce wydruku | Protokół | Nazwa definicji |
Etykieta partii towaru | Pozycja dokumentu | DP | ArticleLotBig_Code128_DP |
DPL | ArticleLotBig_Code128_DPL | ||
Położenie | DP | ArticleLot_Code128_DP | |
DPL | ArticleLot_Code128_DPL | ||
Etykieta jednostki logistycznej | Pozycja dokumentu | DP | LogisticUnit_Code128_DP |
DPL | LogisticUnit_Code128_DPL | ||
ZPL | LogisticUnitForSourceDocument_ZPL | ||
ZPL | PositionLogisticUnit_Code128_ZPL | ||
Etykieta położenia | Pozycja dokumentu | DP | LocalizationBig_Code128_DP |
DPL | LocalizationBig_Code128_DPL | ||
Położenie | DP | Localization_Code128_DP | |
DPL | Localization_Code128_DPL | ||
ZPL | Localization_Code128_ZPL | ||
Wydruk wielu etykiet jednostek logistycznych | Menu główne | DP | Barcode_Code128_DP |
DPL | Barcode_Code128_DPL | ||
Nagłówek dokumentu | ZPL | LogsticUnitArticles_ZPL |
Dodatkowo dostępne są także wydruki:
- ImageTest – przykład etykiety, na którym użyto grafikę.
- SizeTest – wydruk pozwala na test ustawień rozmiaru etykiety.
Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną, fotograficzną, a także kopiowanie na nośniku filmowym, magnetycznym lub innym, powoduje naruszenie praw autorskich niniejszej publikacji.
Copyright © 2024 COMARCH
Wszelkie prawa zastrzeżone.