Click to See Complete Forum and Search --> : Developing Commercial Applications
CodedFire
May 26th, 2008, 04:49 PM
Hi Guys,
Ive come to the conclusion that selling little small applications via shareware is never going to help keep the bank balance healty. I dont think thats the sort of programming VB was created for.
So anyway, im thinking the likes of backend systems, EPOS systems stuff like that is the way to go. The problem is, taking the EPOS as an example, how do you find out houw these backend systems work.
I mean i know how id like them to work but thats not how bussiness works, i also know that when you get to a certain level clients come to you with specifics but what do you code before them?
szlamany
May 26th, 2008, 05:09 PM
Is EPOS the same as POS?
CodedFire
May 26th, 2008, 05:11 PM
I would imagine so Electronic Point Of Sale, Point Of Sale. I think so, if im wrong please correct me but i do mean point of sale system with a backend for small shops for instance.
szlamany
May 26th, 2008, 07:15 PM
I "volunteered" recently to create a POS system for a small store. Had them purchase an HP POS hardware system - cash drawer, barcode scanner, receipt printer and mag stripe scanner. We then spent many hours absorbing the POS hardware driver doc - and got a system running for them.
Our business is typically with larger enterprise customers - this POS shop was not our normal place to be. This was a problem since they needed every minor detail about inventory and receivables and that whole retail-store-front stuff put into place. (long story short - never, ever, ever, never - did I say never - volunteer to help someone with your coding efforts!).
At any rate - I guess the point I'm trying to make - is that you need to focus on some business type to get started.
And remember you are competing against some truly well known shrink-wrap products - like quick-books - and even MS has a POS product.
I guess that's why value-added software has a market.
Have you thought about what venue you want to market your product/services towards?
CodedFire
May 27th, 2008, 03:42 PM
Actually ive seen MS's product, it isnt very user friendly at all. Im actually on more of a fact finding mission here. Everyone has to start somewhere when it comes designing commercial software. For instance, a guy came to vodafone recently with a new type of EPOS which he claimed had advanced reporting features and could intergrate with current systems in H/O.
I sadly didnt get to talk to him much, i am curious as to how he knew what our head office functions like, even i dont know what applications are in use there. Is it advisable to spend some time in a software house, learning your trade as it where.
Dont get me wrong im a long way away from enterprise grade applications but i would like to start on the right track.
dclamp
May 27th, 2008, 09:35 PM
I have tried making a POS application as well.
It is generally easy, until you get to the discounts and markups. I guess i just didnt look into it very well, but i found it to be quite difficult to do advanced items.
szlamany
May 27th, 2008, 09:43 PM
When we did the "gratis" app for the small store we ran into exactly that same type of issue - and many other little details that kept cropping up.
And I guess that comes down to the basic issue.
You have things like QUICK BOOKS - shrink wrapped - more then supports POS. And it's cheap.
And you want to offer a better solution to that. And you charge more.
And then you get to enterprise level apps where the client continues to pay fees so you continue to be invested in making enhancements. And you charge even more.
How do you make a mom&pop shop want more then QB? How far can you drive their fees to keep your interest?
dclamp
May 27th, 2008, 09:50 PM
ATM, i am still looking to make a new and improved version of my POS app, and i am always looking around for some open source ones to get ideas from.
I looked into the MS one, but looks like you need to buy the whole set up. Do you know if there is a way to download a trial of the software OR of any GOOD POS software that is free?
szlamany
May 27th, 2008, 09:56 PM
I thought the POS namespace was part of .Net? We had to use VB6 for our delivery so I never got into the .Net aspect. I thought that MS actually bought the company that did the POS DLL's and put that into .Net...
dclamp
May 27th, 2008, 09:57 PM
I dont think that it is a part of .net... from what i know. I will have to look into it
szlamany
May 27th, 2008, 10:03 PM
http://msdn.microsoft.com/en-us/library/microsoft.pointofservice.baseserviceobjects.aspx
The namespace is supposed to separate your app from the POS hardware. They all work pretty much the same - CAPTURE the device - OPEN it - talk to it - FREE it up.
dclamp
May 27th, 2008, 10:06 PM
hmm, i will have to try that out then... Do you know of any other software (free)?
szlamany
May 27th, 2008, 10:06 PM
Here's some VB6 code. Was a total waste of my time and money to develop.
Maybe someone else can benefit from the headache it was
Private WithEvents cd As OPOSCashDrawer
Public WithEvents rp As OPOSPOSPrinter
Private Const rpStation As Long = 2
Private Sub cmdClose_Click()
frmPOS.Hide
End Sub
Private Sub Form_Load()
Set cd = New OPOSCashDrawer
Set rp = New OPOSPOSPrinter
rp.MapMode = 3
End Sub
Public Function InitCashDrawer(strDevice As String) As Boolean
Dim rc As Long
If Not gbooPOSOn Then
gModal = True
Call MsgBox("POS is off - InitCashDrawer", vbOKOnly, "POS")
gModal = False
Exit Function
End If
InitCashDrawer = False
strCashDrawer = strDevice
rc = cd.Open(strCashDrawer)
If rc <> 0 Then
gModal = True
Call MsgBox("InitCashDrawer Open=" & CStr(rc), vbOKOnly, "POS")
gModal = False
Exit Function
End If
rc = cd.ClaimDevice(1000)
If rc <> 0 Then
gModal = True
Call MsgBox("InitCashDrawer ClaimDevice=" & CStr(rc), vbOKOnly, "POS")
gModal = False
Exit Function
End If
cd.DeviceEnabled = True
InitCashDrawer = True
End Function
Public Function OpenCashDrawer() As Boolean
Dim rc As Long
If Not gbooPOSOn Then
gModal = True
Call MsgBox("POS is off - OpenCashDrawer", vbOKOnly, "POS")
gModal = False
Exit Function
End If
rc = cd.OpenDrawer
If rc <> 0 Then
gModal = True
Call MsgBox("OpenCashDrawer OpenDrawer=" & CStr(rc), vbOKOnly, "POS")
gModal = False
Exit Function
End If
OpenCashDrawer = True
End Function
Public Function UnloadCashDrawer() As Boolean
Dim rc As Long
If Not gbooPOSOn Then
gModal = True
Call MsgBox("POS is off - UnloadCashDrawer", vbOKOnly, "POS")
gModal = False
Exit Function
End If
UnloadCashDrawer = False
cd.DeviceEnabled = False
rc = cd.ReleaseDevice()
If rc <> 0 Then
gModal = True
Call MsgBox("UnloadCashDrawer ReleaseDevice=" & CStr(rc), vbOKOnly, "POS")
gModal = False
Exit Function
End If
rc = cd.Close
If rc <> 0 Then
gModal = True
Call MsgBox("UnloadCashDrawer Close=" & CStr(rc), vbOKOnly, "POS")
gModal = False
Exit Function
End If
UnloadCashDrawer = True
End Function
Public Function InitPrinter(strDevice As String) As Boolean
Dim rc As Long
If Not gbooPOSOn Then
gModal = True
Call MsgBox("POS is off - InitPrinter", vbOKOnly, "POS")
gModal = False
Exit Function
End If
InitPrinter = False
strPrinter = strDevice
rc = rp.Open(strPrinter)
If rc <> 0 Then
gModal = True
Call MsgBox("InitPrinter Open=" & CStr(rc), vbOKOnly, "POS")
gModal = False
Exit Function
End If
rc = rp.ClaimDevice(1000)
If rc <> 0 Then
gModal = True
Call MsgBox("InitPrinter ClaimDevice=" & CStr(rc), vbOKOnly, "POS")
gModal = False
Exit Function
End If
rp.DeviceEnabled = True
'rp.FreezeEvents = True
InitPrinter = True
End Function
Public Function ReceiptLine(strLine As String, Optional booNoSave As Boolean, Optional booClear As Boolean) As Boolean
Dim rc As Long
If booClear Then txtRP.Text = ""
If Not booNoSave Then txtRP.Text = txtRP.Text & strLine & vbCrLf
If Not gbooPOSOn Then
'gModal = True
'Call MsgBox("POS is off - Receipt Line", vbOKOnly, "POS")
'gModal = False
Exit Function
End If
rc = rp.PrintNormal(rpStation, strLine & vbCrLf)
If rc <> 0 Then
gModal = True
Call MsgBox("InitPrinter Print test line=" & CStr(rc), vbOKOnly, "POS")
gModal = False
Exit Function
End If
End Function
Public Function CutReceipt() As Boolean
Dim rc As Long, i As Long
Dim rl() As String
rl = Split(txtRP.Text, vbCrLf)
If Not gbooPOSOn Then
gModal = True
Call MsgBox("POS is off - Cut Receipt", vbOKOnly, "POS")
gModal = False
frmPOS.Show 1
Exit Function
End If
If rp.CapRecPresent = False Then
gModal = True
Call MsgBox("CutReceipt CapRecPresent is false", vbOKOnly, "POS")
gModal = False
Exit Function
End If
If rp.CapRecPapercut = False Then
gModal = True
Call MsgBox("CutReceipt CapRecPapercut is false", vbOKOnly, "POS")
gModal = False
Exit Function
End If
For i = 1 To 10
If i = 1 Then
rc = rp.PrintNormal(rpStation, "_______________________________________" & vbCrLf)
Else
rc = rp.PrintNormal(rpStation, "" & vbCrLf)
End If
If rc <> 0 Then
gModal = True
Call MsgBox("Cut Receipt Blank Line=" & CStr(rc), vbOKOnly, "POS")
gModal = False
Exit Function
End If
Next i
rc = rp.PrintNormal(rpStation, Chr(27) & "|90P") ' 2 = PTR_S_RECEIPT
If rc <> 0 Then
gModal = True
Call MsgBox("InitPrinter Cut paper 90=" & CStr(rc), vbOKOnly, "POS")
gModal = False
Exit Function
End If
rc = rp.PrintNormal(rpStation, "** Store Copy **" & vbCrLf) ' 2 = PTR_S_RECEIPT
rc = rp.PrintNormal(rpStation, "" & vbCrLf) ' 2 = PTR_S_RECEIPT
For i = 0 To UBound(rl)
rc = rp.PrintNormal(rpStation, rl(i) & vbCrLf) ' 2 = PTR_S_RECEIPT
If rc <> 0 Then
gModal = True
Call MsgBox("InitPrinter Receipt Copy=" & CStr(rc), vbOKOnly, "POS")
gModal = False
Exit Function
End If
Next i
For i = 1 To 10
If i = 1 Then
rc = rp.PrintNormal(rpStation, "_______________________________________" & vbCrLf)
Else
rc = rp.PrintNormal(rpStation, "" & vbCrLf)
End If
If rc <> 0 Then
gModal = True
Call MsgBox("Cut Receipt Blank Line=" & CStr(rc), vbOKOnly, "POS")
gModal = False
Exit Function
End If
Next i
rc = rp.PrintNormal(rpStation, Chr(27) & "|100P") ' 2 = PTR_S_RECEIPT
If rc <> 0 Then
gModal = True
Call MsgBox("InitPrinter Cut paper 100=" & CStr(rc), vbOKOnly, "POS")
gModal = False
Exit Function
End If
''rc = rp.PrintNormal(rpStation, Chr(27) & "|100P") ' 2 = PTR_S_RECEIPT
'rc = rp.CutPaper(100)
'
'If rc <> 0 Then
' 'If rc <> 114 Then
' gModal = True
' Call MsgBox("CutReceipt CutReceipt=" & CStr(rc), vbOKOnly, "POS")
' gModal = False
' 'End If
' Exit Function
'End If
CutReceipt = True
End Function
Public Function UnloadPrinter() As Boolean
Dim rc As Long
If Not gbooPOSOn Then
gModal = True
Call MsgBox("POS is off - UnloadPrinter", vbOKOnly, "POS")
gModal = False
Exit Function
End If
UnloadPrinter = False
rp.DeviceEnabled = False
rc = rp.ReleaseDevice()
If rc <> 0 Then
gModal = True
Call MsgBox("UnloadPrinter ReleaseDevice=" & CStr(rc), vbOKOnly, "POS")
gModal = False
Exit Function
End If
rc = rp.Close
If rc <> 0 Then
gModal = True
Call MsgBox("UnloadPrinter Close=" & CStr(rc), vbOKOnly, "POS")
gModal = False
Exit Function
End If
UnloadPrinter = True
End Function
'Private Sub rp_ErrorEvent(ByVal ResultCode As Long, ByVal ResultCodeExtended As Long, ByVal ErrorLocus As Long, pErrorResponse As Long)
'MsgBox ("RC: " & ResultCode & vbCrLf & "RCExt: " & ResultCodeExtended)
'End Sub
Private Sub rp_ErrorEvent(ByVal ResultCode As Long, ByVal ResultCodeExtended As Long, ByVal ErrorLocus As Long, pErrorResponse As Long)
'txtRP.Text = CStr(ResultCodeExtended)
End Sub
Private Sub rp_StatusUpdateEvent(ByVal Data As Long)
'txtRP.Text = txtRP.Text & CStr(Data) & vbCrLf
End Sub
dclamp
May 27th, 2008, 11:59 PM
thanks for that, i will have to take a look at it. Just by looking at it, it looks useful.
vbforums.com
Copyright Internet.com Inc., All Rights Reserved.