WaveLinkFactory Samples

Using both Visual Basic sample code, the following set of applications will demonstrate the use of the WaveLinkFactory object and its methods.

Visual Basic Sample

Attribute VB_Name = "Module1"
Option Explicit

' Import a sleep function from the kernel32 dll

Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Public wlio As New RFIO
Public wlerror As New RFERROR
Public wlmenu As New RFMENU
Public wlbar As New RFBARCODE
Public wlterm As New RFTERMINAL
Public wlfile As New RFFILE

Public wlwidgcoll As New WaveLinkWidgetCollection
Public wlvervidgcoll As New WaveLinkWidgetCollection
Public wlmaincoll As New WaveLinkWidgetCollection
Public wlcheckboxcoll As New WaveLinkWidgetCollection
Public wlyesnocoll As New WaveLinkWidgetCollection
Public wlfactory As New WaveLinkFactory
Public StartWidget As WaveLinkWidget
Public InfoWidget As WaveLinkWidget
Public DoneWidget As WaveLinkWidget
Public DoneVerWidget As WaveLinkWidget
Public DoneOptButtonWidget As WaveLinkWidget
Public WelcomeMenu As WaveLinkWidget
Public PassCarCheckBox As WaveLinkWidget
Public SUVCheckBox As WaveLinkWidget
Public TruckCheckBox As WaveLinkWidget
Public BoatCheckBox As WaveLinkWidget
Public GVBackButton As WaveLinkWidget
Public GVDoneButton As WaveLinkWidget
Public GVHelpButton As WaveLinkWidget
Public VDYesButton As WaveLinkWidget
Public VDNoButton As WaveLinkWidget

Public wlscribble As New WaveLinkScribblePad

' Global Variables

Dim bDone As Boolean
Dim bStatus As Boolean
Dim bFirstVersion As Boolean
Dim bExitGetVehicleType As Boolean

Dim nError As Integer
Dim nRslt As Integer
Dim nRFTerminalType As Integer
Dim pszWorkType As String
Dim pszModelType As String

Const WLWIDGETTYPE = 8
Const WLPOPUPTRIGGERTYPE = 7
Const WLMENUBARTYPE = 6
Const PDT1740 = 11
Const PDT2740 = 27
Const WIDGETDEVICE = 1111




Public Sub Main()

Initialize
Do Until bDone
Process
Loop
Finish

End Sub

Public Sub Initialize()

bDone = False
' Saves current Barcode Configuration
bStatus = wlbar.PushBarcode("Defltbar")
wlbar.ClearBarcodes
wlbar.StoreBarcode "BarCode", BCENABLED

nRFTerminalType = wlterm.RawTerminalType
Select Case nRFTerminalType
Case PDT1740
nRFTerminalType = WIDGETDEVICE
Case PDT2740
nRFTerminalType = WIDGETDEVICE
End Select
If Welcome() Then
wlio.SetFillChar "_"
If bDone = False Then
wlmenu.ResetMenu
wlmenu.SetMenuWidth 18
wlmenu.AddOption "Basic Car Wash"
wlmenu.AddOption "Basic Wash/Wax"
wlmenu.AddOption "Carnuba Wax"
wlmenu.AddOption "Interior Clean"
wlmenu.AddOption "Full Detail"
wlmenu.AddOption "Special Detail"
wlmenu.AddOption "Device Version"
wlmenu.AddOption "Exit"
wlmenu.StoreMenu "MainMenu"
Select Case nRFTerminalType
Case WIDGETDEVICE
wlmenu.SetStartColumn 2
wlmenu.SetStartRow 4
Case Else
wlmenu.SetStartColumn 1
wlmenu.SetStartRow 3
wlmenu.SetMenuHeight 12
wlmenu.AddTitleLine "Select Option"
wlmenu.AddTitleLine " "
End Select
wlmenu.StoreMenu "MainMenu"
End If

bFirstVersion = True

End If

End Sub

Public Function Welcome() As Boolean
Dim pszWelcomeIn As String
Dim pszWelcomeInDefault As String
Dim nLastInputType As Integer
pszWelcomeIn = ""
pszWelcomeInDefault = ""
Welcome = True
wlio.SetFillChar ""
wlio.RFPrint 0, 0, "WaveLink Corporation", WLCLEAR + WLREVERSE
wlio.RFPrint 0, 1, " Auto Detailing ", WLNORMAL
Select Case nRFTerminalType
Case WIDGETDEVICE
' Widget Buttons for Welcome Screen (Start,Done)
Set StartWidget = wlfactory.CreateButton(4, _
(wlterm.TerminalHeight - 2), _
0, 0, " Start ", wlwidgcoll)
Set DoneWidget = wlfactory.CreateButton(11, _
(wlterm.TerminalHeight - 2), _
0, 0, " Done ", wlwidgcoll)
wlwidgcoll.StoreWidgets
Case Else
wlio.RFPrint 4, 3, "CtlX to Exit", WLNORMAL
wlio.RFPrint 0, (wlterm.TerminalHeight - 1), _
" Press any Key ", WLREVERSE
End Select

pszWelcomeIn = wlio.RFInput(pszWelcomeInDefault, 1, 1, _
33, "BarCode", WLCAPSLOCK, WLNO_RETURN_BKSP)
nError = wlio.RFGetLastError
If nError <> WLNOERROR Then
bDone = True
Welcome = False
Else
nLastInputType = wlio.LastInputType
Select Case nLastInputType
Case WLCOMMANDTYPE
If pszWelcomeIn = Chr$(24) Then
bDone = True
Welcome = False
End If
Case WLKEYTYPE

Case WLSCANTYPE

Case WLWIDGETTYPE
If wlio.LastExtendedType() = DoneWidget.WidgetID Then
bDone = True
Welcome = False
End If
End Select
End If
End Function



Public Sub Process()

Dim bMenuSelectDone As Boolean
bMenuSelectDone = False
Do Until bMenuSelectDone = True

bMenuSelectDone = True
wlio.RFPrint 0, 0, "WaveLink Corporation", WLCLEAR + WLREVERSE
wlio.RFPrint 0, 1, " Auto Detailing ", _
WLNORMAL + WLFLUSHOUTPUT
Select Case nRFTerminalType
Case WIDGETDEVICE
wlwidgcoll.ShowWidgets False 'Turn off Welcome Widget
GetOption
Case Else
nRslt = wlmenu.DoMenu("MainMenu")
End Select

Select Case nRslt
Case -2 ' an error has occured
bStatus = wlerror.ClearError()
bStatus = wlerror.SetErrorLine("Menu Not Found", 0)
bStatus = wlerror.Display(0)
bDone = True
Case -1 ' Clr or Ctrl X user exit
bDone = True
Case Else ' valid menu selection
Select Case nRslt
Case 1
pszWorkType = "Basic Car Wash"
Case 2
pszWorkType = "Basic Wash/Wax"
Case 3
pszWorkType = "Carnuba Wax "
Case 4
pszWorkType = "Interior Clean"
Case 5
pszWorkType = "Full Detail "
Case 6
pszWorkType = "Special Detail"
Case 7 ' RF Device Information
Version
bMenuSelectDone = False
Case 8 ' Exit the Application
bDone = True
Case Else ' should not get here
bStatus = wlerror.ClearError()
bStatus = wlerror.SetErrorLine("Invalid Option", 0)
bStatus = wlerror.Display(0)
End Select
End Select
Loop
If bDone <> True Then
GetVehicleType
End If
End Sub


Public Sub Finish()

' Delete Barcode Configurations from Device
bStatus = wlfile.RFDeleteFile("BarCode.bar")
' Restore Default Barcode Configuration and Delete from Device
bStatus = wlbar.PullBarcode("Defltbar.bar")
End Sub

Public Sub GetOption()

Dim pszOptionIn As String
Dim pszOptionInDefault As String
Dim nLastInputType As Integer
pszOptionInDefault = ""
Set WelcomeMenu = wlfactory.CreatePopupTrigger(3, 5, 0, 0, _
"mainmenu", 1, wlmaincoll)
Set DoneOptButtonWidget = wlfactory.CreateButton(8, _
(wlterm.TerminalHeight - 2), 0, _
0, " Done ", wlmaincoll)

wlmaincoll.StoreWidgets

wlio.RFPrint 0, 3, "Select Option: ", WLNORMAL + WLFLUSHOUTPUT
wlmaincoll.ShowWidgets True
wlvervidgcoll.ShowWidgets True ' Done Button
pszOptionIn = wlio.RFInput(pszOptionInDefault, 1, 1, 33, _
"BarCode", WLCAPSLOCK, WLNO_RETURN_BKSP)
If nError <> WLNOERROR Then
bDone = True
Else
nLastInputType = wlio.LastInputType
Select Case nLastInputType
Case WLCOMMANDTYPE
Select Case pszOptionIn
Case Chr$(27) ' CLR Key
nRslt = -1
Case Chr$(24) ' CRTL X Key
nRslt = -1
Case Else
End Select
Case WLPOPUPTRIGGERTYPE
nRslt = Val(pszOptionIn)
Case WLWIDGETTYPE
If wlio.LastExtendedType() = DoneOptButtonWidget.WidgetID _
Then
nRslt = 8
End If
Case Else
End Select
End If

wlmaincoll.ShowWidgets False
End Sub

Public Sub GetVehicleType()

Dim VTColumn As Integer
Dim VTRow As Integer
Dim nLastInputType As Integer
Dim pszVehicleTypeIn As String
Dim pszVehicleTypeDefault As String
bExitGetVehicleType = False
pszVehicleTypeIn = ""
pszVehicleTypeDefault = ""
wlio.RFPrint 0, 0, "WaveLink Corporation", WLCLEAR + WLREVERSE
wlio.RFPrint 0, 1, " Auto Detailing ", WLNORMAL
wlio.RFPrint 0, 3, " Select Vehicle ", _
WLNORMAL + WLFLUSHOUTPUT
Do While pszVehicleTypeIn = ""

Select Case nRFTerminalType
Case WIDGETDEVICE
VTColumn = 0 'Hide Cursor
VTRow = 33 'Hide Cursor
Set PassCarCheckBox = wlfactory.CreateCheckbox(0, 5, 0, 0, _
"Passenger Auto", Unchecked, _
wlcheckboxcoll)
Set SUVCheckBox = wlfactory.CreateCheckbox(0, 6, 0, 0, _
"Sport Utility ", Unchecked, _
wlcheckboxcoll)
Set TruckCheckBox = wlfactory.CreateCheckbox(0, 7, 0, 0, _
"Pickup Truck ", Unchecked, _
wlcheckboxcoll)
Set BoatCheckBox = wlfactory.CreateCheckbox(0, 8, 0, 0, _
"Pleasure Boat ", Unchecked, _
wlcheckboxcoll)
Set GVBackButton = wlfactory.CreateButton(2, _
(wlterm.TerminalHeight - 2), 0, 0, _
"Previous", wlcheckboxcoll)
Set GVDoneButton = wlfactory.CreateButton(8, _
(wlterm.TerminalHeight - 2), 0, 0, _
" Done ", wlcheckboxcoll)
Set GVHelpButton = wlfactory.CreateButton(14, _
(wlterm.TerminalHeight - 2), 0, 0, _
" Help ", wlcheckboxcoll)
wlcheckboxcoll.StoreWidgets
Case Else
wlio.RFPrint 0, 5, "1. Passenger Auto ", WLNORMAL
wlio.RFPrint 0, 6, "2. Sport Utility ", WLNORMAL
wlio.RFPrint 0, 7, "3. Pickup Truck ", WLNORMAL
wlio.RFPrint 0, 8, "4. Pleasure Boat ", WLNORMAL
wlio.RFPrint 0, 9, "5. Previous Screen ", WLNORMAL
wlio.RFPrint 0, 10, "6. Exit Application ", WLNORMAL
wlio.RFPrint 0, 12, "Enter Choice ", WLNORMAL
wlio.RFPrint 0, (wlterm.TerminalHeight - 1), _
"CtrlX-Exit | F1-Help ", WLREVERSE
VTColumn = 13 'Show Cursor
VTRow = 12 'Show Cursor
End Select
pszVehicleTypeIn = wlio.RFInput(pszVehicleTypeDefault, 1, _
VTColumn, VTRow, "BarCode", WLCAPSLOCK, _
WLNO_RETURN_BKSP)
nError = wlio.RFGetLastError
If nError <> WLNOERROR Then
bDone = True
Else
nLastInputType = wlio.LastInputType
Select Case nLastInputType
Case WLCOMMANDTYPE
Select Case pszVehicleTypeIn
Case Chr$(24)
bDone = True
Case 1 ' F1 Help
pszVehicleTypeIn = ""
bStatus = wlerror.ClearError()
bStatus = wlerror.SetErrorLine("No Help", 0)
bStatus = wlerror.Display(0)
Case Else
bStatus = wlerror.ClearError()
bStatus = wlerror.SetErrorLine("Invalid Command", 0)
bStatus = wlerror.Display(0)
End Select
Case WLKEYTYPE

Case WLSCANTYPE
Case WLWIDGETTYPE
Select Case wlio.LastExtendedType
Case PassCarCheckBox.WidgetID
pszVehicleTypeIn = "1"
Case SUVCheckBox.WidgetID
pszVehicleTypeIn = "2"
Case TruckCheckBox.WidgetID
pszVehicleTypeIn = "3"
Case BoatCheckBox.WidgetID
pszVehicleTypeIn = "4"
Case GVBackButton.WidgetID
pszVehicleTypeIn = "5"
Case GVDoneButton.WidgetID
pszVehicleTypeIn = "6"
Case GVHelpButton.WidgetID
pszVehicleTypeIn = ""
bStatus = wlerror.ClearError()
bStatus = wlerror.SetErrorLine("No Help", 0)
bStatus = wlerror.Display(0)
End Select
wlcheckboxcoll.ShowWidgets False
End Select
End If
Loop
Select Case pszVehicleTypeIn
Case 1 'Passenger Car
pszModelType = "Passenger Car"
Case 2 'Sport Utility Vehicle
pszModelType = "SUV"
Case 3 'Pickup Truck
pszModelType = "Pickup Truck"
Case 4 'Pleasure Boat
pszModelType = "Pleasure Boat"
Case 5 'Back to Previous Screen
bExitGetVehicleType = True
Case 6 'Done
bDone = True
bExitGetVehicleType = True
End Select
If bExitGetVehicleType = False Then
VerifyData
End If
End Sub

Public Sub VerifyData()

Dim VDRow As Integer
Dim VDColumn As Integer
Dim nLastInputType As Integer
Dim pszVerifyInDefault As String
Dim pszVerifyIn As String
pszVerifyInDefault = ""
wlio.RFPrint 0, 0, "WaveLink Corporation", WLCLEAR + WLREVERSE
wlio.RFPrint 0, 1, " Auto Detailing ", WLNORMAL
wlio.RFPrint 0, 3, " Work Order Detail ", WLNORMAL
wlio.RFPrint 0, 5, "Work Type:", WLNORMAL
wlio.RFPrint 4, 6, pszWorkType, WLNORMAL + WLCLREOLN
wlio.RFPrint 0, 8, "Vehicle Type:", WLNORMAL
wlio.RFPrint 4, 9, pszModelType, WLNORMAL + WLCLREOLN
Select Case nRFTerminalType
Case WIDGETDEVICE
VDColumn = 0 'Hide Cursor
VDRow = 33 'Hide Cursor
Set VDYesButton = wlfactory.CreateButton(4, _
(wlterm.TerminalHeight - 2), 0, 0, _
"Accept", wlyesnocoll)
Set VDNoButton = wlfactory.CreateButton(11, _
(wlterm.TerminalHeight - 2), 0, 0, _
"Decline", wlyesnocoll)
wlyesnocoll.StoreWidgets
Case Else
VDRow = wlterm.TerminalHeight - 1
VDColumn = 14
wlio.RFPrint 0, (wlterm.TerminalHeight - 1), _
"Correct y/n ? ", WLREVERSE
End Select
pszVerifyIn = wlio.RFInput(pszVerifyInDefault, 1, VDColumn, _
VDRow, "BarCode", WLCAPSLOCK, WLNO_RETURN_BKSP)
If nError <> WLNOERROR Then
bDone = True
Else
nLastInputType = wlio.LastInputType
Select Case nLastInputType
Case WLCOMMANDTYPE
wlerror.ClearError
wlerror.SetErrorLine "Invalid Command", 0
wlerror.Display 0
Case WLWIDGETTYPE
Select Case wlio.LastExtendedType()
Case VDYesButton.WidgetID
pszVerifyIn = "Y"
Case VDNoButton.WidgetID
pszVerifyIn = "N"
End Select
wlyesnocoll.ShowWidgets False
Case Else
If pszVerifyIn = "y" Then
pszVerifyIn = "Y"
End If
End Select
End If
If pszVerifyIn = "Y" Then
GetSignature
Else
wlerror.ClearError
wlerror.SetErrorLine " Work Order Sheet ", 0
wlerror.SetErrorLine " has not been ", 1
wlerror.SetErrorLine "printed or created", 2
wlerror.Display 0
End If

End Sub
Public Sub GetSignature()

Select Case nRFTerminalType
Case WIDGETDEVICE
wlscribble.DisplayDialog "C:\TEMP\x.jpg"
Case Else
wlerror.ClearError
wlerror.SetErrorLine " Please Have", 0
wlerror.SetErrorLine " Customer Sign", 1
wlerror.SetErrorLine "Work Order Sheet", 2
wlerror.Display 0
End Select
End Sub

Public Sub Version()

If bFirstVersion = True Then
wlio.RFPrint 0, 0, "WaveLink Corporation", WLCLEAR + WLREVERSE
wlio.RFPrint 0, 1, " Auto Detailing ", WLNORMAL
wlio.RFPrint 0, 3, "Height: " & wlterm.TerminalHeight, WLNORMAL
wlio.RFPrint 0, 4, "Width : " & wlterm.TerminalWidth, WLNORMAL
wlio.RFPrint 0, 5, "Type : " & nRFTerminalType, WLNORMAL
wlio.RFPrint 0, 6, "TermID: " & wlterm.TerminalID, WLNORMAL
wlio.RFPrint 0, 7, "Client: " & wlterm.WaveLinkVersion, _
WLNORMAL + WLFLUSHOUTPUT
wlio.PushScreen "Version"
bFirstVersion = False
Else
wlio.RestoreScreen "Version"
End If
Select Case nRFTerminalType
Case WIDGETDEVICE
Set DoneVerWidget = wlfactory.CreateButton(8, _
(wlterm.TerminalHeight - 2), 0, 0, _
" Done ", wlvervidgcoll)
wlvervidgcoll.StoreWidgets
Case Else
wlio.RFPrint 0, (wlterm.TerminalHeight - 1), _
" Press any Key ", WLREVERSE
End Select
wlio.GetEvent
If nRFTerminalType = WIDGETDEVICE Then
wlvervidgcoll.ShowWidgets False
End If
End Sub

Public Sub ModNotIn()

wlerror.ClearError
wlerror.SetErrorLine "Module not", 0
wlerror.SetErrorLine "Implemented", 1
wlerror.Display 0
End Sub

 


Was this article useful?    

The topic was:

Inaccurate

Incomplete

Not what I expected

Other

Privacy and Legal