× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



<exhale........>  I hope you are a person who exudes patience, 'cause you're
gonna need it.  I saw the "QMS Magnum card" subject in my inbox and
immediately thought "oh my g.."

Now that I've set the tone <g>, let me dig out the last program I had to
write, doing exactly the same thing you're doing now; taking the code from an
existing, working (?) program and using the guts to print barcodes on your new
report.  What follows is pulled directly from that source member.  Of
particular interest to you should be the ^PY^- "command"; I "printed" this at
the top of every page, just in case someone decided to print a "page range" of
pages.  Since you're printing the control characters, and no bar codes, I
strongly suspect this is your problem.

Hopefully, the ^PY^- will be just what you need to get going.  Otherwise,
you're in for a long haul.  I actually debugged this g..-awful thing by making
changes to a physical flatfile and copying that to a QPRINT file to print; I
didn't actually touch source code for this for about 5 days.

Good luck and Godspeed!

 * * *  TUTORIAL ON USING MAGNUM CODES  * * *
*************************************************************
 Note:  This application prints a manual picking document
 with barcodes.  Use all-around caution when modifying the
 printer file ASN120P.  The barcodes are printed using a
 specialized "Magnum" card in the line printer; this card
 interprets control characters in the print stream to convert
 a character string into a barcode.  A Mannesmann Tally model
 691 printer was used in testing this report.  If you print
 this report on any printer that does not have a Magnum card,
 you will not get barcodes and you will see all of the Magnum
 control codes being sent to the printer (good for
 debugging).

 Of particular difficulty was the ability to print the
 barcode so that it lined up with the text line.  This
 required that both the barcode and the text line be printed
 in "Magnum mode".  Normally, the text would be printed in
 "straight-through mode", but "Magnum mode" takes up the
 entire horizontal band from left to right, wiping out any
 "straight-through mode" text that is "printed" in the same
 horizontal area.

 The QMS technical manual describing the Magnum control
 codes, in a word, sucks.  Although program & printer file
 source members are not normally the place to insert a
 tutorial on utilizing special-case programming techniques, I
 am including a brief guide here because there was particular
 difficulty developing this report as described above; also,
 there is no way to ensure that a separate document would be
 available or locatable at a later date.

 ^PY^-
 Switches "Magnum mode" on.  This must be issued before any
 special Magnum printing takes place and must appear in
 column 1 of the print line.

 ^PN^-
 Switches "Magnum mode" off.  This must be issued after all
 Magnum printing is completed and must appear in column 1 of
 the print line.  If Magnum mode is not switched off, the
 printer remains in Magnum mode (the printer's LCD display
 shows "Online Graphics"), and regular, non-Magnum reports
 that follow may print in an unpredictable manner.

 ^M0308000
 Tells the Magnum controller to print the data that follows
 at 0.3 inches tall and 0.8 inches wide with 0.0 inches &
 0 dots justification down.

 ^T1080
 Tells the Magnum controller to print the data that follows
 at 10.8 inches & 0 dots from the left margin.

 ^BNK
 Tells the Magnum controller to print the data that follows
 as a barcode.  "B" specifies a horizontal barcode, "N"
 specifies "No translation auto-printing" (don't ask), and
 "K" specifies the type of barcode, in this case, an
 "Interleaved 2 of 5".

 ^G
 The "Universal Sequence Terminator" that the Magnum
 controller uses to determine the end of a string of data
 being processed.

 ^I002
 Defines an "Interrupt indicator" to the Magnum controller,
 in this example, an interrupt is to occur after 0.0 inches
 & 2 dots of the current pass is processed.  The Magnum
 terminator ^- (carriage return) is required immediately
 following an "Interrupt indicator".  The technical manual
 devotes an entire chapter to this thing, and it seems that
 its primary purpose is to circumvent the limitations of a
 finite pass buffer.  However, (in conjunction with the ^I000
 used on the text line) it was only after specifying this
 that I was able to get the barcode to print on the same line
 as the text.  In testing, ^I010 meant that the text line
 appeared one tenths of an inch below the barcode.
 Decreasing this number made the barcode print closer to the
 text line.  I did not specify ^I000 on the barcode record
 because it appears from the manual that this is a special
 case that "flushes" the buffer.

 ^M0308000^T1080^BNK1234567 ^G^I002^-
 This string prints an "Interleaved 2 of 5" barcode using a
 value of '1234567' with a height of 0.3 inches and a width
 of 0.8 inches (with no justification), 10.8 inches to the
 right of the left margin.  The interrupt indicator is set on
 to occur after 2 dots of the current pass is processed.

 ^M0101000
 Tells the Magnum controller to print the data that follows
 at 0.1 inches tall and 0.1 inches wide with 0.0 inches &
 0 dots justification down.  This appears to print the normal
 6 lines per inch / 10 characters per inch, even though at
 0.1 inches tall, you'd really be printing at 10 lines per
 inch.  Go with what works.

 ^T0000
 Tells the Magnum controller to print the data that follows
 right at the left margin.

 ^M0101000^T0000textdata....endoftextdata^I000^-
 This string prints a normal text line at the left margin
 consisting of the sample string "textdata....endoftextdata".
 The "interrupted" printing of the barcode is completed.
 IMPORTANT NOTE:  Even though this totally screws up visually
 lining up the columns when developing the report layout, the
 Magnum codes MUST be on the same line as the data.  Attempts
 at trying to "print" the ^M^T sequence on the previous line
 failed, and the only way to get it to work was to keep
 everything on the SAME line.  Don't deviate from this,
 unless you enjoy pulling your hair out.


Dan Bale
IT - AS/400
Handleman Company
248-362-4400  Ext. 4952

-------------------------- Original Message --------------------------
We are trying to print a barcode on a Printronix P300 that has a magnum card
in it using QMS Code V.  We had old programs that used this and copied in
the code for the barcode section but all that prints is the string of
control characters, no barcode.  I know from the archives that other people
are still using this technology so I'm hoping someone can help.  Any help is
appreciated.

Ed Chabot
The Marlin Firearms Company
100 Kenna Drive
North Haven, CT 06473
(203)985-3254
+---
| This is the Midrange System Mailing List!
| To submit a new message, send your mail to MIDRANGE-L@midrange.com.
| To subscribe to this list send email to MIDRANGE-L-SUB@midrange.com.
| To unsubscribe from this list send email to MIDRANGE-L-UNSUB@midrange.com.
| Questions should be directed to the list owner/operator: david@midrange.com
+---

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.