Probleme mit Barcode NaviBar

19. Oktober 2011 15:03

Hallo zusammen,

wir haben hier ein Problem beim Barcode-Drucken und vielleicht hat einer von euch eine Idee:

Um Barcodes zu erzeugen benutzen wir das kleine Programm: NaviBar. Hierzu braucht es ein Verzeichnis, wo das Programm enthalten ist sowie eine bild.bmp. Außerdem muss eine barcode.ocx installiert sein und die Schriftart Code 128. Wenn ein Report mit Barcode in Navision gestartet wird, dann wird per Shellaufruf das Programm ausgeführt, der Barcode in das bild.bmp geschrieben und das dann importiert.
Jetzt haben einige Kollegen neue Rechner bekommen. Zuerst hat Navision nur ein und denselben alten Barcode gedruckt. Das lag daran, dass eine dll namens: msvbvm50.dll nicht vorhanden war und das Programm gar nicht ausgeführt werden konnte. Das haben wir nachgeholt. Damit funktioniert es bei einigen, bei anderen aber immer noch nicht richtig.
Dort wird die bild.bmp nun zwar aktualisiert, aber ist quasi leer, da steht: size. Wenn ich die Parameter zur Pixeldarstellung im Code ändere, wird mir zwar ein Barcode angezeigt, aber der ist nicht mehr lesbar, da zu groß.

Alle arbeiten mit derselben: Datenbank, Schriftart, barcode.ocx, Windows 7, Navision-Client, Shell-Befehl.

Irgendetwas muss anders sein oder fehlen. Hat einer von euch noch eine Idee?

Re: Probleme mit Barcode NaviBar

19. Oktober 2011 21:13

Leider kann ich nichts zur Ursache für dieses "unerwartete Programmverhalten" sagen.

Jedoch kann man auch ganz ohne externe Programme und/oder Schriftarten verschiedene Barcodes in Microsoft Dynamics NAV erzeugen.
Ein pfiffiger Programmierer lässt uns kostenlos an seiner Schöpfung teilhaben: http://mibuso.com/dlinfo.asp?FileID=1192
mibuso.com hat geschrieben:[...]
Encoding: EAN8, EAN13, Code 39 & Code 128
This creates a barcode in pure C/AL, the barcode is created as a BMP that is contained in a BLOB field.
This requires no external components or additional fonts.
[...]
- Printing of vertical barcodes
[...]

Re: Probleme mit Barcode NaviBar

20. Oktober 2011 10:56

Hallo,

vielen Dank. Ich habe das heruntergeladen, kann aber nicht alles öffnen, weil die Tabelle 99008535 fehlt. Scheinbar gibt es die in der 3.6 noch nicht. Technisch haben wir die 5.0. Kann ich die Tabelle irgendwie integrieren?

Re: Probleme mit Barcode NaviBar

20. Oktober 2011 11:27

NavHummel hat geschrieben:Hallo,
vielen Dank. Ich habe das heruntergeladen, kann aber nicht alles öffnen, weil die Tabelle 99008535 fehlt. Scheinbar gibt es die in der 3.6 noch nicht. Technisch haben wir die 5.0. Kann ich die Tabelle irgendwie integrieren?

Das ist die TempBlob Tabelle. Im unserem Downloadbereich ist auch Version 5 verfügbar, aus der Version kann man die exportieren.
viewtopic.php?f=15&t=5583

Re: Probleme mit Barcode NaviBar

20. Oktober 2011 11:33

Wenn die Lizenz den Zugriff darauf nicht erlaubt, kann man wahrscheinlich auch irgendeine temporäre Recordvariable anlegen, die ein BLOB enthält (Item zB).

Re: Probleme mit Barcode NaviBar

20. Oktober 2011 11:41

McClane hat geschrieben:Wenn die Lizenz den Zugriff darauf nicht erlaubt, kann man wahrscheinlich auch irgendeine temporäre Recordvariable anlegen, die ein BLOB enthält (Item zB).

Code:
TEMPORARY Record 99008535

Die wird in dem Tool nur temporär verwendet, da gibt es zur Laufzeit keine Lizenzprobleme, selbst wenn man die sonst nicht öffnen kann.

Re: Probleme mit Barcode NaviBar

20. Oktober 2011 11:48

Öhm .. ja stimmt, daher wohl wohl auch der Name "TempBlob" :oops:

Re: Probleme mit Barcode NaviBar

20. Oktober 2011 12:10

McClane hat geschrieben:Öhm .. ja stimmt, daher wohl wohl auch der Name "TempBlob" :oops:

Der Name legt es nahe, darauf sollte man sich aber nicht verlassen :wink: .

Re: Probleme mit Barcode NaviBar

20. Oktober 2011 12:26

Zuerst einmal einen großen Dank an alle!

Also, diese Tabelle ist in unserer Datenbank gar nicht vorhanden und anlegen kann ich sie auch nicht. Wenn ich versuche, eines dieser Objekte auszuführen oder im Desginer zu öffnen, dann geht es nicht, weil eben diese Tabelle fehlt.

So und nun habe ich die Tabelle (CRONUS.fdb sei Dank) und auch das Erstellen klappt. Nur, kann ich die Pixel irgendwo festlegen oder muss ich die Größe der Picture-Box irgendwie hinbiegen, damit unser Lesegerät den Barcode erkennt?

Re: Probleme mit Barcode NaviBar

20. Oktober 2011 13:01

NavHummel hat geschrieben:Nur, kann ich die Pixel irgendwo festlegen oder muss ich die Größe der Picture-Box irgendwie hinbiegen, damit unser Lesegerät den Barcode erkennt?

Beim Aufruf einer der Encode...-Funktionen wird als zweiter Parameter die Größe mitgegeben.
Leider lässt sich nur 1, 2, 3, 4 oder 5 dort angeben - eine Angabe in Pixel ist (leider!) nicht möglich.

Wenn ihr nur Code39 benötigt, dann könntet ihr auch folgenden Download verwenden: http://www.mibuso.com/dlinfo.asp?FileID=1043
Diese Codeunit kann zwar nur Code39 (ebenfalls ohne externe Programme und/oder Schriftarten) erzeugen, dafür lässt sich die Barcode-Größe (sowohl Höhe als auch Breite) und die DPI-Zahl festlegen.

Re: Probleme mit Barcode NaviBar

20. Oktober 2011 13:04

Oder für EAN128B mit Breite, Höhe & dpi: http://www.mibuso.com/dlinfo.asp?FileID=1113

Re: Probleme mit Barcode NaviBar

20. Oktober 2011 13:06

Kowa hat geschrieben:Der Name legt es nahe, darauf sollte man sich aber nicht verlassen .

Jaaaaaaadoch, Klugs... äh lieber Kowa :wink:

Re: Probleme mit Barcode NaviBar

20. Oktober 2011 13:10

McClane hat geschrieben:
Kowa hat geschrieben:Der Name legt es nahe, darauf sollte man sich aber nicht verlassen .

Jaaaaaaadoch, Klugs... äh lieber Kowa :wink:

So unwichtig dieser Hinweis im ersten Moment auch erscheinen mag:
Ich kontrolliere immer zweimal, ob eine Variable namens "Temp..." oder "...Temp" auch wirklich temporär definiert ist, bevor ich darin Datensätze anlege, bearbeite oder lösche.
Zu oft werden Variablen als "Temp..." benannt, sind es dann aber doch nicht, sondern nur eine einfache Hilfsvariable.

Vorsicht ist die Mutter der Porzellankiste!

Re: Probleme mit Barcode NaviBar

20. Oktober 2011 13:23

Timo Lässer hat geschrieben:Ich kontrolliere immer zweimal, ob eine Variable namens "Temp..." oder "...Temp" auch wirklich temporär definiert ist, bevor ich darin Datensätze anlege, bearbeite oder lösche.
Zu oft werden Variablen als "Temp..." benannt, sind es dann aber doch nicht, sondern nur eine einfache Hilfsvariable.

Amen! :wink:

Ich meinte ja nur, dass ich bei einer Tabelle namens TempBlob selbst drauf hätte kommen können, dass sie auch temporär verwendet werden soll und in dem o. a. fob auch wird ...

Re: Probleme mit Barcode NaviBar

20. Oktober 2011 14:34

McClane hat geschrieben:Oder für EAN128B mit Breite, Höhe & dpi: http://www.mibuso.com/dlinfo.asp?FileID=1113



Ja, ich brauche Code 128 b und es wird auch ein Barcode gedruckt, aber zu klein. Mit NaviBar wird ein Bild erstellt und zurück in Navision geschrieben mit 300 mal 60 (Pixel) und irgendwie wird der Barcode mit diesem Programm viel zu klein wenn ich eben diese Pixel angebe im Aufruf. :-?

Re: Probleme mit Barcode NaviBar

20. Oktober 2011 18:55

NavHummel hat geschrieben:
McClane hat geschrieben:Oder für EAN128B mit Breite, Höhe & dpi: http://www.mibuso.com/dlinfo.asp?FileID=1113

Ja, ich brauche Code 128 b und es wird auch ein Barcode gedruckt, aber zu klein. Mit NaviBar wird ein Bild erstellt und zurück in Navision geschrieben mit 300 mal 60 (Pixel) und irgendwie wird der Barcode mit diesem Programm viel zu klein wenn ich eben diese Pixel angebe im Aufruf. :-?

Wenn die Abmessungen stimmen, das Bild aber zu klein ist, dann hast du wahrscheinlich eine zu hohe DPI-Zahl angegeben.
Reduziere einfach die DPI-Anzahl, dann wird das Bild automatisch größer. (Bei Barcodes ergibt sich daraus naturbedingt kein Qualitätsverlust.)

Re: Probleme mit Barcode NaviBar

20. Oktober 2011 20:43

Hallo,

das mit den Bitmaps als EAN ausdrucken ist so ein Thema. Bei Laserdruckern funktioniert das heute meisten, da sie eine sehr hohe Auflösung haben , und damit keine Interpolation mehr notwendig ist. Um das Problem mit den Barcodes zu verstehen, muss man zunächst die Funktion der Barcodes und Barcodescanner verstehen. Barcodes bestehen aus mehr oder weniger breiten schwarzen und weißen Balken. Ob es sich um einen schmalen oder einen breiten schwarzen Balken handelt, erkennt der Scanner am Verhältnis der Balkenbreiten. Denn wie wir wissen, können Barcodes unterschiedlich groß sein, ein Scanner erkennt ihn trotzdem.

Da dieses Breitenverhältnis der einzelnen Balken aber so wichtig ist, reagieren die Scanner sehr empfindlich auf darauf, wenn beim Ausdruck durch Interpolation (Zoom) einzelne Linien der Bitmap nicht mehr ausgedruckt, oder beim Vergrößern auch schwarze Linien mehr gedruckt werden, und so das Verhältnis zwischen schwarzen und weißen Linien nicht mehr stimmt (ein in normaler Größe gefaxter Barcode wird mit großer Sicherheit von keinem Scanner zuverlässig gelesen).

Wie gesagt ist dieses Problem bei aktuellen Laserdruckern nicht mehr so das Problem, wenn die Auflösung der Bitmap zur Auflösung des Druckers passt (Barcodepixel auf dem Papier entspricht ganzen vielfachen der Druckerauflösung) Sonst hat man ein ähnliches Phänomen, wie es entsteht, wenn man einen modern TFT-Minitor nicht in der Auflösung betreibt, für die er gebaut worden ist. Man hat ein leicht verschwommenes Bild, es sei denn man betreibt ihn in einer Auflösung durch die man die native Auflösung des Monitors ohne Rest teilen kannst bsp.: 1600x1200 Pixel Display geht auch in 800x600 ohne Interpolation.

Lange Rede, kurzer Sinn:

Versuchst du jetzt deine Barcode- Bitmap auf einem richtigen Etiktettendrucker mit 203dpi auszudrucken, ist die Wahrscheinlichkeit, das es so ein Problem recht groß. Verwende hier besser den Barcode-Font des Etikettendrucker- Treibers, der wird dafür sorgen, dass das Seitenverhältnis der Barcode- Striche stimmt. Alternativ bist du mit einem Barcode-Font besser dann, da diese Fonts besser auf die Drucker skaliert werden, und auch da die Verhältnisse stimmen.

Ich habe mich persönlich auch schon mit dem Problem herumschlagen müssen. Die Lösung war dann nur der Font :wink:

Gruß, Fiddi

Re: Probleme mit Barcode NaviBar

20. Oktober 2011 22:02

Einverstanden:
Ich konkretisiere meine zuvor getätigte Aussage und sichere zu, dass es durch die Reduzierung der DPI-Zahl innerhalb des NAV-Ausdrucks keinen Qualitätsverlust gibt, es jedoch zu Problemen (durch Interpolation) auf dem Drucker und/oder Bildschirm kommen kann, um den NAV-Ausdruck darzustellen. ;-)

"Man wird alt wie eine Kuh, und lernt immer noch dazu."

Re: Probleme mit Barcode NaviBar

20. Oktober 2011 22:11

hier gibt es freie Barcode-Fonts, und die Routinen, wie man den Ausgabestring berechnet (ist leider nicht einfach der EAN-Code :wink: )

Gruß, Fiddi