Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Fastreport und Barcode (https://www.delphipraxis.net/81019-fastreport-und-barcode.html)

Wilsandy 19. Nov 2006 10:12


Fastreport und Barcode
 
Hallo,
ich benutze Fastreport 3.19 mit Delphi5.
In einem Lieferschein drucke ich den Barcode 2,5 Interleaved.
Nun muss ich in diesen Barcode eine Prüfziffer einbauen.
In dem Properties für den Barcode habe ich CalChecksum auf true gesetzt.
Beim Ausdruck bzw. auch auf dem Bildscheim zeigt er keine veränderung bzgl. der Prüfziffer an.
Die Barcodelänge ist 9, also eine ungerade Zahl um die Prüfziffer hinten dranzustellen.
Muss man zu dem CalCheckSum(true) noch zusätzlich was angeben um die Prüffziffer zu sehen ?.
Würde mich über Hilfe freuen, da ich schon länge Zeit das Problem nicht alleine gelöst bekomme.
Gruß Sandra

Wilsandy 19. Nov 2006 23:04

Re: Fastreport und Barcode
 
Hallo !!
Hat denn keiner von Euch schon mal was in Fastreport mit Barcode 2,5 Interleaved und Prüfziffer gemacht ?.
Liebe Grüße Sandra

Union 20. Nov 2006 09:05

Re: Fastreport und Barcode
 
Hallo Sandra,

der 2/5 interleaved unterstützt keine automatischen Prüfziffern. Diser Schalter hat nur Auswirkungen bei Barcodes, die dies unterstützen (z.B. EAN13).
Diese Barcodes unterstützen eine automatische Prüfziffer optional:
  • Codabar
  • Code93
  • Code128
Diese Barcodes müssen immer eine Prüfziffer haben:
  • Alle Ean (Ean 8, Ean 13, UPC, JAN, ISBN, ISSN, ISMN)
  • PDF417
  • ITF
  • OPC
  • PZN
Du solltest Dir daher ein eigenes Prüfziffernverfahren ausdenken. Und einen unbeantworteten Beitrag "Pushst" Du bitte erst nach mindestens 24 Stunden.

Wilsandy 20. Nov 2006 21:15

Re: Fastreport und Barcode
 
Hallo,
Ich danke Dir für Deine Antwort.
Dann werde ich mich wohl für eine anderen Barcode entscheiden.
Schönen Abend noch und Gruß Sandra

Union 20. Nov 2006 21:19

Re: Fastreport und Barcode
 
Wieso? Du kannst doch eine Prüfsummenlogik schreiben. Bei 2/5 wird normalerweise jede ungerade Ziffer mit 3 multipliziert und addiert. Dann wird das Ergebnis durch 10 geteilt. Der Rest stellt die Prüfziffer dar.

z.B.: 01234 => 0*3 + 2*3 + 4*3 = 18 / 10 = 1 Rest 8. Barcode mit Prüfziffer = 012348.

Wilsandy 20. Nov 2006 22:57

Re: Fastreport und Barcode
 
na klar, ist ja logisch das ich den selber errechnen kann.
Ich werde das morgen mal in meinem Lieferscheinprogramm einbauen (und dann in dem Scanner)
Ist schon prima diese Forum.
Danke Dir noch mal.
Gruß Sandra

Hansa 20. Nov 2006 23:44

Re: Fastreport und Barcode
 
Zitat:

Zitat von Wilsandy
...In einem Lieferschein drucke ich den Barcode 2,5 Interleaved. Nun muss ich in diesen Barcode eine Prüfziffer einbauen...

Sandra, jetzt mal langsam. Union ist viel zu schnell. :mrgreen: Warum heißt eine Prüfziffer wohl Prüfziffer ? Beispiel EAN13 : die ersten 6 Stellen werden abwechselnd mit 1 und 2 (oder 3 :gruebel: ) multipliziert und aufaddiert. Die nächsten 6 Stellen weiß ich jetzt auch nicht auswendig. Auf jeden Fall wird im Prinzip eine Quersumme gebildet. Die letzte Stelle dieser Prüfziffer ergibt die 13. Stelle des EANs.

Bei einem eigenen Strichcode wird der Drucker kaum mitspielen. Man könnte die Grafik zwar selber programmieren, aber das gibt richtig viel Arbeit. Dann macht aber wohl der Scanner noch Schwierigkeiten.

Konsequenz ist tatsächlich das :
Zitat:

Zitat von Wilsandy
Dann werde ich mich wohl für eine anderen Barcode entscheiden.

Hinzuzufügen wäre noch das Wort "müssen". :zwinker: Welchen Sinn hat überhaupt die Lieferschein Prüfziffer bei Dir ? Für eigene codierte strings bietet sich der Code39 an. Dürfte jeder entsprechende Drucker und Scanner können.

alzaimar 21. Nov 2006 07:01

Re: Fastreport und Barcode
 
Weiterhin sollte bei der Auswahl des richtigen Barcodes einerseits die zur Verfügung stehende (bedruckbare) Fläche und der Umfang der zu kodierenden Zeichen als auch die Lesesicherheit berücksichtigt werden.

Interleaved 2 Of 5 ist der älteste Barcode und hat Probleme beim Lesen: Die Wahrscheinlichkeit, das der Scanner sich verliest, ist relativ hoch. Du kannst den Scanner schräg halten und trotzdem wird eine Lesung durchgeführt. Hier muss dann die Software durch Checksummen und Prüfung der korrekten Länge eingreifen. Der physikalische Vorgang des Lesens (Scanner piept und eine LED wird grün) ist ja erfolgreich. trotzdem wird der gelesene Code nicht übernommen: Der Anwender ist sehr schnell frustriert, Eingabefehler sind die Folge.

Meiner Erfahrung nach ist Code39 oder Code128 hier besser geeignet. Hier führt ggf. der Scanner selbst den Prüfsummenvergleich durch. Wenn der Scanber also eine erfolgreiche Lesung signalisiert, kann man sicher sein, das der Barcode korrekt gelesen wurde.

Soweit ich weiss, ist für Code39 keine Lizenz erforderlich, es gibt sogar frei verfügbare Fonts im Internet, obwohl der Barcode-Generator von FastReport hier gute Arbeit leistet.

Abschließend könntest Du dir noch 2D-Barcodes anschauen.

@Hansa: Ich verstehe den Einwand mit dem Drucker nicht. Ich kann doch an meinen Barcode ranhängen, was ich will. Was hat das mit dem Drucker zu tun? Egal, wichtig ist ja die Wahl des richtigen Barcodes.

Union 21. Nov 2006 08:57

Re: Fastreport und Barcode
 
Hier geht es nicht um die Auswahl der Software, mit der ein Barcode erstellt wird, sondern nur um die Errechnung der Prüfziffer. Sandy verwendet Fastreport und dieses hat Barcode Komponenten bereits eingebaut (nämlich die von PSoft).

Klar gibt es bessere Barcodes als den 2/5 - aber auch das liegt ausserhalb meines Ermessens. Wenn in einem Projekt ein bestimmter Barcode eingesetzt werden soll, dann gehe ich davon aus, dass dem eine entsprechende Planung vorausgegangen ist. Stell Dir vor, Du müsstest Flugsccheine drucken und entscheidest, jetzt mal einfach einen anderen als den IATA 2/5 Code zu verwenden...

alzaimar 21. Nov 2006 11:58

Re: Fastreport und Barcode
 
Union, dem Scanner ist es doch egal, welcher Barcode verwendet wird. Meiner Erfahrung nach wird Interleaved 2 of 5 genommen, weil er 'einfach so da ist'. Mein Hinweis auf Fonts für Code39 sollte nur zeigen, das es nichts Mystisches mit den Barcodes auf sich hat. Viele glauben auch, das die Dekodierung durch komplizierte Software im PC erfolgt. Da ist ein Hinweis auf einen Font schon hilfreich und zeigt Alternativen, um irgendwelche Geschichten auch mit Word/EXCEL/OpenOffice etc. zu drucken.

Wilsandy soll einen Barcode *erweitern*. Wenn ich schon die Anzahl der Stellen verändere, kann ich vielleicht doch gleich einen Barcode verwenden, oder? Und exotisch sind die Code39/128 auch nicht, die Scanner kann man umkonfigurieren und fertig. Der Vergleich mit IATA ist gut, trifft aber imho hier nicht zu.

Aber das wird/muss/kann/soll Wilsandy selbst entscheiden.

Hansa 21. Nov 2006 12:13

Re: Fastreport und Barcode
 
Union meint einfach einen Strichcode, wo hinten zusätzlich noch eine Nr. gedruckt wird ? Da kann man drüber streiten, ob das Sinn macht. Der Zweck des ganzen wurde noch nicht gesagt. Ich behaupte ganz einfach, daß die Wahrscheinlichkeit eines Lesefehlers bei 10 Zeichen um ca. 10 % höher ist, als bei 9. :mrgreen: Kommt auch drauf an, wohin das gedruckt wird. Aber egal wie, jeder der mit irgendwelchen Strichcodes hantiert, der muß die Datalogic Strichcode-Fibel haben.

http://markussoft.de/pdfs/strichcodefibel.pdf

alzaimar 21. Nov 2006 12:37

Re: Fastreport und Barcode
 
Hansa, Du hast in der Schule bei Wahrscheinlichkeitsrechnung wahrscheinlich ( :stupid: ) nicht aufgepasst.

Eine Checksumme mappt also alle Codes auf einen Zahlenraum von 0..9 (bei Interleaved). Die Wahrscheinlichkeit eines Lesefehlers, bei dem der falsch gelesene Code die gleiche Checksumme ergibt, ist rein rechnerisch 10%. Soweit so gut. Damit wird aber die Wahrscheinlichkeit einer unerkannten Fehllesung um 90% verringert, also um den Faktor 10.

Mit dem Wissen um den Aufbau des Barcodes und einer dahingehend optimierten Checksumberechnung liegt der Faktor in der Realität jedoch höher. Wenn man weiss, das z.B. öfters eine 2 mit einer 7 verwechselt wird, als eine 1 mit einer 8, kann man das in der Formel berücksichtigen.

Bei Interleaved 2 of 5 kann man grob sagen, das eine von 1000 Lesungen daneben liegt (Literatur, deckt sich aber mit unseren Erfahrungen). Mit Checksumme sinds dann nur noch eine von 10000 Lesungen. Statt einmal am Tag zu :kotz: , muss man das nur noch 3x im Monat. Besser als nix.

Hansa 21. Nov 2006 21:06

Re: Fastreport und Barcode
 
Zitat:

Zitat von alzaimar
Hansa, Du hast in der Schule bei Wahrscheinlichkeitsrechnung wahrscheinlich ( :stupid: ) nicht aufgepasst.

Nene, der Lehrer mußte an die Tafel und schließlich einsehen, dass er im Unrecht war. :lol: Kein Witz !! Konkret fiel Codabar, 2/5 usw. raus und es blieb Code39 für allgemeine Strichcodes übrig.

Wilsandy 22. Nov 2006 22:49

Re: Fastreport und Barcode
 
Hallo zusammen,
ich war ein paar Tage geschäftlich unterwegs und war ganz überrascht über die interessante
Diskussion bzg. der Prüffziffer auf meinen Lieferschein.
Ich habe mich für die Beibehaltung des Barcods 2,5 interleaved entschieden und werde eine
Prüfziffer nach Moduls 10 anfügen.
Sicherlich mögen die von Euch aufgeführten Barcodes wie 39 oder 128 sicherer sein,
aber ich habe ca. 30 Scanner bei Kunden im Einsatz die diese Lieferscheine scannen.
Im Moment ist das für mich die preisgünstigste Lösung.

Bei neuen Projekten werde ich mich sicherlich für einen fehlerfreieren Barcode entscheiden.
Nochmals vielen Dank für Eure Antworten die mir wirklich geholfen haben.
Viele Grüße Sandra

allensmith 12. Jan 2015 06:42

AW: Fastreport und Barcode
 
I have some question with FastReport 4.0 with Crystal Reports.So I'm looking at using FastReports to replace Crystal Reports. We are doing that so we can upgrade from delphi 5 to XE2.I've created a report in the report designer and when i preview the report everything is fine. but when i try to call the report from delphi the previewer loads but there are zero pages in it. I have no clue what I'm doing wrong at this point and am tired of hitting my head on the wall. Any help would be greatly appreciated.

Der schöne Günther 12. Jan 2015 09:39

AW: Fastreport und Barcode
 
Can you provide a minimal example? There are some methods like
Delphi-Quellcode:
PrepareReport(..)
(or something like that) that have to be called before previewing or printing.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:06 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz