web
You’re offline. This is a read only version of the page.
close
Skip to main content

Notifications

Announcements

No record found.

Community site session details

Community site session details

Session Id :
Microsoft Dynamics NAV (Archived)

Generating UPC-A Barcode in Microsoft SQL 2014 Report Builder

(0) ShareShare
ReportReport
Posted on by

We're trying to generate UPC-A barcodes in a Report object based on an item's UPC/EAN field such as 012427006007.

Currently we're using a code39 barcode font to accomplish this, but need to use UPC-A instead. All the UPC-A fonts I've tried require encoded text to work properly but I'm uncertain how to add that functionality to Report Builder.

Microsoft-SQL-Server-Report-Builder.png

For instance, using the UPC-A ID Automation Font, you have to use the Encoded Text to properly generate a UPC-A label.

http://www.bcgen.com/fontencoder/

2017_2D00_08_2D00_02-09_5F00_16_5F00_14_2D00_On_2D00_Line-Barcode-Font-Encoder.png

Example of the UPC-A font use in Word:

2017_2D00_08_2D00_02-09_5F00_26_5F00_57_2D00_Document1-_2D00_-Word.png

I've been referring to this site for possible solutions but uncertain how to implement into MSQL 2014 Report Builder

http://www.idautomation.com/barcode-properties/symbologies/upc-a.html

Any ideas or suggestions would be appreciated.

Thanks!

*This post is locked for comments

I have the same question (0)
  • Suggested answer
    Suresh Kulla Profile Picture
    50,243 Super User 2025 Season 2 on at

    Please check this link

    www.archerpoint.com/.../printing-barcodes-rtc-report

  • Verified answer
    Community Member Profile Picture
    on at

    Hi Derek,

    May be this code will helps you

    please find below

    PROCEDURE CreateUPCAFont@1000000001(CommonItemNo@1000000030 : Code[20]) UPCFontCode : Text[20];
    VAR
    UPCCode@1000000000 : Text[20];
    UPCFont@1000000001 : Text[20];
    OddNo@1000000002 : Integer;
    EvenNo@1000000003 : Integer;
    EvenStr1@1000000004 : Text[30];
    EvenStr2@1000000005 : Text[30];
    EvenStr3@1000000006 : Text[30];
    EvenStr4@1000000007 : Text[30];
    EvenStr5@1000000008 : Text[30];
    EvenNo1@1000000009 : Integer;
    EvenNo2@1000000010 : Integer;
    EvenNo3@1000000011 : Integer;
    EvenNo4@1000000012 : Integer;
    EvenNo5@1000000013 : Integer;
    OddStr1@1000000014 : Text[30];
    OddStr2@1000000015 : Text[30];
    OddStr3@1000000016 : Text[30];
    OddStr4@1000000017 : Text[30];
    OddStr5@1000000018 : Text[30];
    OddStr6@1000000019 : Text[30];
    OddNo1@1000000020 : Integer;
    OddNo2@1000000021 : Integer;
    OddNo3@1000000022 : Integer;
    OddNo4@1000000023 : Integer;
    OddNo5@1000000024 : Integer;
    OddNo6@1000000025 : Integer;
    CheckDigit@1000000026 : Integer;
    WorkChar@1000000028 : Text[1];
    i@1000000029 : Integer;
    BEGIN
    UPCCode := COPYSTR(CommonItemNo,1,11);

    OddStr1 := COPYSTR(UPCCode,1,1);
    OddStr2 := COPYSTR(UPCCode,3,1);
    OddStr3 := COPYSTR(UPCCode,5,1);
    OddStr4 := COPYSTR(UPCCode,7,1);
    OddStr5 := COPYSTR(UPCCode,9,1);
    OddStr6 := COPYSTR(UPCCode,11,1);
    EVALUATE(OddNo1,OddStr1);
    EVALUATE(OddNo2,OddStr2);
    EVALUATE(OddNo3,OddStr3);
    EVALUATE(OddNo4,OddStr4);
    EVALUATE(OddNo5,OddStr5);
    EVALUATE(OddNo6,OddStr6);
    OddNo := OddNo1 + OddNo2 + OddNo3 + OddNo4 + OddNo5 + OddNo6;
    OddNo := OddNo * 3;

    EvenStr1 := COPYSTR(UPCCode,2,1);
    EvenStr2 := COPYSTR(UPCCode,4,1);
    EvenStr3 := COPYSTR(UPCCode,6,1);
    EvenStr4 := COPYSTR(UPCCode,8,1);
    EvenStr5 := COPYSTR(UPCCode,10,1);
    EVALUATE(EvenNo1,EvenStr1);
    EVALUATE(EvenNo2,EvenStr2);
    EVALUATE(EvenNo3,EvenStr3);
    EVALUATE(EvenNo4,EvenStr4);
    EVALUATE(EvenNo5,EvenStr5);
    EvenNo := EvenNo1 + EvenNo2 + EvenNo3 + EvenNo4 + EvenNo5;

    CheckDigit := -1;
    REPEAT
    CheckDigit += 1;
    UNTIL (((OddNo + EvenNo + CheckDigit) MOD 10) = 0);

    UPCCode := UPCCode + FORMAT(CheckDigit);

    WorkChar := COPYSTR(UPCCode,1,1);
    CASE WorkChar OF
    '0': WorkChar := 'D';
    '1': WorkChar := 'E';
    '2': WorkChar := 'F';
    '3': WorkChar := 'G';
    '4': WorkChar := 'H';
    '5': WorkChar := 'I';
    '6': WorkChar := 'J';
    '7': WorkChar := 'K';
    '8': WorkChar := 'L';
    '9': WorkChar := 'M';
    END;
    UPCFont := WorkChar + COPYSTR(UPCCode,2,5) + '.';

    FOR i := 7 TO 11 DO BEGIN
    WorkChar := COPYSTR(UPCCode,i,1);
    CASE WorkChar OF
    '0': WorkChar := 'a';
    '1': WorkChar := 'b';
    '2': WorkChar := 'c';
    '3': WorkChar := 'd';
    '4': WorkChar := 'e';
    '5': WorkChar := 'f';
    '6': WorkChar := 'g';
    '7': WorkChar := 'h';
    '8': WorkChar := 'i';
    '9': WorkChar := 'j';
    END;
    UPCFont := UPCFont + WorkChar;
    END;

    WorkChar := COPYSTR(UPCCode,STRLEN(UPCCode),1);
    CASE WorkChar OF
    '0': WorkChar := 'm';
    '1': WorkChar := 'n';
    '2': WorkChar := 'o';
    '3': WorkChar := 'p';
    '4': WorkChar := 'q';
    '5': WorkChar := 'r';
    '6': WorkChar := 's';
    '7': WorkChar := 't';
    '8': WorkChar := 'u';
    '9': WorkChar := 'v';
    END;
    UPCFont := UPCFont + WorkChar;

    UPCFontCode := UPCFont;
    END;

    Thank You

    Ramesh

    --

  • Community Member Profile Picture
    on at

    Thank you all for the suggestions.

    Remus, your C/AL code does exactly what I was asking for. We have it complied in the UPC Report and just need to figure out our UPC-A font's encoded characters and match those up to numbers in the C/AL code.

    I'll provide an update as soon as I figure out the encoding process of our particular UPC-A font.

    Thanks!

  • Suggested answer
    Community Member Profile Picture
    on at

    Hi Derek,

    As per you can use encoding characters in my code instead of alphabeticals. Right?

    Thank you

    Ramesh

  • Community Member Profile Picture
    on at

    To answer your question, Yes, I believe so.

    Need to encode a 12 digit UPC number into alphanumeric. I believe your code offers that functionality with a little tweaking.

  • Community Member Profile Picture
    on at

    Ramesh!

    Your C/AL code worked perfectly for encoding our Item's UPC number to alphabetical for the Barcode font to decode into a readable UPC-A barcode.

    We now have this in production and it's working great.!

    Thank you soo much!

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Responsible AI policies

As AI tools become more common, we’re introducing a Responsible AI Use…

Neeraj Kumar – Community Spotlight

We are honored to recognize Neeraj Kumar as our Community Spotlight honoree for…

Leaderboard > 🔒一 Microsoft Dynamics NAV (Archived)

Last 30 days Overall leaderboard

Featured topics

Product updates

Dynamics 365 release plans