![]() |
File-Based Applications: |
To main purpose of a car rental company is to rent car. This is done by receiving orders from a customer and processing such an order. To proceed, a clerk would use a form to enter the customer and the car information. In our application, we will also make sure that name of the clerk who processed an order is specified. Other than than, we will enter as much information as possible to assist the user. |
|
|
| (Name) | Text | TextAlign | Width |
| colCategory | Category | 90 | |
| colDaily | Daily | Right | |
| colWeekly | Weekly | Right | |
| colMonthly | Monthly | Right | |
| colWeekend | Weekend | Right |
| ListViewItem | ListViewSubItem | ListViewSubItem | ListViewSubItem | ListViewSubItem |
| Text | Text | Text | Text | |
| Economy | 32.95 | 29.75 | 22.95 | 19.95 |
| Compact | 39.95 | 34.75 | 29.95 | 24.95 |
| Standard | 45.95 | 39.75 | 35.95 | 32.95 |
| Full Size | 49.95 | 42.75 | 38.95 | 35.95 |
| Mini Van | 55.95 | 50.75 | 45.95 | 42.95 |
| SUV | 55.95 | 50.75 | 45.95 | 42.95 |
| Truck | 42.75 | 38.75 | 35.95 | 32.95 |
| Van | 69.95 | 62.75 | 55.95 | 52.95 |

<Serializable()> Public NotInheritable Class RentalOrder
Public ReceiptNumber As Integer
Public ProcessedBy As String
Public CarSelected As String
Public Make As String
Public Model As String
Public Year As Integer
Public CarCondition As String
Public CustDrvLicNbr As String
Public CustName As String
Public CustAddress As String
Public CustCity As String
Public CustState As String
Public CustZIPCode As String
Public CustCountry As String
Public TankLevel As String
Public Mileage As Long
Public StartDate As DateTime
Public EndDate As DateTime
Public Days As Integer
Public RateApplied As Double
Public SubTotal As Double
Public TaxRate As Double
Public TaxAmount As Double
Public OrderTotal As Double
Public Sub New()
End Sub
End Class
|
![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Imports System.IO
Imports System.Runtime.Serialization.Formatters.Soap
Public Class RentalOrders
Inherits System.Windows.Forms.Form
Private lstRentalOrders As ArrayList
|
Private Sub RentalOrders_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
lstRentalOrders = New ArrayList
Dim lstEmployees As ArrayList = New ArrayList
Dim bcrSoap As SoapFormatter = New SoapFormatter
Dim strFilename As String = "Employees.bcr"
If File.Exists(strFilename) Then
Dim bcrStream As FileStream = New FileStream(strFilename, FileMode.Open, FileAccess.Read, FileShare.Read)
lstEmployees = bcrSoap.Deserialize(bcrStream)
bcrStream.Close()
Dim firstName As String, lastName As String, title As String
cboEmployees.Items.Clear()
For Each empl As Employee In lstEmployees
firstName = empl.FirstName
lastName = empl.LastName
title = empl.Title
cboEmployees.Items.Add(lastName & ", " & firstName & " - " & title)
Next
End If
strFilename = "Cars.bcr"
Dim lstCars As ArrayList = New ArrayList
If File.Exists(strFilename) Then
Dim bcrStream As FileStream = New FileStream(strFilename, FileMode.Open, FileAccess.Read, FileShare.Read)
lstCars = bcrSoap.Deserialize(bcrStream)
bcrStream.Close()
cboCars.Items.Clear()
For Each vehicle As Car In lstCars
cboCars.Items.Add(vehicle.TagNumber)
Next
End If
strFilename = "Customers.bcr"
Dim lstCustomers As ArrayList = New ArrayList
If File.Exists(strFilename) Then
Dim bcrStream As FileStream = New FileStream(strFilename, FileMode.Open, FileAccess.Read, FileShare.Read)
lstCustomers = bcrSoap.Deserialize(bcrStream)
bcrStream.Close()
cboCustomers.Items.Clear()
For Each cust As Customer In lstCustomers
cboCustomers.Items.Add(cust.DrvLicNbr)
Next
End If
End Sub
|
Private Sub cboCars_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles cboCars.SelectedIndexChanged
Dim strFilename As String = "Cars.bcr"
Dim lstCars As ArrayList = New ArrayList
Dim bcrSoap As SoapFormatter = New SoapFormatter
Dim bcrStream As FileStream = New FileStream(strFilename, FileMode.Open, FileAccess.Read, FileShare.Read)
lstCars = bcrSoap.Deserialize(bcrStream)
bcrStream.Close()
For Each vehicle As Car In lstCars
If vehicle.TagNumber = cboCars.Text Then
Me.txtMake.Text = vehicle.Make
Me.txtModel.Text = vehicle.Model
Me.txtCarYear.Text = vehicle.Year.ToString()
Exit Sub
End If
Next
End Sub
|
Private Sub cboCustomers_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles cboCustomers.SelectedIndexChanged
Dim strFilename As String = "Customers.bcr"
Dim lstCustomers As ArrayList = New ArrayList
Dim bcrSoap As SoapFormatter = New SoapFormatter
Dim bcrStream As FileStream = New FileStream(strFilename, FileMode.Open, FileAccess.Read, FileShare.Read)
lstCustomers = bcrSoap.Deserialize(bcrStream)
bcrStream.Close()
For Each cust As Customer In lstCustomers
If cust.DrvLicNbr = cboCustomers.Text Then
Me.txtCustName.Text = cust.FullName
Me.txtCustAddress.Text = cust.Address
Me.txtCustCity.Text = cust.City
Me.txtCustState.Text = cust.State
Me.txtCustZIPCode.Text = cust.ZIPCode
Me.txtCustCountry.Text = cust.Country
Exit Sub
End If
Next
End Sub
|
Private Sub btnRateApplied_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnRateApplied.Click
Dim frmRates As RentalRates = New RentalRates
frmRates.Show()
End Sub
|
Private Sub dtpEndDate_ValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles dtpEndDate.ValueChanged
Dim dteStart As DateTime = Me.dtpStartDate.Value
Dim dteEnd As DateTime = Me.dtpEndDate.Value
Dim tme As TimeSpan = dteEnd.Subtract(dteStart)
Dim days As Integer = tme.Days
Me.txtDays.Text = CStr(days)
End Sub
|
Private Sub txtRateApplied_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtRateApplied.Leave
Dim days As Integer = CInt(Me.txtDays.Text)
Dim rateApplied As Double = Decimal.Parse(Me.txtRateApplied.Text)
Dim subTotal As Double = days * rateApplied
Me.txtSubTotal.Text = subTotal.ToString("F")
Dim taxRate As Double = Decimal.Parse(Me.txtTaxRate.Text)
Dim taxAmount As Double = subTotal * taxRate / 100
Me.txtTaxAmount.Text = taxAmount.ToString("F")
Dim totalOrder As Double = subTotal + taxAmount
Me.txtOrderTotal.Text = totalOrder.ToString("F")
End Sub
|
Private Sub btnSave_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSave.Click
Dim receiptNumber As Integer = 0
Dim lstRentalOrders As ArrayList = New ArrayList
Dim strFilename As String = "RentalOrders.bcr"
Dim bcrSoap As SoapFormatter = New SoapFormatter
If File.Exists(strFilename) Then
Dim bcrStream As FileStream = New FileStream(strFilename, FileMode.Open, FileAccess.Read, FileShare.Read)
lstRentalOrders = bcrSoap.Deserialize(bcrStream)
Dim order As RentalOrder = lstRentalOrders(lstRentalOrders.Count - 1)
receiptNumber = order.ReceiptNumber
bcrStream.Close()
Else
Dim bcrStream As FileStream = New FileStream(strFilename, FileMode.OpenOrCreate, FileAccess.Write, FileShare.Write)
bcrSoap.Serialize(bcrStream, lstRentalOrders)
bcrStream.Close()
End If
Dim rntOrder As RentalOrder = New RentalOrder
rntOrder.ReceiptNumber = receiptNumber + 1
rntOrder.ProcessedBy = Me.cboEmployees.Text
rntOrder.CarSelected = Me.cboCars.Text
rntOrder.Make = Me.txtMake.Text
rntOrder.Model = Me.txtModel.Text
rntOrder.Year = CInt(Me.txtCarYear.Text)
rntOrder.CarCondition = Me.cboCarConditions.Text
rntOrder.CustDrvLicNbr = Me.cboCustomers.Text
rntOrder.CustName = Me.txtCustName.Text
rntOrder.CustAddress = Me.txtCustAddress.Text
rntOrder.CustCity = Me.txtCustCity.Text
rntOrder.CustState = Me.txtCustState.Text
rntOrder.CustZIPCode = Me.txtCustZIPCode.Text
rntOrder.CustCountry = Me.txtCustCountry.Text
rntOrder.TankLevel = Me.cboTankLevels.Text
rntOrder.Mileage = CLng(Me.txtMileage.Text)
rntOrder.StartDate = Me.dtpStartDate.Value
rntOrder.EndDate = Me.dtpEndDate.Value
rntOrder.Days = CInt(Me.txtDays.Text)
rntOrder.RateApplied = CDbl(Me.txtRateApplied.Text)
rntOrder.SubTotal = CDbl(Me.txtSubTotal.Text)
rntOrder.TaxRate = CDbl(Me.txtTaxRate.Text)
rntOrder.TaxAmount = CDbl(Me.txtTaxAmount.Text)
rntOrder.OrderTotal = CDbl(Me.txtOrderTotal.Text)
lstRentalOrders.Add(rntOrder)
Dim stmOrders As FileStream = New FileStream(strFilename, FileMode.OpenOrCreate, FileAccess.Write, FileShare.Write)
bcrSoap.Serialize(stmOrders, lstRentalOrders)
stmOrders.Close()
Me.cboEmployees.Text = ""
Me.cboCars.Text = ""
Me.txtMake.Text = ""
Me.txtModel.Text = ""
Me.txtCarYear.Text = "2000"
Me.cboCarConditions.Text = ""
Me.cboCustomers.Text = ""
Me.txtCustAddress.Text = ""
Me.txtCustAddress.Text = ""
Me.txtCustCity.Text = ""
Me.txtCustState.Text = "MD"
Me.txtCustZIPCode.Text = ""
Me.txtCustCountry.Text = "USA"
Me.cboTankLevels.Text = ""
Me.txtMileage.Text = ""
Me.dtpStartDate.Value = DateTime.Now
Me.dtpEndDate.Value = DateTime.Now
Me.txtDays.Text = "0"
Me.txtRateApplied.Text = "24.95"
Me.txtSubTotal.Text = "0.00"
Me.txtTaxRate.Text = "7.75"
Me.txtTaxAmount.Text = "0.00"
Me.txtOrderTotal.Text = "0.00"
Me.cboEmployees.Focus()
End Sub
|
![]() |
||||||||||||
|
Private Sub btnRentalOrders_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnRentalOrders.Click
Dim frmOrders As RentalOrders = New RentalOrders
frmOrders.Show()
End Sub
|
Private Sub btnClose_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnClose.Click
End
End Sub
|
![]() |
![]() |
Private Sub btnOpen_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnOpen.Click
Dim lstRentalOrders As ArrayList = New ArrayList
Dim strFilename As String = "RentalOrders.bcr"
Dim bcrSoap As SoapFormatter = New SoapFormatter
Dim receiptNumber As Integer = CInt(Me.txtReceiptNumber.Text)
If File.Exists(strFilename) Then
Dim bcrStream As FileStream = New FileStream(strFilename, FileMode.Open, FileAccess.Read, FileShare.Read)
lstRentalOrders = bcrSoap.Deserialize(bcrStream)
bcrStream.Close()
For Each order As RentalOrder In lstRentalOrders
If order.ReceiptNumber = receiptNumber Then
Me.cboEmployees.Text = order.ProcessedBy
Me.cboCars.Text = order.CarSelected
Me.txtMake.Text = order.Make
Me.txtModel.Text = order.Model
Me.txtCarYear.Text = CStr(order.Year)
Me.cboCarConditions.Text = order.CarCondition
Me.cboCustomers.Text = order.CustDrvLicNbr
Me.txtCustName.Text = order.CustName
Me.txtCustAddress.Text = order.CustAddress
Me.txtCustCity.Text = order.CustCity
Me.txtCustState.Text = order.CustState
Me.txtCustZIPCode.Text = order.CustZIPCode
Me.txtCustCountry.Text = order.CustCountry
Me.cboTankLevels.Text = order.TankLevel
Me.txtMileage.Text = CStr(order.Mileage)
Me.dtpStartDate.Value = order.StartDate
Me.dtpEndDate.Value = order.EndDate
Me.txtDays.Text = CStr(order.Days)
Me.txtRateApplied.Text = CStr(order.RateApplied)
Me.txtSubTotal.Text = CStr(order.SubTotal)
Me.txtTaxRate.Text = CStr(order.TaxRate)
Me.txtTaxAmount.Text = CStr(order.TaxAmount)
Me.txtOrderTotal.Text = CStr(order.OrderTotal)
End If
Next
Else
MsgBox("There is no rental order with that receipt number!")
Exit Sub
End If
End Sub
|
Private Sub btnClose_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnClose.Click
Close()
End Sub
|
|
|
||
| Previous | Copyright © 2005-2012 FunctionX | |
|
|
||