Welcome To The Home Of The Visual FoxPro Experts  
home. signup. forum. archives. search. google. articles. downloads. faq. members. weblogs. file info. rss.
 From: Pete Sass
  Where is Pete Sass?
 Marathon, Ontario
 Pete Sass
 To: Benny Thomas
  Where is Benny Thomas?
 Saudi Arabia
 Benny Thomas
Subject: RE: POS System - question for Mr. Pete
Thread ID: 22831 Message ID: 22834 # Views: 18 # Ratings: 0
Version: Visual FoxPro 6 Category: General VFP Topics
Date: Monday, April 28, 2003 3:21:31 AM         

> I am specifically addressing this to Mr. Pete as I understand that you have experience in this sytem. However, a reply from any foxite expert welcome.
> Currently I have a inventory sytem written in VFP 6. The system runs on a Windows NT Server and Windows 9X clients. Uses normal dot-matrix to print invocies. The client now wants to install an IBM SureOne POS Machine with Pole Display, Receipt Printer, Cash Drawer. They want to use the existing inventory program on this new system with required modification. So far I have not written a POS system. Can you briefly describe the changes that may be needed to the existing program. What I should do to display each item invocied on the pole display, how do I print to a receipt printer, is it through a VFP report? At what point the cash drawer is opened? etc. etc.
> May be I am asking too much. But thanks for help.
> Benny


OK.... here goes some basics!

1. Receipt printers: Usually dedicated as a local printer on the workstation installed as a
parallel on LPT1 port. If like an Epson T88-III receipt printer, there is a 232 port on the
back of the receipt printer that utilizes a cable to plug into the cash drawer's matching 232
port to electronically open the cash drawer.
Here is an example of the type of code usually in a prg to open a cash drawer:

* --- OPENDRW.PRG - To open the cash drawer
* --- Author : Peter M. Sass
* --- Company: My Own
* --- Date : 2002.05.16
* --- Target : Epson T88-III printer

* --- Set safety off to stop system promt when
* --- over writting a file

* --- Set the system environment device to target a file
* --- so any printer code sequences will be stored in
* --- a print file.
SET DEVICE TO FILE o_drawer.prn

* --- Send the Epson T88-III printer control sequence
* --- that will trigger the cash drawer opening
* --- Note: Make sure the designated print location
* --- for the aschii printer characters are set
* --- to 00,00 to stop any line feed advancing
@ 00,00 SAY CHR(27)+CHR(112)+CHR(00)+CHR(50)+CHR(100)

* --- Set the global system device back to the screen
* --- so you again have access to the system monitor.
* --- Copy the print file prepared, raw to the lpt1 port
* --- using the lpt1.dos file directive

COPY FILE o_drawer.prn TO lpt1.dos

* --- Set safety back on, if over writting prompt needed
* --- (Edit and remove * below to effect over writing
* --- of file prompt to appear.


* --- Return to the calling program
* --- End of program

You have to discuss with the company when they want to open the cash drawer.
- Only when taking tenders?
- Having a command button to open when-ever they wish?
- Only opening when not tendering via a manager password to authorize
getting to the cash?

Hopfully the printer that the company gets supports Windows print driver for
custom sizes and roll paper. The Epson T-88 does support this through the
Windows print driver supplied with the printer. In this case I can in the
Printer properties setup the printer for continuous roll paper, and use the
normal VFP report writer to quickly create the invoice.
Ensure the company purchases a printer that will do this for you, or you
are into hand-bombing the invoices...uggg!!!
I just got through purchasing 3 Epson T88's for $460.00 Canadian each.
They are fast, quite, and thermal heat type of printers. Not much to go
wrong and support 3.25 and 3.5 inch wide rolls. Overall and excellent
choice for the money for POS receipt printers. These are my #1 choice.
ps... All Windows fonts are supported via the driver.

In the pole displays I have worked with they worked via a comm port that connected
them to the computer. Using the MScomm activeX control you can send data to the
comm buffer and it will be displayed on the display. However, each make can be
different in how it can handle data. You need to obtain exactly what make and model
of the Pole Display is being considered, and I would usually give a call to the pole
display company's tech support to exactly verify what the pole can handle.
Ie: Maximum string length of the display

You will certainly need to code a seperate prg to clear and update the pole display.

In cases like these I generally will keep the printer-cash drawer opening and update
the pole display in seperate prgs. Thus I can test and debug simply by running the

Overall, the changes to an existing POS application should not be that extensive
if you get easy to work with hardware. Once the two prg's are codes and
working 100%, then it is up to the company to make the decisions as to
when the cash drawer is opening, and when and what is displayed on the
pole display. I have had some user simply want to running sub-total displayed
on the pole display. Other want the item and total show, and when starting the next
item the new sub-total show, then the next item and total, then the running sub-total...etc.
This is something you have to get the company to decide upon and sign off on.

Pete from the Great White North. (Only in Canada, ay.) Over and Out ...


POS System - question for Mr. Pete Posted by Benny Thomas @ 4/27/2003 8:17:19 PM
RE: POS System - question for Mr. Pete Posted by Pete Sass @ 4/28/2003 3:21:31 AM
RE: POS System - question for Mr. Pete - thnks Posted by Benny Thomas @ 4/28/2003 9:25:11 AM
RE: POS System - "One Correction !" Posted by Pete Sass @ 4/28/2003 1:43:20 PM