One of our customers wants to print their barcode label from Navision. I quickly searched and find several reports from mibuso.com but i couldn’t run these samples. They’re now using EAN13 barcodes. Version of the Navision is 3.70. I’d be glad if someone else does help me. Regards,
I am not sure waht do you want to print in the lables, but all I can say is, what ever you want to print as Bar Code, than in the report section, create a text box, define the source code and FONT NAMe as EAN13. Let me know, what do you want to print, so I can tell you more in detail. Naveen Jain
Dear Navin; Thank you for your reply. Our customer sells women knitwear in different sizes and colors. We’re using variant options in Navision to monitor these variations. . We’ve also defined unique Item Cross References for each variant of any product as a barcode (EAN13). We’re trying to print barcode label which contains barcode (for barcode readers or hand held devices), item description and unit price in 2 currencies. I want only to show item cross reference field for each variant in a report in EAN13 barcode labeling standard. Remaining data will be text. Thanks,
When you are printing the Barcode Label, Withe help of report designer, you can change the Font Name of the bar code TEXT BOX to Code EAN13 and also change the Font Size probably to 20. Make sure you have already install the font EAN13.ttf on the system you are running this report. now when you run your report, system will print the bar code for this text box. Hope this will help. Naveen Jain
It’s not that easy, first you have to convert your barcode number with an algorithm, and then print the resulting number as mentioned by Naveen. Here you will probably find out more: http://www.barcode-1.net/ or search the Internet (I only have a description in German) regards, Daniel Zimmermann
Many Bar Code printers such as the Zebra type have built in commands to print barcodes rather than having to use fonts. You need to write these commands to LPT1 using the file handling routines. Just output to LPT.txt and it should get go straight to the printer. This will produce faster printing and probable better bar codes. The info on commands is on the print driver CD.
Here is some code we use to encode EAN: GetPrintTextEAN13(EAN : Text[30]) BarcodeEAN : Text[30] // Create EAN13 Print Text to print with TTF IF (EAN = '') THEN EXIT; IF (STRLEN(EAN) <> 13) THEN EXIT(''); // Find Selection CLEAR(BarcodeEAN); Flag1 := COPYSTR(EAN, 1, 1); Flag2 := COPYSTR(EAN, 2, 1); LeftPart := COPYSTR(EAN, 3, 5); RightPart := COPYSTR(EAN, 8, 5); Check := COPYSTR(EAN, 13, 1); // Define Pattern CASE Flag1 OF '0' : Pattern := 'AAAAA'; '1' : Pattern := 'ABABB'; '2' : Pattern := 'ABBAB'; '3' : Pattern := 'ABBBA'; '4' : Pattern := 'BAABB'; '5' : Pattern := 'BBAAB'; '6' : Pattern := 'BBBAA'; '7' : Pattern := 'BABAB'; '8' : Pattern := 'BABBA'; '9' : Pattern := 'BBABA'; END; // Convert Chars. Flag 1 CASE Flag1 OF '0' : Char := 33; '1' : Char := 34; '2' : Char := 35; '3' : Char := 36; '4' : Char := 37; '5' : Char := 38; '6' : Char := 39; '7' : Char := 40; '8' : Char := 41; '9' : Char := 42; END; Flag1[1] := Char; // Convert Chars. Flag 2 CASE Flag2 OF '0' : Char := 96; '1' : Char := 97; '2' : Char := 98; '3' : Char := 99; '4' : Char := 100; '5' : Char := 101; '6' : Char := 102; '7' : Char := 103; '8' : Char := 104; '9' : Char := 105; END; Flag2[1] := Char; // Convert Left Part FOR i := 1 TO STRLEN(LeftPart) DO IF Pattern[i] = 'A' THEN BEGIN // Character Set Left A CASE LeftPart[i] OF '0' : Char := 48; '1' : Char := 49; '2' : Char := 50; '3' : Char := 51; '4' : Char := 52; '5' : Char := 53; '6' : Char := 54; '7' : Char := 55; '8' : Char := 56; '9' : Char := 57; END; LeftPart[i] := Char; END ELSE BEGIN // Character Set Left B CASE LeftPart[i] OF '0' : Char := 64; '1' : Char := 65; '2' : Char := 66; '3' : Char := 67; '4' : Char := 68; '5' : Char := 69; '6' : Char := 70; '7' : Char := 71; '8' : Char := 72; '9' : Char := 73; END; LeftPart[i] := Char; END; // Convert Right Part FOR i := 1 TO STRLEN(RightPart) DO BEGIN // Character Set Right C CASE RightPart[i] OF '0' : Char := 80; '1' : Char := 81; '2' : Char := 82; '3' : Char := 83; '4' : Char := 84; '5' : Char := 85; '6' : Char := 86; '7' : Char := 87; '8' : Char := 88; '9' : Char := 89; END; RightPart[i] := Char; END; // Convert CheckDigit CASE Check OF '0' : Char := 112; '1' : Char := 113; '2' : Char := 114; '3' : Char := 115; '4' : Char := 116; '5' : Char := 117; '6' : Char := 118; '7' : Char := 119; '8' : Char := 120; '9' : Char := 121; END; Check[1] := Char; BarcodeEAN := STRSUBSTNO('%1%2%3|%4%5', Flag1, Flag2, LeftPart, RightPart, Check); EXIT(BarcodeEAN);
The encoded BarcodeEAN has to be printed with a EAN font. Hope this helps a little! Regards,
Have I missed something here or can you use STRCHECKSUM()
Regarding Barcoding, especiall when it’s about EAN, Int2of5 etc. there are still these rumors around like ‘just use a EAN font’ or ‘STRCHECKSUM is enough’ - it’s not that easy: You have an EAN13 number like this 4005800061103 You have to encode this into this: %@58@@|PVQQPs** You have to print this **%
@58@@|PVQQPs with a EAN font to receive the barcode You could use STRCHECKSUM to calcualte the check-digit of an EAN number, e.g.: If you have 400580006110 (12 digits) you have to use STRCHECKSUM('400580006110', '131313131313', 10);
to calculate the 3 as check-digit (useful to validate a EAN). Regards,