Marc,

I have used a routine for the past years that creates a "3 of 9"
barcode.  Not a true UPC format, but read by almost any barcode reader
out there.

Beyond that, It can also be used for barcoding invoice numbers,
customer numbers, etc,

The way I use it is to create the barcode and then swap out the code
for a tagged field in a print template.

I have listed it below.

HTH,

Robert

    SUBROUTINE BARCODE.PCL.SUB
(BARCODE.INPUT,BARCODE.OUTPUT,BARCODE.HEIGHT)
* @(#) BARCODE.PCL.SUB Ported to jBASE 11:52:13  01 MAY 2007
    IF BARCODE.HEIGHT = "" THEN BARCODE.HEIGHT = "90"
    BARCODE.OUTPUT = ""
    BARCODE.OUTPUT = BARCODE.OUTPUT: CHAR(27):"*p-":BARCODE.HEIGHT:"Y"
*** add *'s for Code 3 of 9 delimiters ***
    WORK.BARCODE.INPUT = "*":OCONV(BARCODE.INPUT,'MCU'):"*"
    XX = LEN(WORK.BARCODE.INPUT)
    FOR K = 1 TO XX
        THECHAR = WORK.BARCODE.INPUT[K,1]
        GOSUB MAKE.CHAR
        FOR P = 1 TO 9
            X = MOD(P,2)
            NW = PATTERN[P,1]
            IF NW = "." THEN W = "3" ELSE W = "9"
            IF X # 0 THEN
                BARCODE.OUTPUT = BARCODE.OUTPUT:CHAR
(27):"*c":W:"a":BARCODE.HEIGHT:"b0P"
                BARCODE.OUTPUT = BARCODE.OUTPUT:CHAR(27):"*p+":W:"X"
            END ELSE
                BARCODE.OUTPUT = BARCODE.OUTPUT:CHAR(27):"*p+":W:"X"
            END
        NEXT P
        BARCODE.OUTPUT = BARCODE.OUTPUT:CHAR(27):"*p+10X"
    NEXT K

    RETURN
MAKE.CHAR:
    BEGIN CASE
    CASE THECHAR = '1' ; PATTERN ="-..-....-"
    CASE THECHAR = '2' ; PATTERN ="..--....-"
    CASE THECHAR = '3' ; PATTERN ="-.--....."
    CASE THECHAR = '4' ; PATTERN ="...--...-"
    CASE THECHAR = '5' ; PATTERN ="-..--...."
    CASE THECHAR = '6' ; PATTERN ="..---...."
    CASE THECHAR = '7' ; PATTERN ="...-..-.-"
    CASE THECHAR = '8' ; PATTERN ="-..-..-.."
    CASE THECHAR = '9' ; PATTERN ="..--..-.."
    CASE THECHAR = '0' ; PATTERN ="...--.-.."
    CASE THECHAR = 'A' ; PATTERN ="-....-..-"
    CASE THECHAR = 'B' ; PATTERN ="..-..-..-"
    CASE THECHAR = 'C' ; PATTERN ="-.-..-..."
    CASE THECHAR = 'D' ; PATTERN ="....--..-"
    CASE THECHAR = 'E' ; PATTERN ="-...--..."
    CASE THECHAR = 'F' ; PATTERN ="..-.--..."
    CASE THECHAR = 'G' ; PATTERN =".....--.-"
    CASE THECHAR = 'H' ; PATTERN ="-....--.."
    CASE THECHAR = 'I' ; PATTERN ="..-..--.."
    CASE THECHAR = 'J' ; PATTERN ="....---.."
    CASE THECHAR = 'K' ; PATTERN ="-......--"
    CASE THECHAR = 'L' ; PATTERN ="..-....--"
    CASE THECHAR = 'M' ; PATTERN ="-.-....-."
    CASE THECHAR = 'N' ; PATTERN ="....-..--"
    CASE THECHAR = 'O' ; PATTERN ="-...-..-."
    CASE THECHAR = 'P' ; PATTERN ="..-.-..-."
    CASE THECHAR = 'Q' ; PATTERN ="......---"
    CASE THECHAR = 'R' ; PATTERN ="-.....--."
    CASE THECHAR = 'S' ; PATTERN ="..-...--."
    CASE THECHAR = 'T' ; PATTERN ="....-.--."
    CASE THECHAR = 'U' ; PATTERN ="--......-"
    CASE THECHAR = 'V' ; PATTERN =".--.....-"
    CASE THECHAR = 'W' ; PATTERN ="---......"
    CASE THECHAR = 'X' ; PATTERN =".-..-...-"
    CASE THECHAR = 'Y' ; PATTERN ="--..-...."
    CASE THECHAR = 'Z' ; PATTERN =".--.-...."
    CASE THECHAR = '-' ; PATTERN =".-....-.-"
    CASE THECHAR = '.' ; PATTERN ="--....-.."
    CASE THECHAR = ' ' ; PATTERN =".--...-.."
    CASE THECHAR = '*' ; PATTERN =".-..-.-.."
    CASE THECHAR = '$' ; PATTERN =".-.-.-..."
    CASE THECHAR = '/' ; PATTERN =".-.-...-."
    CASE THECHAR = '+' ; PATTERN =".-...-.-."
    CASE THECHAR = '%' ; PATTERN ="...-.-.-."
    END CASE
    RETURN
END

On Dec 20, 10:50 pm, Marc <[email protected]> wrote:
> Greetings all,
>
> I am looking for a simple(?) way to convert a part number and print
> the number along with the upc barcode for that number on a plain paper
> report.  I have laser and inkjet printers available.  The discussion
> pages go back a few years and I was wondering if there are any more
> current solutions available.
>
> As always, any help will be appreciated.
>
> Marc Zitcer

-- 
Please read the posting guidelines at: 
http://groups.google.com/group/jBASE/web/Posting%20Guidelines

IMPORTANT: Type T24: at the start of the subject line for questions specific to 
Globus/T24

To post, send email to [email protected]
To unsubscribe, send email to [email protected]
For more options, visit this group at http://groups.google.com/group/jBASE?hl=en

Reply via email to