Społeczność Comarch ERP | Użytkownicy Klienci Partnerzy Comarch

Profil użytkownika

avatar

Rafał Błaszczyk

6 pkt
 
klient
0 Podziękowań
6 100%

1 pytań

1 odpowiedzi

0 0%

0 pomysłów

0 komentarzy

Aktywność

  • Wartościowy użytkownik
  • Wysoko notowany
  • Lider rankingu
  • Aktywny użytkownik
  • Pomysłodawca
  • Uczynny użytkownik
  • Znawca tematu
  • Specjalista kategorii Chmura
  • Specjalista kategori ERP Altum
  • Specjalista kategorii ERP Optima
  • Specjalista kategorii ERP XL
  • Specjalista kategorii ERP XT
  • Specjalista kategorii ERP esklep
  • Specjalista kategorii ERP mobile
  • Specjalista kategorii ERP Produkcja
  • Specjalista kategorii IBARD
  • Specjalista kategorii wszystko.pl
  • Specjalista kategorii ERP Klasyka
  • Specjalista kategorii ERP iKsięgowośc 24
  • Specjalista kategorii ERP Retail
  • Specjalista kategorii Workflow
  • Specjalista kategorii Techniczne
  • Specjalista kategorii Handel
  • Specjalista kategorii Logistyka
  • Specjalista kategorii Księgowość
  • Specjalista kategorii BI
  • Specjalista kategorii Kadry płace

Rankingi

Miejsce W tym
miesiącu
Punktów
Ranking główny 2058 14 6 pkt
W tym miesiącu 14 14 6 pkt
Pytania i odpowiedzi 1662 7 6 pkt
Pomysły i komentarze 797 29 0 pkt
Najbardziej pomocni - - -

O firmie

Aktywność w tematach

Wpisy użytkownika

User Avatar
klient
Rafał Błaszczyk
6 pkt
1 pytań
1 odpowiedzi
0 pomysłów
0 komentarzy
6 100%
Rafał Błaszczyk zapytał/a o
Logistyka
Logistyka pytań: 85 | odpowiedzi: 404

Adam NowakRafał BłaszczykDariusz KnopikMirosław SmendaPiotr RybińskiMaciej LachowiczRomuald UlcyferKarolina Nowak
Techniczne
Techniczne pytań: 1544 | odpowiedzi: 5874

Paweł IdzikowskiKrzysztof LisJoanna JóźwiakGrzegorz DurakJan PietrzakDorota KrólikgalantRafał Błaszczyk
Handel
Handel pytań: 895 | odpowiedzi: 3416

Handel

Daniel PargiełaBeata Golmento-EnferBłażej RunowskiPaweł IdzikowskiTomasz SzkudlarekWojciech OwczarekGrzegorz DurakAnna Horak

[rozwiązanie] Etykiety Zebra przez ZPL natywnie z Optimy

Zaktualizowano 13 d. temu

Cześć!

Zaglądałem tu parę razy i skorzystałem z Waszych rad, być może mój wkład też okaże się przydatny.

Wiele razy poruszany był temat małych etykiet produktowych z EANami drukowanymi z Optimy. Problem jest taki, że Genrap nie potrafi wygenerować małych kodów EAN, a poza tym bardzo ciężko jest zaprojektować taką małą etykietę nawet bez kodu kreskowego, żeby drukowała się poprawnie przez GenRap. Najlepszym rozwiązaniem jest wykorzystanie języka ZPL, który obsługują drukarki zebra i tak właśnie zrobiłem.

Poniżej moje rozwiązanie, które nie wykorzystuje żadnych dodatkowych programów, ani funkcji.

Przykład jest dla etykiet 50x30 mm drukowanych na drukarkach 230 dpi. Drukarka MUSI posiadać wsparcie dla ZPL (jeśli ma EPL to trzeba zmienić w konfiguracji albo zmienić firmware albo drukarkę albo kod szablonu :-) Własny kod ZPL możecie uzyskać np. z pomocą programu Zebra Designer lub pisać ręcznie i pomagać sobie Labelary viewer (online). Do pisania ręcznego dokumentacja - ZPL II guide na google). Elementy zmienne (np. kody kreskowe, opisy) muszą wykorzystywać czcionki standardowe drukarek lub odpowiednie czcionki muszą być załadowane wcześniej do drukarki, w moim przykładzie są tylko czcionki standardowe.

Ten sposób wykorzystuje wydruk tekstowy XML z Optimy. Dodałem parametr z pytaniem o ilość etykiet, który pojawia się przed wydrukiem. Za pomocą transformacji XSLT ten XML zamieniany jest na kod ZPL, a następnie uruchamiany jest prosty skrypt powłoki Windows, który wysyła ten plik ZPL na wybraną drukarkę. Mechanizm jest bardzo podobny jak wydruki na drukarki tekstowe. W moim odczuciu całość działa bardzo sprawnie.

Jak to zrobić:

  1. Zainstalować drukarkę zebra w systemie i udostępnić ją jako zasób np. \\server1/zebra1
    Nazwę serwera oczywiście musicie dostosować do nazwy komputera, który ma zainstalowaną drukarkę i optimę.
  2. Utworzyć skrypt powłoki na hoście z Optimą drukujący na drukarce np. c:\tools\print_zebra1.cmd z o zawartości
    copy /B %1 \\server1/zebra1
    (nazwa drukarki to nazwa udostępnionego wcześniej zasobu)
  3. Czynności 1 i 2 powtórzyć dla wszystkich drukarek używając innych nazw drukarek (1 drukarka = 1 plik skryptu)
  4. Otworzyć dowolną kartotekę towarową (pozycja cennika) i przejść do konfiguracji wydruków (Ctrl+F2)
  5. Dodać nowy wydruk np. "Etykieta towarowa ZPL 230dpi (50 x 30 mm)"
    1. Jako typ wybrać XML, tekstowy
    2. W definicji podać:

      [SQL]
      Select Twr_Kod, Twr_EAN, Twr_Nazwa from CDN.Towary
      Where ?@Hs200_NQ|Filtr:''@?

      [XSL]
      <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
      <xsl:output method = "xml" omit-xml-declaration="yes" encoding="utf-8" />
      <xsl:preserve-space elements="*"/>
      <xsl:template match="/">
      <xsl:for-each select="ROOT/RECORDSET1/RECORD">
      CT~~CD,~CC^~CT~
      ^XA~TA000~JSN^LT0^MNW^MTD^PON^PMN^LH0,0^JMA^PR2,2~SD15^JUS^LRN^CI0^XZ
      ^XA
      ^MMT
      ^PW400
      ^LL0240
      ^LS0
      ^CI28
      ^BY3,2,87^FT72,207^BEN,,Y,N
      ^FD<xsl:value-of select="@Twr_EAN"/>^FS
      ^FT0,44^A0N,28,28^FB400,1,0,C^FH
      ^FD<xsl:value-of select="@Twr_Kod"/>^FS
      ^CWT,E:TT0003M_.FNT
      ^CFT,20,20
      ^CI28
      ^FT0,95^FB400,2,0,C^FH
      ^FD<xsl:value-of select="@Twr_Nazwa"/>^FS
      ^PQ?@n6|IlEtykiet|&Ilość etykiet dla każdego towaru:1@?,0,1,Y^XZ

      </xsl:for-each>
      </xsl:template>
      </xsl:stylesheet>

      [FILE]

      [RUN]
      c:\tools\print_zebra1.cmd

    3. Zapisać definicję wydruku i drukować :-)

Co wymaga poprawy:

  1. Polskie znaki w opisach. Mam starą testową drukarkę ZP2844, która nie obsługuje UTF-8. Próbowałem z transformacją XML na ASCII za pomocą character-maps jak tutaj: https://www.mimuw.edu.pl/~czarni...ml07/lab11.html
    ale to nie chce mi działać w Optimie. Jeśli by to działało to byłaby pełna kompatybilność z zebrami nawet tymi starymi. Oczywiście da się to załatwić w inny, mniej elegancki sposób np. rozbudowując skrypt cmd do jakiegoś powershella etc. Jeśli ktoś się bardziej orientuje w xslt w Optimie to proszę o pomoc. Być może na tych drukarkach ze wsparciem UTF-8 będzie działać od strzału.
  2. Drukowanie na liście zasobów dla wielu towarów na raz. Do tego trzeba zmodyfikować zapytanie SQL i chyba jest jakaś tabela przejściowa, ale nie wiem jak to zrobić...jakieś pomysły?