Works perfectly Emmitt - Thanks very much!
Output to file and copy to file to LPT was the answer.
Client was extremely pleased (as was I, but I tried to non-chalant :)
Now they're looking forward to batch processing and other neat stuff they couldn't do in their old system.

Thanks again.
Doug

Doug Hamilton wrote:
Thanks Emmitt, I'll give it a try this aft when I'm onsite.
output Label.TXT
write .vAllTheStuff
output screen
copy Label.TXT LPT2

Like that?

I guess I missed the subtlety of "Copy the file to the print queue when it is complete" in your 1st response. Sorry.

Tnx, Doug

Emmitt Dove wrote:

Doug,

 

When you print from RBG76, the Windows print engine gets involved, whereas under DOS you’re managing to bypass it.  The Windows print engine strips the control codes.

 

Try printing the entire set of label commands to a file, then copy that file to the printer.

 

Emmitt Dove

Manager, Converting Applications Development

Evergreen Packaging, Inc.

[email protected]

(203) 214-5683 m

(203) 643-8022 o

(203) 643-8086 f

[email protected]

 

From: [email protected] [mailto:[email protected]] On Behalf Of Doug Hamilton
Sent: Thursday, February 26, 2009 10:45 AM
To: RBASE-L Mailing List
Subject: [RBASE-L] - RE: DataMax label printer

 

Thanks for your reply Emmitt.  I'm glad to know there are other DataMax users out there, though I guess I sgouldn't have doubted it considering the depth and breadth of expreience on this list.

Client's current setup of printing labels to a local DataMax (on LPT2) from R:Base DOS is working fine and I don't want to change it.  My question, which I didn't explicitly state, is why aren't the control codes get translated into labels by DataMax when they are printed using RB 7.6?  They run perfectly in RBDOS (2.11) on the same computer.

Thanks much,
Doug

Emmitt Dove wrote:

Doug,

 

We use Datamax printers extensively.  What we do is:

 

Set up a network print queue that indicates the printer is a generic text printer, using the RAW driver

Write the code for the Datamax to a file

Copy the file to the print queue when it is complete

 

If the printer is directly attached to the PC doing the work, as opposed to being defined as a network printer, then you may need to share the printer on the PC then do a NET USE to capture the printer for the above to work.

 

Emmitt Dove

Manager, Converting Applications Development

Evergreen Packaging, Inc.

[email protected]

(203) 214-5683 m

(203) 643-8022 o

(203) 643-8086 f

[email protected]

 

From: [email protected] [mailto:[email protected]] On Behalf Of Doug Hamilton
Sent: Wednesday, February 25, 2009 6:41 PM
To: RBASE-L Mailing List
Subject: [RBASE-L] - DataMax label printer

 

Greetings List.
I'm converting an RBDOS (2.11?) app to RB 7.6 and having problems printing bar code labels on a DataMax DMXI 4208 label printer.  It is a parallel printer hooked up to LPT2.
Instead of printing bar codes and formatted part numbers, it's printing the actual data strings that I'm sending to the printer.

The a portion of the print command in RBase 7.6 looks like:
OUTPUT LPT2
SET LINEEND=(CHAR(13))

WRITE .V2
WRITE .QTYLABEL
WRITE "H13"
WRITE "PO"
WRITE .PEACEN
...
OUTPUT SCREEN

SET LINEEND=(CHAR(þ))

V2, QTYLABEL and PEACEN are previously defined variables, e.g.
SET VAR peacen = ('13110010130020' + (RJS(.qtybatch,4)) & .vpieces)
The '13110010130020' is position, font & other formatting codes that is processed by the DataMax.
What actually prints on the label is:
13110010130020   1 PIECE

The code is straight from the working RBDOS app except I've added the SET LINEEND=(CHAR(13)).
I've compared RBDOS & RB7.6 text files of the output using a hex editor and they are the same.  

LPT2 is assigned to the DataMax printer and uses a DataMax driver.  It is set up to Spool Print Documents and Start Printing Immediately - I thought that might be messing it up but it works it works for RBDOS and I don't want to muck around and mess up the successful RBDOS printing.

Notice I set  LINEEND to (CHAR(13))  and set it back to þ (0254) after outputting to screen
Should the LINEEND be set before the OUTPUT LPT2 statement?

They're running  Win XP.

Thanks much,
Doug

 



Reply via email to