PDA

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.