XML-Based Applications: College Park Auto-Shop |
|
As always mentioned, XML provides the ability to store information as regular text so that the same information can be accessed from completely independent applications. This provides tremendous opportunities in the areas of storage and sharing of data. To make it even more useful, the .NET Framework provides full support for the Document Object Model (DOM) of XML through various classes. In this exercise, we are going to create an application used by a car repair business. To use it, an employee of the business can open a form to process a customer's work order. During this, the employee can enter the customer, the information about the car to be fixed, and a text description of the problem.
|
|
(Name) | ColumnName | DataType |
colCustomerName | CustomerName | System.String |
colAddress | Address | System.String |
colCity | City | System.String |
colState | State | System.String |
colZIPCode | ZIPCode | System.String |
colMake | Make | System.String |
colModel | Model | System.String |
colCarYear | CarYear | System.String |
colProblem | Problem | System.String |
colPartName1 | PartName1 | System.String |
colUnitPrice1 | UnitPrice1 | System.Double |
colQuantity1 | Quantity1 | System.Int16 |
colSubTotal1 | SubTotal1 | System.Double |
colPartName2 | PartName2 | System.String |
colUnitPrice2 | UnitPrice2 | System.Double |
colQuantity2 | Quantity2 | System.Int16 |
colSubTotal2 | SubTotal2 | System.Double |
colPartName3 | PartName3 | System.String |
colUnitPrice3 | UnitPrice3 | System.Double |
colQuantity3 | Quantity3 | System.Int16 |
colSubTotal3 | SubTotal3 | System.Double |
colPartName4 | PartName4 | System.String |
colUnitPrice4 | UnitPrice4 | System.Double |
colQuantity4 | Quantity4 | System.Int16 |
colSubTotal4 | SubTotal4 | System.Double |
colPartName5 | PartName5 | System.String |
colUnitPrice5 | UnitPrice5 | System.Double |
colQuantity5 | Quantity5 | System.Int16 |
colSubTotal5 | SubTotal5 | System.Double |
colJobPerformed1 | JobPerformed1 | System.String |
colJobPrice1 | JobPrice1 | System.Double |
colJobPerformed2 | JobPerformed2 | System.String |
colJobPrice2 | JobPrice2 | System.Double |
colJobPerformed3 | JobPerformed3 | System.String |
colJobPrice3 | JobPrice3 | System.Double |
colJobPerformed4 | JobPerformed4 | System.String |
colJobPrice4 | JobPrice4 | System.Double |
colJobPerformed5 | JobPerformed5 | System.String |
colJobPrice5 | JobPrice5 | System.Double |
colTotalParts | TotalParts | System.Double |
colTotalLabor | TotalLabor | System.Double |
colTaxRate | TaxRate | System.Double |
colTaxAmount | TaxAmount | System.Double |
colTotalOrder | TotalOrder | System.Double |
colRecommendations | Recommendations | System.Double |
|
|
Private Sub btnWorkOrders_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnWorkOrders.Click Dim frmOrders As Workorders = New Workorders frmOrders.ShowDialog() End Sub |
Private Sub btnClose_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles btnClose.Click End End Sub |
Calculating the Order |
When a car has been fixed, an employee can complete the form with what was done. A section of the form allows the employee to enter the names, prices, and quantities of parts that were used to fix the car. Each part is entered but its name, a unit price, and a quantity then, a sub total of each part must be calculated. Besides the parts used, the employee must also list the types of repairs that were performed and their costs. This also allows the customer to know what was done. Once the parts information and the jobs performed have been entered, the order can be calculated to know the total the customer will pay. |
Practical Learning: Starting the Exercise |
Private Sub btnResetOrder_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnResetOrder.Click Me.txtCustomerName.Text = "" Me.txtAddress.Text = "" Me.txtCity.Text = "" Me.txtState.Text = "" Me.txtZIPCode.Text = "" Me.txtMake.Text = "" Me.txtModel.Text = "" Me.txtCarYear.Text = "" Me.txtProblem.Text = "" Me.txtPartName1.Text = "" Me.txtUnitPrice1.Text = "0.00" Me.txtQuantity1.Text = "0" Me.txtSubTotal1.Text = "0.00" Me.txtPartName2.Text = "" Me.txtUnitPrice2.Text = "0.00" Me.txtQuantity2.Text = "0" Me.txtSubTotal2.Text = "0.00" Me.txtPartName3.Text = "" Me.txtUnitPrice3.Text = "0.00" Me.txtQuantity3.Text = "0" Me.txtSubTotal3.Text = "0.00" Me.txtPartName4.Text = "" Me.txtUnitPrice4.Text = "0.00" Me.txtQuantity4.Text = "0" Me.txtSubTotal4.Text = "0.00" Me.txtPartName5.Text = "" Me.txtUnitPrice5.Text = "0.00" Me.txtQuantity5.Text = "0" Me.txtSubTotal5.Text = "0.00" Me.txtJobPerformed1.Text = "" Me.txtJobPrice1.Text = "0.00" Me.txtJobPerformed2.Text = "" Me.txtJobPrice2.Text = "0.00" Me.txtJobPerformed3.Text = "" Me.txtJobPrice3.Text = "0.00" Me.txtJobPerformed4.Text = "" Me.txtJobPrice4.Text = "0.00" Me.txtJobPerformed5.Text = "" Me.txtJobPrice5.Text = "0.00" Me.txtTotalParts.Text = "0.00" Me.txtTotalLabor.Text = "0.00" Me.txtTaxRate.Text = "7.75" Me.txtTaxAmount.Text = "0.00" Me.txtTotalOrder.Text = "0.00" Me.txtRecommendations.Text = "" Me.txtCustomerName.Focus() End Sub |
Private Sub btnCalculateOrder_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnCalculateOrder.Click Dim part1UnitPrice As Decimal = 0.0 Dim part1SubTotal As Decimal = 0.0 Dim part2UnitPrice As Decimal = 0.0 Dim part2SubTotal As Decimal = 0.0 Dim part3UnitPrice As Decimal = 0.0 Dim part3SubTotal As Decimal = 0.0 Dim part4UnitPrice As Decimal = 0.0 Dim part4SubTotal As Decimal = 0.0 Dim part5UnitPrice As Decimal = 0.0 Dim part5SubTotal As Decimal = 0.0 Dim totalParts As Decimal = 0.0 Dim part1Quantity As Integer = 0 Dim part2Quantity As Integer = 0 Dim part3Quantity As Integer = 0 Dim part4Quantity As Integer = 0 Dim part5Quantity As Integer = 0 Dim job1Price As Decimal = 0.0 Dim job2Price As Decimal = 0.0 Dim job3Price As Decimal = 0.0 Dim job4Price As Decimal = 0.0 Dim job5Price As Decimal = 0.0 Dim totalLabor As Decimal = 0.0 Dim taxRate As Decimal = 0.0 Dim taxAmount As Decimal = 0.0 Dim totalOrder As Decimal = 0.0 ' Don't charge a part unless it is clearly identified If Me.txtPartName1.Text = "" Then Me.txtUnitPrice1.Text = "0.00" Me.txtQuantity1.Text = "0" Me.txtSubTotal1.Text = "0.00" part1UnitPrice = 0.0 Else Try part1UnitPrice = Decimal.Parse(Me.txtUnitPrice1.Text) Catch ex As FormatException MsgBox("Invalid Unit Price") Me.txtUnitPrice1.Text = "0.00" Me.txtUnitPrice1.Focus() End Try Try part1Quantity = CInt(Me.txtQuantity1.Text) Catch ex As FormatException MsgBox("Invalid Quantity") Me.txtQuantity1.Text = "0" Me.txtQuantity1.Focus() End Try end if If Me.txtPartName2.Text = "" Then Me.txtUnitPrice2.Text = "0.00" Me.txtQuantity2.Text = "0" Me.txtSubTotal2.Text = "0.00" part2UnitPrice = 0.0 Else Try part2UnitPrice = Decimal.Parse(Me.txtUnitPrice2.Text) Catch ex As FormatException MsgBox("Invalid Unit Price") Me.txtUnitPrice2.Text = "0.00" Me.txtUnitPrice2.Focus() End Try Try part2Quantity = CInt(Me.txtQuantity2.Text) Catch ex As FormatException MsgBox("Invalid Quantity") Me.txtQuantity2.Text = "0" Me.txtQuantity2.Focus() End Try end if If Me.txtPartName3.Text = "" Then Me.txtUnitPrice3.Text = "0.00" Me.txtQuantity3.Text = "0" Me.txtSubTotal3.Text = "0.00" part3UnitPrice = 0.0 Else Try part3UnitPrice = Decimal.Parse(Me.txtUnitPrice3.Text) Catch ex As FormatException MsgBox("Invalid Unit Price") Me.txtUnitPrice3.Text = "0.00" Me.txtUnitPrice3.Focus() End Try Try part3Quantity = CInt(Me.txtQuantity3.Text) Catch ex As FormatException MsgBox("Invalid Quantity") Me.txtQuantity3.Text = "0" Me.txtQuantity3.Focus() End Try end if If Me.txtPartName4.Text = "" Then Me.txtUnitPrice4.Text = "0.00" Me.txtQuantity4.Text = "0" Me.txtSubTotal4.Text = "0.00" part4UnitPrice = 0.0 Else Try part4UnitPrice = Decimal.Parse(Me.txtUnitPrice4.Text) Catch ex As FormatException MsgBox("Invalid Unit Price") Me.txtUnitPrice4.Text = "0.00" Me.txtUnitPrice4.Focus() End Try Try part4Quantity = CInt(Me.txtQuantity4.Text) Catch ex As FormatException MsgBox("Invalid Quantity") Me.txtQuantity4.Text = "0" Me.txtQuantity4.Focus() End Try End If If Me.txtPartName5.Text = "" Then Me.txtUnitPrice5.Text = "0.00" Me.txtQuantity5.Text = "0" Me.txtSubTotal5.Text = "0.00" part5UnitPrice = 0.0 Else Try part5UnitPrice = Decimal.Parse(Me.txtUnitPrice5.Text) Catch ex As FormatException MsgBox("Invalid Unit Price") Me.txtUnitPrice5.Text = "0.00" Me.txtUnitPrice5.Focus() End Try Try part5Quantity = CInt(Me.txtQuantity5.Text) Catch ex As FormatException MsgBox("Invalid Quantity") Me.txtQuantity5.Text = "0" Me.txtQuantity5.Focus() End Try End If ' Don't bill the customer for a job that is not specified If Me.txtJobPerformed1.Text = "" Then Me.txtJobPrice1.Text = "0.00" job1Price = 0.0 Else Try job1Price = Decimal.Parse(Me.txtJobPrice1.Text) Catch ex As FormatException MsgBox("Invalid Job Price") Me.txtJobPrice1.Text = "0.00" Me.txtJobPrice1.Focus() End Try End If If Me.txtJobPerformed2.Text = "" Then Me.txtJobPrice2.Text = "0.00" job2Price = 0.0 Else Try job2Price = Decimal.Parse(Me.txtJobPrice2.Text) Catch ex As FormatException MsgBox("Invalid Job Price") Me.txtJobPrice2.Text = "0.00" Me.txtJobPrice2.Focus() End Try End If If Me.txtJobPerformed3.Text = "" Then Me.txtJobPrice3.Text = "0.00" job3Price = 0.0 Else Try job3Price = Decimal.Parse(Me.txtJobPrice3.Text) Catch ex As FormatException MsgBox("Invalid Job Price") Me.txtJobPrice3.Text = "0.00" Me.txtJobPrice3.Focus() End Try End If If Me.txtJobPerformed4.Text = "" Then Me.txtJobPrice4.Text = "0.00" job4Price = 0.0 Else Try job4Price = Decimal.Parse(Me.txtJobPrice4.Text) Catch ex As FormatException MsgBox("Invalid Job Price") Me.txtJobPrice4.Text = "0.00" Me.txtJobPrice4.Focus() End Try End If If Me.txtJobPerformed5.Text = "" Then Me.txtJobPrice5.Text = "0.00" job5Price = 0.0 Else Try job5Price = Decimal.Parse(Me.txtJobPrice5.Text) Catch ex As FormatException MsgBox("Invalid Job Price") Me.txtJobPrice5.Text = "0.00" Me.txtJobPrice5.Focus() End Try End If part1SubTotal = part1UnitPrice * part1Quantity part2SubTotal = part2UnitPrice * part2Quantity part3SubTotal = part3UnitPrice * part3Quantity part4SubTotal = part4UnitPrice * part4Quantity part5SubTotal = part5UnitPrice * part5Quantity Me.txtSubTotal1.Text = part1SubTotal.ToString("F") Me.txtSubTotal2.Text = part2SubTotal.ToString("F") Me.txtSubTotal3.Text = part3SubTotal.ToString("F") Me.txtSubTotal4.Text = part4SubTotal.ToString("F") Me.txtSubTotal5.Text = part5SubTotal.ToString("F") totalParts = part1SubTotal + part2SubTotal + part3SubTotal + _ part4SubTotal + part5SubTotal totalLabor = job1Price + job2Price + job3Price + _ job4Price + job5Price Try taxRate = Decimal.Parse(Me.txtTaxRate.Text) Catch ex As FormatException MsgBox("Invalid Tax Rate") Me.txtTaxRate.Text = "7.75" Me.txtTaxRate.Focus() End Try Dim totalPartsAndLabor As Decimal = totalParts + totalLabor taxAmount = totalPartsAndLabor * taxRate / 100 totalOrder = totalPartsAndLabor + taxAmount Me.txtTotalParts.Text = Format(totalParts, "F") Me.txtTotalLabor.Text = Format(totalLabor, "F") Me.txtTaxAmount.Text = Format(taxAmount, "F") Me.txtTotalOrder.Text = Format(totalOrder, "F") End Sub |
Saving the Customer Order |
Once a work order has been completed, it can be saved. There are various ways you can solve me. One of the easiest ways would consist of saving each order directly in its own file. The problem is that this would create too many files, especially if this business is successful. Another easy solution would consist of directly saving all orders of one customer in a particular file. This is suitable if the business deals with regularly returning customers, which is not always the case. Overall, you should provide as much flexibility as possible. To make our application useful, we will allow the user to save an order to a file that whose name is after the day this order was placed. We will prompt the user so he or she can change the name of the file if necessary. When saving an order, if there is no order with that name, we will create a new XML file and store the order in it. If a file already exists under that name, then we will add the current order as part of the file. That way, all orders of a certain date can be saved in the same file, making it possible to retrieve the list of repairs that were completed on a certain day. |
Practical Learning: Saving a Work Order |
Imports System.Data Imports System.IO Imports System.Xml Public Class Form1 Inherits System.Windows.Forms.Form |
Private Sub btnSaveOrder_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSaveOrder.Click ' Get the date that the Order Date displays Dim tmeToday As DateTime = Me.dtpOrderDate.Value Dim day As Integer = tmeToday.Day Dim month As Integer = tmeToday.Month Dim year As Integer = tmeToday.Year Dim strMonth() As String = {"Jan", "Feb", "Mar", "Apr", _ "May", "Jun", "Jul", "Aug", _ "Sep", "Oct", "Nov", "Dec"} Dim strFilename As String = CStr(day) & strMonth(month - 1) & _ CStr(year) + ".xml" ' If the file exists already, open it If File.Exists(strFilename) Then Me.dsWorkorders.ReadXml(strFilename) End If ' Create a new record for the Workorder table Dim rowNewOrder As DataRow = Me.dsWorkorders.Tables("Workorder").NewRow() rowNewOrder("CustomerName") = Me.txtCustomerName.Text rowNewOrder("Address") = Me.txtAddress.Text rowNewOrder("City") = Me.txtCity.Text rowNewOrder("State") = Me.txtState.Text rowNewOrder("ZIPCode") = Me.txtZIPCode.Text rowNewOrder("Make") = Me.txtMake.Text rowNewOrder("Model") = Me.txtModel.Text rowNewOrder("CarYear") = Me.txtCarYear.Text rowNewOrder("Problem") = Me.txtProblem.Text rowNewOrder("PartName1") = Me.txtPartName1.Text rowNewOrder("UnitPrice1") = Me.txtUnitPrice1.Text rowNewOrder("Quantity1") = Me.txtQuantity1.Text rowNewOrder("SubTotal1") = Me.txtSubTotal1.Text rowNewOrder("PartName2") = Me.txtPartName2.Text rowNewOrder("UnitPrice2") = Me.txtUnitPrice2.Text rowNewOrder("Quantity2") = Me.txtQuantity2.Text rowNewOrder("SubTotal2") = Me.txtSubTotal2.Text rowNewOrder("PartName3") = Me.txtPartName3.Text rowNewOrder("UnitPrice3") = Me.txtUnitPrice3.Text rowNewOrder("Quantity3") = Me.txtQuantity3.Text rowNewOrder("SubTotal3") = Me.txtSubTotal3.Text rowNewOrder("PartName4") = Me.txtPartName4.Text rowNewOrder("UnitPrice4") = Me.txtUnitPrice4.Text rowNewOrder("Quantity4") = Me.txtQuantity4.Text rowNewOrder("SubTotal4") = Me.txtSubTotal4.Text rowNewOrder("PartName5") = Me.txtPartName5.Text rowNewOrder("UnitPrice5") = Me.txtUnitPrice5.Text rowNewOrder("Quantity5") = Me.txtQuantity5.Text rowNewOrder("SubTotal5") = Me.txtSubTotal5.Text rowNewOrder("JobPerformed1") = Me.txtJobPerformed1.Text rowNewOrder("JobPrice1") = Me.txtJobPrice1.Text rowNewOrder("JobPerformed2") = Me.txtJobPerformed2.Text rowNewOrder("JobPrice2") = Me.txtJobPrice2.Text rowNewOrder("JobPerformed3") = Me.txtJobPerformed3.Text rowNewOrder("JobPrice3") = Me.txtJobPrice3.Text rowNewOrder("JobPerformed4") = Me.txtJobPerformed4.Text rowNewOrder("JobPrice4") = Me.txtJobPrice4.Text rowNewOrder("JobPerformed5") = Me.txtJobPerformed5.Text rowNewOrder("JobPrice5") = Me.txtJobPrice5.Text rowNewOrder("Recommendations") = Me.txtRecommendations.Text rowNewOrder("TotalParts") = Me.txtTotalParts.Text rowNewOrder("TotalLabor") = Me.txtTotalLabor.Text rowNewOrder("TaxRate") = Me.txtTaxRate.Text rowNewOrder("TaxAmount") = Me.txtTaxAmount.Text rowNewOrder("TotalOrder") = Me.txtTotalOrder.Text ' Add the new record to the AvailableItems table Me.dsWorkorders.Tables("Workorder").Rows.Add(rowNewOrder) ' Update the XML file Me.dsWorkorders.WriteXml(strFilename) ' Reset the controls in case the user wants to add another record Me.btnResetOrder_Click(sender, e) End Sub |
Opening Customers' Orders |
It is typical for a business to sell many products on the same way, just as is usual for a repair business to perform various transactions on the same day. When addressing the ability to save work orders, we allowed the user to save many orders of a typical day in the same file. In the same way, we will allow the user to open a file that contains all orders placed on a certain day. This would allow the management to review daily easily. |
Practical Learning: Opening and Reviewing Daily Orders |
Imports System.Data Imports System.IO Imports System.Xml Public Class Workorders Inherits System.Windows.Forms.Form |
Private Sub btnOpen_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnOpen.Click ' Get the date that the Order Date displays Dim tmeToday As DateTime = Me.dtpOrderDate.Value Dim day As Integer = tmeToday.Day Dim month As Integer = tmeToday.Month Dim year As Integer = tmeToday.Year Dim strMonth() As String = {"Jan", "Feb", "Mar", "Apr", _ "May", "Jun", "Jul", "Aug", _ "Sep", "Oct", "Nov", "Dec"} Dim strFilename As String = CStr(day) & strMonth(month - 1) & _ CStr(year) & ".xml" ' If the file exists already, open it If File.Exists(strFilename) Then ' Empty the local data set of any data. This is required if ' we want the user to be able to open different daily sets of repairs Me.dsWorkorders.Clear() ' Open the set of orders placed on the day selected dsWorkorders.ReadXml(strFilename) ' Because a control can be bound anew every time the user opens a new set ' Unbind each control to refresh it txtCustomerName.DataBindings.Clear() txtAddress.DataBindings.Clear() txtCity.DataBindings.Clear() txtState.DataBindings.Clear() txtZIPCode.DataBindings.Clear() txtMake.DataBindings.Clear() txtModel.DataBindings.Clear() txtCarYear.DataBindings.Clear() txtProblem.DataBindings.Clear() txtPartName1.DataBindings.Clear() txtUnitPrice1.DataBindings.Clear() txtQuantity1.DataBindings.Clear() txtSubTotal1.DataBindings.Clear() txtPartName2.DataBindings.Clear() txtUnitPrice2.DataBindings.Clear() txtQuantity2.DataBindings.Clear() txtSubTotal2.DataBindings.Clear() txtPartName3.DataBindings.Clear() txtUnitPrice3.DataBindings.Clear() txtQuantity3.DataBindings.Clear() txtSubTotal3.DataBindings.Clear() txtPartName4.DataBindings.Clear() txtUnitPrice4.DataBindings.Clear() txtQuantity4.DataBindings.Clear() txtSubTotal4.DataBindings.Clear() txtPartName5.DataBindings.Clear() txtUnitPrice5.DataBindings.Clear() txtQuantity5.DataBindings.Clear() txtSubTotal5.DataBindings.Clear() txtJobPerformed1.DataBindings.Clear() txtJobPrice1.DataBindings.Clear() txtJobPerformed2.DataBindings.Clear() txtJobPrice2.DataBindings.Clear() txtJobPerformed3.DataBindings.Clear() txtJobPrice3.DataBindings.Clear() txtJobPerformed4.DataBindings.Clear() txtJobPrice4.DataBindings.Clear() txtJobPerformed5.DataBindings.Clear() txtJobPrice5.DataBindings.Clear() txtRecommendations.DataBindings.Clear() txtTotalParts.DataBindings.Clear() txtTotalLabor.DataBindings.Clear() txtTaxRate.DataBindings.Clear() txtTaxAmount.DataBindings.Clear() txtTotalOrder.DataBindings.Clear() ' Bind each control with data gotten from the newly opened file txtCustomerName.DataBindings.Add(New System.Windows.Forms.Binding("Text", dsWorkorders, "Workorder.CustomerName")) txtAddress.DataBindings.Add(New System.Windows.Forms.Binding("Text", dsWorkorders, "Workorder.Addres")) txtCity.DataBindings.Add(New System.Windows.Forms.Binding("Text", dsWorkorders, "Workorder.City")) txtState.DataBindings.Add(New System.Windows.Forms.Binding("Text", dsWorkorders, "Workorder.State")) txtZIPCode.DataBindings.Add(New System.Windows.Forms.Binding("Text", dsWorkorders, "Workorder.ZIPCode")) txtMake.DataBindings.Add(New System.Windows.Forms.Binding("Text", dsWorkorders, "Workorder.Make")) txtModel.DataBindings.Add(New System.Windows.Forms.Binding("Text", dsWorkorders, "Workorder.Model")) txtCarYear.DataBindings.Add(New System.Windows.Forms.Binding("Text", dsWorkorders, "Workorder.CarYear")) txtProblem.DataBindings.Add(New System.Windows.Forms.Binding("Text", dsWorkorders, "Workorder.Problem")) txtPartName1.DataBindings.Add(New System.Windows.Forms.Binding("Text", dsWorkorders, "Workorder.PartName1")) txtUnitPrice1.DataBindings.Add(New System.Windows.Forms.Binding("Text", dsWorkorders, "Workorder.UnitPrice1")) txtQuantity1.DataBindings.Add(New System.Windows.Forms.Binding("Text", dsWorkorders, "Workorder.Quantity1")) txtSubTotal1.DataBindings.Add(New System.Windows.Forms.Binding("Text", dsWorkorders, "Workorder.SubTotal1")) txtPartName2.DataBindings.Add(New System.Windows.Forms.Binding("Text", dsWorkorders, "Workorder.PartName2")) txtUnitPrice2.DataBindings.Add(New System.Windows.Forms.Binding("Text", dsWorkorders, "Workorder.UnitPrice2")) txtQuantity2.DataBindings.Add(New System.Windows.Forms.Binding("Text", dsWorkorders, "Workorder.Quantity2")) txtSubTotal2.DataBindings.Add(New System.Windows.Forms.Binding("Text", dsWorkorders, "Workorder.SubTotal2")) txtPartName3.DataBindings.Add(New System.Windows.Forms.Binding("Text", dsWorkorders, "Workorder.PartName3")) txtUnitPrice3.DataBindings.Add(New System.Windows.Forms.Binding("Text", dsWorkorders, "Workorder.UnitPrice3")) txtQuantity3.DataBindings.Add(New System.Windows.Forms.Binding("Text", dsWorkorders, "Workorder.Quantity3")) txtSubTotal3.DataBindings.Add(New System.Windows.Forms.Binding("Text", dsWorkorders, "Workorder.SubTotal3")) txtPartName4.DataBindings.Add(New System.Windows.Forms.Binding("Text", dsWorkorders, "Workorder.PartName4")) txtUnitPrice4.DataBindings.Add(New System.Windows.Forms.Binding("Text", dsWorkorders, "Workorder.UnitPrice4")) txtQuantity4.DataBindings.Add(New System.Windows.Forms.Binding("Text", dsWorkorders, "Workorder.Quantity4")) txtSubTotal4.DataBindings.Add(New System.Windows.Forms.Binding("Text", dsWorkorders, "Workorder.SubTotal4")) txtPartName5.DataBindings.Add(New System.Windows.Forms.Binding("Text", dsWorkorders, "Workorder.PartName5")) txtUnitPrice5.DataBindings.Add(New System.Windows.Forms.Binding("Text", dsWorkorders, "Workorder.UnitPrice5")) txtQuantity5.DataBindings.Add(New System.Windows.Forms.Binding("Text", dsWorkorders, "Workorder.Quantity5")) txtSubTotal5.DataBindings.Add(New System.Windows.Forms.Binding("Text", dsWorkorders, "Workorder.SubTotal5")) txtJobPerformed1.DataBindings.Add(New System.Windows.Forms.Binding("Text", dsWorkorders, "Workorder.JobPerformed1")) txtJobPrice1.DataBindings.Add(New System.Windows.Forms.Binding("Text", dsWorkorders, "Workorder.JobPrice1")) txtJobPerformed2.DataBindings.Add(New System.Windows.Forms.Binding("Text", dsWorkorders, "Workorder.JobPerformed2")) txtJobPrice2.DataBindings.Add(New System.Windows.Forms.Binding("Text", dsWorkorders, "Workorder.JobPrice2")) txtJobPerformed3.DataBindings.Add(New System.Windows.Forms.Binding("Text", dsWorkorders, "Workorder.JobPerformed3")) txtJobPrice3.DataBindings.Add(New System.Windows.Forms.Binding("Text", dsWorkorders, "Workorder.JobPrice3")) txtJobPerformed4.DataBindings.Add(New System.Windows.Forms.Binding("Text", dsWorkorders, "Workorder.JobPerformed4")) txtJobPrice4.DataBindings.Add(New System.Windows.Forms.Binding("Text", dsWorkorders, "Workorder.JobPrice4")) txtJobPerformed5.DataBindings.Add(New System.Windows.Forms.Binding("Text", dsWorkorders, "Workorder.JobPerformed5")) txtJobPrice5.DataBindings.Add(New System.Windows.Forms.Binding("Text", dsWorkorders, "Workorder.JobPrice5")) txtRecommendations.DataBindings.Add(New System.Windows.Forms.Binding("Text", dsWorkorders, "Workorder.Recommendation")) txtTotalParts.DataBindings.Add(New System.Windows.Forms.Binding("Text", dsWorkorders, "Workorder.TotalPart")) txtTotalLabor.DataBindings.Add(New System.Windows.Forms.Binding("Text", dsWorkorders, "Workorder.TotalLabor")) txtTaxRate.DataBindings.Add(New System.Windows.Forms.Binding("Text", dsWorkorders, "Workorder.TaxRate")) txtTaxAmount.DataBindings.Add(New System.Windows.Forms.Binding("Text", dsWorkorders, "Workorder.TaxAmount")) txtTotalOrder.DataBindings.Add(New System.Windows.Forms.Binding("Text", dsWorkorders, "Workorder.TotalOrder")) Else ' If there is no data, let the user know MsgBox(String.Concat("No workorder available for ", Me.dtpOrderDate.Value.ToString())) End If End Sub |
|
||
Home | Copyright © 2005 FunctionX, Inc. | |
|