Home

Assistance With Data Entry I

 

Getting the Right Value

 

Introduction

When performing data entry, there are various ways you can either assist the user or impose some behaviors on your application. You can:

  • Configure some columns of a table to accept only some types of value and reject others
  • You can create a scenario that would make sure that each value under a column is unique
  • You can create an expression that would specify the value of a column rather than the user entering it
  • Using the data grid view or some other controls of the Toolbox, you can present a list of values to the user who would only select from that list instead of typing a value 

All these functionalities are already available, either in the classes of the data set system or built-in the available Windows controls.

 

Practical Learning: Assisting With Data Entry

  1. Start Microsoft Visual Basic and create a Windows Application named WattsALoan1
  2. To create a new form, in the Solution Explorer, right-click WattsALoan1 -> Add -> Windows Forms...
  3. Set the Name to LoanAllocations and click Add
  4. From the Data section of the Toolbox, click DataSet and click the form
  5. Select the Untyped Dataset radio button and click OK
  6. In the Properties window, change the following characteristics:
    DataSetName: dsLoanAllocations
    (Name): LoanAllocations
  7. Click Tables and click its ellipsis button
  8. To create a new table, click Add and change the properties as follows:
    TableName: Loan
    (Name): tblLoan
  9. Click Columns and click its ellipsis button
  10. Click Add 10 times and change the properties as follows:
     
    ColumnName (Name)
    DateAllocated colDateAllocated
    LoanNumber colLoanNumber
    PreparedBy colPreparedBy
    PreparedFor colPreparedFor
    Principal colPrincipal
    InterestRate colInterestRate
    Periods colPeriods
    InterestEarned colInterestEarned
    FutureValue colFutureValue
    MonthlyPayment colMonthlyPayment

The Unique Value of a Column

During data entry, the user is expected to enter various values under each column and each value would belong to a particular record. As a result, it is not unusual to have the same value belonging to different records. For example, it is not surprising to have two employees holding the same first or last name, just as it is not unusual to have two customers living in the same city. On the hand, there are values that should be unique among the records. For example, two employees should not have the same employee number and two customer orders from two different customers should not have the same receipt number. In these cases, you would want each record to hold a different value under the same column. This is referred to as a unique value.

To support unique values, the DataColumn class is equipped with a Boolean property named Unique. The default value of this property is False, which means various records can have the same values for a column.

To visually specify that a column would require (or not require) unique values, in the Members list of the Columns Collection Editor, click the name of the column and, in the Properties list, (accept or) change the value of the Unique field. To programmatically control the uniqueness of values, assign the desired Boolean value to the Unique property of the column.

Practical Learning: Controlling the Uniqueness of a Column

  1. In the Members list, click LoanNumber
  2. In the Properties list, double-click Unique to change its value to True

The Data Type of a Column

If you create an application that allows the user to enter some values, you would wish the user enter the right type of data under each column. To assist you with this, the DataColumn class allows you to specify an appropriate or desired data type for each column. The data type of a column allows it to accept or reject an inappropriate value. Although we saw that the name was the most important aspect of a column, in reality, a data type is also required.

To specify the data type of a column, if you are visually creating the table, in the Columns Collection Editor, under Members, create or select the name of a column. In the Properties list, click the arrow of the DataType field and select from the list:

To supports data types for a column, the DataColumn class relies on the following .NET Framework structures: Boolean, Byte, Char, DateTime, Decimal, Double, Int16, Int32, Int64, SByte, Single, String, TimeSpan, UInt16, UInt32, and UInt64. The DataColumn class can also support an array of Byte values, as in Byte(), for a column. When creating a new column, if you do not specify its data type, it is assumed to be a string and the String data type is automatically applied to it.

To programmatically specify the data type of a column, you have two main alternatives. When declaring a column, to specify its data type, you can initialize the DataColumn variable using the third constructor of the class. Its syntax is:

Public Sub New(columnName As String, dataType As Type)

To specify a column's data type, select one from the Type class of the System namespace by calling the Type.GetType() method. The GetType() method is overloaded with three versions. The first version has the following syntax:

Public Shared Function GetType(typeName As String) As Type

This method expects as argument a valid data type defined in the .NET Framework. The data type must be retrieved from the Type class of the System namespace. The name of the data type must be qualified with a period operator. Here is an example:

Public Class Exercise
    Private dsRedOakHighSchool As DataSet
    Private tblRegistration As DataTable
    Private colStudentNumber As DataColumn

    Private Sub Exercise_Load(ByVal sender As Object, _
                              ByVal e As System.EventArgs) _
                              Handles Me.Load
        colStudentNumber = New DataColumn("StudentNumber", Type.GetType("System.Int32"))

        tblRegistration = New DataTable("Student")
        tblRegistration.Columns.Add(colStudentNumber)

        dsRedOakHighSchool = New DataSet("SchoolRecords")
        dsRedOakHighSchool.Tables.Add(tblRegistration)
    End Sub
End Class

If you used the default constructor to create a DataColumn, to specify its data type, assign its qualified type to the DataColumn.DataType property. Here is an example:

Public Class Exercise
    Private dsRedOakHighSchool As DataSet
    Private tblRegistration As DataTable
    Private colStudentNumber As DataColumn
    Private colFirstName As DataColumn
    Dim colLivesInASingleParentHome As DataColumn

    Private Sub Exercise_Load(ByVal sender As Object, _
                              ByVal e As System.EventArgs) _
                              Handles Me.Load
        colStudentNumber = New DataColumn("StudentNumber", Type.GetType("System.Int32"))

        colFirstName = New DataColumn("FullName")
        colFirstName.DataType = Type.GetType("System.String")

        colLivesInASingleParentHome = New DataColumn("LSPH")
        colLivesInASingleParentHome.DataType = Type.GetType("System.Boolean")

        tblRegistration = New DataTable("Student")
        tblRegistration.Columns.Add(colStudentNumber)

        dsRedOakHighSchool = New DataSet("SchoolRecords")
        dsRedOakHighSchool.Tables.Add(tblRegistration)
    End Sub
End Class

Remember that there are various techniques you can use to create a column by specifying its name and its data type.

Practical Learning: Applying Data Types on Columns

  1. In the Members list, click Principal
  2. In the Properties list, click DataType, click the arrow of its combo box and select System.Double
  3. In the same way, change the data types of the following columns:
     
    Member DataType
    DateAllocated System.DateTime
    LoanNumber System.String
    PreparedBy System.String
    PreparedFor System.String
    Principal System.Double
    InterestRate System.Double
    Periods System.Double
    InterestEarned System.Double
    FutureValue System.Double
    MonthlyPayment System.Double

The Default Value

When performing data entry, the user is expected to enter a value for each column. Sometimes, most values under a certain column would be the same. For example, if you are creating an application that would be used in a tri-state area such as MD-DC-VA and the product would be used to dry-clean items from customers all over the region, most customers would come from the state where the company is based. In the column used to enter the state, you can provide a default value so that, if the user does not enter it, it would be selected by default.

A default value is one that is automatically applied to a column so the user can simply accept it but the user can change it if it does not apply.

To visually create a default value on a column, in the Column Collection Editor, select a column in the Members list. In the Properties list, click DefaultValue and replace <DBNull> with the desired value.

To programmatically specify the default value, assign the desired value to the DefaultValue property of the data column variable.

Practical Learning: Applying Data Types on Columns

  1. In the Members list, click Principal
  2. In the Properties list, click DefaultValue and delete <DBNull>
  3. Type 0.00
  4. In the same way, change the default values of the following columns:
     
    Member DefaultValue
    Principal 0.00
    InterestRate 8.75
    Periods 36

The Expression of a Column

So far, to perform data entry, we created the data fields and expected the user to enter values in them. In some cases, instead of the user typing data, you may want to specify your own constant value or you may want to combine some values. An expression can be:

  • A constant value such as 288, "Aaron Watts", or 48550.95
  • A combination of two or more constants such 50 + 428, "HourlySalary" & 25.85, or "John" & " " & "Santini", 
  • The name of a column such as Filename, CountryCode or DateOfBirth
  • The combination of a constant and one or more column names such as Username & "@gmail.com"
  • Or a combination of two or more columns such as FirstName & LastName

Besides the items in this list, you can also use some functions and/or combine them with the items in the above list. The expression then creates or represents a value. To create an expression, there are various rules you must follow:

  • If the expression is algebraic, you can use the normal math operations (+, -, *, and /) applied to one or more constants combined to one or more column names
  • To create a combination of strings, you can use the + operator

Once you have decided about this expression, you can use it as the value assigned to a column.

If you are visually creating a column, under the Members list of the Column Collection Editor, select a column. To specify an expression for it, in the Properties list, click Expression and type the desired expression. Here is an example: 

If you are visually creating a column, under the Members list of the Column Collection Editor, select a column. To specify an expression for it, in the Properties list, click Expression and type the desired expression.

To programmatically specify the expression used on a column, assign the expression, as a string, to its variable name. Here is an example:

Public Class Exercise
    Private dsRedOakHighSchool As DataSet
    Private tblRegistration As DataTable
    Private colFirstName As DataColumn
    Private colLastName As DataColumn
    Private colFullName As DataColumn

    Dim dgvStudents As DataGridView

    Private Sub Exercise_Load(ByVal sender As Object, _
                              ByVal e As System.EventArgs) _
                              Handles Me.Load
        colFirstName = New DataColumn("FirstName")
        colFirstName.DataType = Type.GetType("System.String")

        colLastName = New DataColumn("LastName")
        colLastName.DataType = Type.GetType("System.String")

        colFullName = New DataColumn("FullName")
        colFullName.DataType = Type.GetType("System.String")
        colFullName.Expression = "FirstName + ' ' + LastName"

        tblRegistration = New DataTable("Student")
        tblRegistration.Columns.Add(colFirstName)
        tblRegistration.Columns.Add(colLastName)
        tblRegistration.Columns.Add(colFullName)

        dsRedOakHighSchool = New DataSet("StudentsRecords")
        dsRedOakHighSchool.Tables.Add(tblRegistration)

        dgvStudents = New DataGridView()
        dgvStudents.Location = New Point(12, 12)
        dgvStudents.Size = New Size(350, 100)
        dgvStudents.DataSource = dsRedOakHighSchool
        dgvStudents.DataMember = "Student"

        Controls.Add(dgvStudents)
    End Sub
End Class

Expression

Thanks to this code, the user can type both the first and the last names. Then two things:

  1. When the user moves to the next record, the expression is used to create the value of the full name column
     
  2. The user cannot enter a value in the column that has an expression

Practical Learning: Creating Expressions on Columns

  1. In the Members list, click FutureValue
  2. In the Properties list, click Expression and type Principal + InterestEarned
  3. In the same way, change the data types of the following columns:
     
    Member Expression
    InterestEarned Principal * (InterestRate / 100) * (Periods / 12)
    FutureValue Principal + InterestEarned
    MonthlyPayment FutureValue / Periods

Text Length and Null Values

 

The Maximum Length of a Column

If a column is configured to receive text, that is, if its data type is set to String, by default, it can hold 0 to 32767 characters. This is (too) long for most cases. For example, if a column is made for people's names, this length is certainly too high. Fortunately, to customize the behavior of a column, you can limit the number of characters that can be entered in a column.

To support the ability to control the number of characters that a text-based column would allow, the DataColumn class is equipped with a property named MaxLength. The default value of this property is -1, which means there is no limit.

To visually set the maximum length, in the Columns Collection Editor, click a column in the Members list. In the Properties list, click MaxLength and type the desired value. To programmatically specify the maximum length, assign an integer value to the MaxLength property of the column's variable. Here are examples:

Private Sub Exercise_Load(ByVal sender As Object, _
                              ByVal e As System.EventArgs) _
                              Handles Me.Load
    colFirstName = New DataColumn("FirstName")
    colFirstName.DataType = Type.GetType("System.String")
    colFirstName.MaxLength = 50

    colLastName = New DataColumn("LastName")
    colLastName.DataType = Type.GetType("System.String")
    colLastName.MaxLength = 50

    colFullName = New DataColumn("FullName")
    colFullName.DataType = Type.GetType("System.String")
    colFullName.Expression = "FirstName + ' ' + LastName"
    colFullName.MaxLength = 120

    tblRegistration = New DataTable("Student")
    tblRegistration.Columns.Add(colFirstName)
    tblRegistration.Columns.Add(colLastName)
    tblRegistration.Columns.Add(colFullName)

    dsRedOakHighSchool = New DataSet("StudentsRecords")
    dsRedOakHighSchool.Tables.Add(tblRegistration)
End Sub

Null Values

When performing data entry, if the user does not have a value for a certain column, he or she may skip it. In some cases, you may want a value to be required; that is, you would not let the column be left empty. When a column is left empty, it is referred to as null.

To support the ability to have a null value or to require it, the DataColumn class is equipped with a Boolean property named AllowDBNull. If you want the user to be able to skip a column and not provide a value, you can ignore this property or set it to True. To require a value for a column, set this property to False. Here is an example:

Private Sub Exercise_Load(ByVal sender As Object, _
                              ByVal e As System.EventArgs) _
                              Handles Me.Load
        colFirstName = New DataColumn("FirstName")
        colFirstName.DataType = Type.GetType("System.String")
        colFirstName.MaxLength = 50

        colLastName = New DataColumn("LastName")
        colLastName.DataType = Type.GetType("System.String")
        colLastName.MaxLength = 50
        colLastName.AllowDBNull = False

        colFullName = New DataColumn("FullName")
        colFullName.DataType = Type.GetType("System.String")
        colFullName.Expression = "FirstName + ' ' + LastName"
        colFullName.MaxLength = 120

        tblRegistration = New DataTable("Student")
        tblRegistration.Columns.Add(colFirstName)
        tblRegistration.Columns.Add(colLastName)
        tblRegistration.Columns.Add(colFullName)

        dsRedOakHighSchool = New DataSet("StudentsRecords")
        dsRedOakHighSchool.Tables.Add(tblRegistration)
End Sub

Practical Learning: Nullifying a Column

 

  1. In the Members list, click DateAllocated
  2. In the Properties list, double-click the value of the AllowDBNull field to set it to False
  3. In the Members list, click LoanNumber
  4. In the Properties list, double-click the value of the AllowDBNull field to set it to False
  5. Click Close and click Close
  6. To create a new form, in the Solution Explorer, right-click WattsALoan1 -> Add -> Windows Forms...
  7. Set the Name to Employees and click Add
  8. From the Data section of the Toolbox, click DataSet and click the form
  9. Select the Untyped Dataset radio button and click OK
  10. In the Properties window, change the following characteristics:
    DataSetName: dsEmployees
    (Name): Employees
  11. Click Tables and click its ellipsis button
  12. To create a new table, click Add and change the properties as follows:
    TableName: Employee
    (Name): tblEmployee
  13. Click Columns and click its ellipsis button
  14. Click Add 5 times and change the properties as follows:
     
    AllowDBNull ColumnName DefaultValue DataType Expression Unique (Name)
    False EmployeeNumber       True colEmployeeNumber
      FirstName         colFirstName
    False LastName         colLastName
      FullName     LastName + ', ' + FirstName   colFullName
      Title         colTitle
      HourlySalary 8.75 System.Double     colHourlySalary
  15. Click Close and click Close
  16. Design the form as follows:
     
    Watts A Loan
     
    Control Text Name Other Properties
    DataGridView   dgvEmployees DataSource: dsEmployees
    DataMember: Employee
    Button Close btnClose  
    Data Grid Columns
     
    DataPropertyName HeaderText Width
    EmployeeNumber Empl # 65
    FirstName First Name 65
    LastName Last Name 65
    FullName Full Name 120
    Title   110
    HourlySalary Salary/hr 60
  17. Right-click the Employees form and click View Code
  18. Above the Public Class Employees line, import the System.IO namespace
     
    Imports System.IO
    
    Public Class Employees
    
    End Class
  19. In  the Class Name combo box, select (Employees Events)
  20. In the Method Name combo box, select Load and implement the event as follows:
     
    Imports System.IO
    
    Public Class Employees
    
        Private Sub Employees_Load(ByVal sender As Object, _
                                   ByVal e As System.EventArgs) _
                                   Handles Me.Load
            Dim Filename As String = "employees.xml"
    
            If File.Exists(Filename) Then
                dsEmployees.ReadXml(Filename)
            End If
        End Sub
    End Class
  21. In the Method Name combo box, select FormClosing and implement the event as follows:
     
    Private Sub Employees_FormClosing(ByVal sender As Object, _
                  ByVal e As System.Windows.Forms.FormClosingEventArgs) _
                                          Handles Me.FormClosing
        dsEmployees.WriteXml("employees.xml")
    End Sub
  22. In  the Class Name combo box, select btnClose
  23. In the Method Name combo box, select Click and implement the event as follows:
     
    Private Sub btnClose_Click(ByVal sender As Object, _
                                   ByVal e As System.EventArgs) _
                                   Handles btnClose.Click
        Close()
    End Sub
  24. Return to the form
  25. Under the form, right-click dsEmployees and click Copy
  26. Display the LoanAllocations form
  27. Right-click it and click Paste
  28. To create a new form, in the Solution Explorer, right-click WattsALoan1 -> Add -> Windows Forms...
  29. Set the Name to Customers and click Add
  30. From the Data section of the Toolbox, click DataSet and click the form
  31. Select the Untyped Dataset radio button and click OK
  32. In the Properties window, change the following characteristics:
    DataSetName: dsCustomers
    (Name): Customers
  33. Click Tables and click its ellipsis button
  34. To create a new table, click Add and change the properties as follows:
    TableName: Customer
    (Name): tblCustomer
  35. Click Columns and click its ellipsis button
  36. Click Add 5 times and change the properties as follows:
     
    AllowDBNull ColumnName Unique (Name)
    False AccountNumber True colAccountNumber
    False FullName   colFullName
      EmailAddress   colEmailAddress
      PhoneNumber   colPhoneNumber
  37. Click Close and click Close
  38. Design the form as follows:
     
    Watts A Loan: Customers
     
    Control Text Name Other Properties
    DataGridView   dgvCustomers DataSource: dsCustomers
    DataMember: Customer
    Button Close btnClose  
    Data Grid Columns
     
    DataPropertyName HeaderText Width
    AccountNumber Account # 65
    FullName Full Name 120
    EmailAddress Email Address 120
    PhoneNumber Phone # 90
  39. Right-click the Employees form and click View Code
  40. Above the Public Class Customers line, import the System.IO namespace
     
    Imports System.IO
    
    Public Class Customers
    
    End Class
  41. In  the Class Name combo box, select (Customers Events)
  42. In the Method Name combo box, select Load and implement the event as follows:
     
    Imports System.IO
    
    Public Class Customers
    
        Private Sub Customers_Load(ByVal sender As Object, _
                                   ByVal e As System.EventArgs) _
                                   Handles Me.Load
            Dim Filename As String = "customers.xml"
    
            If File.Exists(Filename) Then
                dsCustomers.ReadXml(Filename)
            End If
        End Sub
    End Class
  43. In the Method Name combo box, select FormClosing and implement the event as follows:
     
    Private Sub Customers_FormClosing(ByVal sender As Object, _
                  ByVal e As System.Windows.Forms.FormClosingEventArgs) _
                                          Handles Me.FormClosing
        dsCustomers.WriteXml("customers.xml")
    End Sub
  44. In  the Class Name combo box, select btn Close
  45. In the Method Name combo box, select Click and implement the event as follows:
     
    Private Sub btnClose_Click(ByVal sender As Object, _
                                   ByVal e As System.EventArgs) _
                                   Handles btnClose.Click
        Close()
    End Sub
  46. Return to the form
  47. Under the form, right-click dsCustomers and click Copy
  48. Display the LoanAllocations form
  49. Right-click it and click Paste
  50. Design the form as follows:
     
    Watts A Loan
     
    Control Text Name Other Properties
    DataGridView   dgvCustomers DataSource: dsCustomers
    DataMember: Customer
    Button Close btnClose  
    Data Grid Columns
     
    DataPropertyName HeaderText Width DefaultCellStyle -> Format  
    DateAllocated Date Allocated   Date Time  
    LoanNumber Loan # 65    
    PreparedBy Prepared By 110   ColumnType: DataGridViewComboBoxColumn
    DataSource: dsEmployees
    DisplayMember: Employee.EmployeeNumber
    PreparedFor Prepared For 110   ColumnType: DataGridViewComboBoxColumn
    DataSource: dsCustomers
    DisplayMember: Customer.AccountNumber
    Principal   70 Currency  
    InterestRate Rate (%) 65 Numeric  
    Periods Prd (Months) 65 Numeric  
    InterestEarned Interest Earned   Currency  
    FutureValue Future Value   Currency  
    MonthlyPayment Pmt/Month   Currency  
  51. Right-click the Employees form and click View Code
  52. Above the Public Class LoanAllocations line, import the System.IO namespace
     
    Imports System.IO
    
    Public Class LoanAllocations
    
    End Class
  53. In  the Class Name combo box, select (LoanAllocations Events)
  54. In the Method Name combo box, select Load and implement the event as follows:
     
    Private Sub LoanAllocations_Load(ByVal sender As Object, _
                                         ByVal e As System.EventArgs) _
                                         Handles Me.Load
        Dim Filename As String = "employees.xml"
    
        If File.Exists(Filename) Then
            dsEmployees.ReadXml(Filename)
        End If
    
        Filename = "customers.xml"
    
        If File.Exists(Filename) Then
            dsCustomers.ReadXml(Filename)
        End If
        
        Filename = "loans.xml"
    
        If File.Exists(Filename) Then
            dsLoanAllocations.ReadXml(Filename)
        End If
    End Sub
  55. In the Method Name combo box, select FormClosing and implement the event as follows:
     
    Private Sub LoanAllocations_FormClosing(ByVal sender As Object, _
                  ByVal e As System.Windows.Forms.FormClosingEventArgs) _
                                                Handles Me.FormClosing
        dsLoanAllocations.WriteXml("loans.xml")
    End Sub
  56. In  the Class Name combo box, select btn Close
  57. In the Method Name combo box, select Click and implement the event as follows:
     
    Private Sub btnClose_Click(ByVal sender As Object, _
                                   ByVal e As System.EventArgs) _
                                   Handles btnClose.Click
        Close()
    End Sub
  58. To create a new form, in the Solution Explorer, right-click WattsALoan1 -> Add -> Windows Forms...
  59. Set the Name to Payments and click Add
  60. Display the Employees form
  61. Right-click dsEmployees and click Copy
  62. Display the Payments form
  63. Right-click it and click Paste
  64. Display the LoanAllocations form
  65. Right-click dsLoanAllocations and click Copy
  66. Display the Payments form
  67. Right-click it and click Paste
  68. From the Data section of the Toolbox, click DataSet and click the Payments form
  69. Select the Untyped Dataset radio button and click OK
  70. In the Properties window, change the following characteristics:
    DataSetName: dsPayments
    (Name): Payments
  71. Click Tables and click its ellipsis button
  72. To create a new table, click Add and change the properties as follows:
    TableName: Payment
    (Name): tblPayment
  73. Click Columns and click its ellipsis button
  74. Click Add 6 times and change the properties as follows:
     
    AllowDBNull ColumnName DataType DefaultValue Expression Unique (Name)
    False PaymentNumber       True colPaymentNumber
    False PaymentDate System.DateTime       colPaymentDate
    False ReceivedBy         colReceivedBy
    False PaymentFor         colPaymentFor
    False PaymentAmount System.Double 0.00     colPaymentAmount
      Balance System.Double 0.00     colBalance
  75. Click Close and click Close
  76. Design the form as follows:
     
    Watts A Loan: Payments
     
    Control Text Name Other Properties
    DataGridView   dgvPayments DataSource: dsPayments
    DataMember: Payment
    Button Loans... btnLoans  
    Button Close btnClose  
    Data Grid Columns
     
    DataPropertyName HeaderText Width DefaultCellStyle -> Format  
    PaymentNumber Pmt # 55    
    PaymentDate Pmt Date 70 Date Time  
    ReceivedBy Received By     ColumnType: DataGridViewComboBoxColumn
    DataSource: dsEmployees
    DisplayMember: Employee.EmployeeNumber
    PaymentFor Payment For     ColumnType: DataGridViewComboBoxColumn
    DataSource: dsLoanAllocations
    DisplayMember: Loan.LoanNumber
    PaymentAmount Pmt Amt 70 Currency  
    Balance   80 Currency  
  77. Right-click the Employees form and click View Code
  78. Above the Public Class Payments line, import the System.IO namespace
     
    Imports System.IO
    
    Public Class Payments
    
    End Class
  79. In  the Class Name combo box, select (Payments Events)
  80. In the Method Name combo box, select Load and implement the event as follows:
     
    Private Sub Payments_Load(ByVal sender As Object, _
                                  ByVal e As System.EventArgs) _
                                  Handles Me.Load
            Dim Filename As String = "employees.xml"
    
            If File.Exists(Filename) Then
                dsEmployees.ReadXml(Filename)
            End If
    
            Filename = "loans.xml"
    
            If File.Exists(Filename) Then
                dsLoanAllocations.ReadXml(Filename)
            End If
    
            Filename = "payments.xml"
    
            If File.Exists(Filename) Then
                dsPayments.ReadXml(Filename)
            End If
    End Sub
  81. In the Method Name combo box, select FormClosing and implement the event as follows:
     
    Private Sub Payments_FormClosing(ByVal sender As Object, _
                  ByVal e As System.Windows.Forms.FormClosingEventArgs) _
                                         Handles Me.FormClosing
        dsPayments.WriteXml("payments.xml")
    End Sub
  82. In the Class Name combo box, select btnLoans
  83. In the Method Name combo box, select Click and implement the event as follows:
     
    Private Sub btnLoans_Click(ByVal sender As Object, _
                                   ByVal e As System.EventArgs) _
                                   Handles btnLoans.Click
        Dim frmLoans As LoanAllocations = New LoanAllocations
        frmLoans.Show()
    End Sub
  84. In the Class Name combo box, select btn Close
  85. In the Method Name combo box, select Click and implement the event as follows:
     
    Private Sub btnClose_Click(ByVal sender As Object, _
                                   ByVal e As System.EventArgs) _
                                   Handles btnClose.Click
        Close()
    End Sub
  86. In the Solution Explorer, right-click Form1.vb and click Rename
  87. Type Central.vb and press Enter twice to display the form
  88. Design the form as follows:
     
    Control Text Name
    Button ... btnPayments
    Label Loan Payments lblPayments
    Button ... btnAllocations
    Label Loan Allocations lblAllocations
    Button ... btnCustomers
    Label Customers lblCustomers
    Button ... btnEmployees
    Label Employees lblEmployees
    Button Close btnClose
  89. Right-click the form and click View Code
  90. Create the following events:
     
    Public Class Central
        Private Sub PaymentClick(ByVal sender As Object, _
                                 ByVal e As EventArgs) _
                                 Handles btnPayments.Click, _
                                         lblPayments.Click
            Dim frmPayments As Payments = New Payments
            frmPayments.ShowDialog()
        End Sub
    
        Private Sub LoanAllocationsClick(ByVal sender As Object, _
                                         ByVal e As EventArgs) _
                                         Handles btnLoanAllocations.Click, _
                                                 lblLoanAllocations.Click
            Dim frmLoans As LoanAllocations = New LoanAllocations
            frmLoans.ShowDialog()
        End Sub
    
        Private Sub CustomersClick(ByVal sender As Object, _
                                   ByVal e As EventArgs) _
                                   Handles btnCustomers.Click, _
                                           lblCustomers.Click
            Dim frmClients As Customers = New Customers
            frmClients.ShowDialog()
        End Sub
    
        Private Sub EmployeesClick(ByVal sender As Object, _
                                   ByVal e As EventArgs) _
                                   Handles btnEmployees.Click, _
                                           lblEmployees.Click
            Dim frmStaff As Employees = New Employees
            frmStaff.ShowDialog()
        End Sub
    
        Private Sub btnClose_Click(ByVal sender As Object, _
                                   ByVal e As System.EventArgs) _
                                   Handles btnClose.Click
            End
        End Sub
    End Class
  91. Execute the application
  92. Click the Employees label and create the following records:
     
    Employee # First Name Last Name Title Salary/hr
    7973-45 Bernard Wallow Account Manager 24.85
    2497-94 Justine Bogley Sales Representative 12.75
    2930-75 Nestor Rosenblatt Sales Representative 14.25
     
    Watts A Loan
  93. Close the form
  94. Click the Customers label and create the following records:
     
    Account # Full Name Email Address Phone Number
    937-497 Joan Fairbanks fairbie1288@hotmail.com (301) 937-5888
    293-759 Ernie Lipps ernie.rowdie@comcast.net (703) 506-0000
    502-850 Christopher Owens owenchris@yahoo.com (202) 529-6100
    520-840 Ann Rowdy rowdiant@msn.com (301) 855-2090
    602-475 Sarah Thompson lolitta448@yahoo.com (301) 870-7454
     
  95. Close the form
  96. Click the Loan Allocations label and create the following records:
     
    Date Allocated Loan # Prepared By Prepared For Principal Rate (%) Prd (Months)
    08/18/06 52-9739-5 2497-94 937-497 6500 16.25  
    10/26/2006 20-5804-8 7973-45 602-475 3260    
    02/06/07 77-3907-2 2497-94 502-850 25605 12.50 60
    03/20/07 92-7495-4 2930-75 293-759 14800   48
     
  97. Close the form
  98. Click the Loan Payments label and create the following records:
     
    Pmt # Pmt Date Received By Payment For Pmt Amt Balance
    1001 10/25/06 2497-94 52-9739-5 268.58 9400.17
    1002 11/30/06 2930-75 52-9739-5 268.58 9131.59
    1003 12/24/2006 7973-45 20-5804-8 114.33 4001.42
    1004 12/28/06 2497-94 52-9739-5 268.58 8863.01
    1005 01/26/07 2497-94 20-5804-8 114.33 3887.09
    1006 01/31/07 2930-75 52-9739-5 268.58 8594.43
    1007 02/20/07 2497-94 20-5804-8 114.33 3772.76
    1008 03/02/07 2930-75 52-9739-5 268.58 8325.85
    1009 03/25/2007 2930-75 20-5804-8 114.33 3658.43
    1010 04/25/07 7973-45 92-7495-4 416.25 19563.75
    1011 04/28/07 2497-94 77-3907-2 693.47 40914.66
    1012 04/28/07 7973-45 20-5804-8 114.33 3544.10
    1013 05/01/07 7973-45 52-9739-5 268.58 8057.27
    1014 05/26/07 2497-94 77-3907-2 693.47 40221.19
     
  99. Close the forms and return to your programming environment

Previous Copyright 2008, Yevol Next