Imports System.IO Public Class myTreatment Private Sub mytreatment_Load(sender As Object, e As EventArgs) Handles MyBase.Load StartPosition = FormStartPosition.CenterScreen fillGrid(dgv_treatment, fileLoc_treatment) txt_treatmentID.BackColor = gray txt_productID.BackColor = gray txt_treatmentName.BackColor = gray txt_price.BackColor = gray txt_product.BackColor = gray txt_time.BackColor = gray txt_treatmentDesc.BackColor = gray End Sub Private Sub fillText(ByVal rowIndex As Integer) txt_treatmentID.Text = dgv_treatment.Rows(rowIndex).Cells(0).Value txt_productID.Text = dgv_treatment.Rows(rowIndex).Cells(1).Value txt_treatmentName.Text = dgv_treatment.Rows(rowIndex).Cells(2).Value txt_price.Text = dgv_treatment.Rows(rowIndex).Cells(3).Value txt_product.Text = FindField(fileLoc_Product, txt_productID.Text, 2) txt_time.Text = dgv_treatment.Rows(rowIndex).Cells(4).Value txt_treatmentDesc.Text = dgv_treatment.Rows(rowIndex).Cells(5).Value End Sub Private Sub clearText() txt_treatmentID.Text = "" txt_productID.Text = "" txt_treatmentName.Text = "" txt_price.Text = "" txt_product.Text = "" txt_time.Text = "" txt_treatmentDesc.Text = "" End Sub 'Navigation Private dgvNavigator As New DataGridViewNavigator() Private Sub btn_first_Click(sender As Object, e As EventArgs) Handles btn_first.Click dgvNavigator.SelectFirst(dgv_treatment) fillText(dgvNavigator.CurrentIndex) End Sub Private Sub btn_previous_Click(sender As Object, e As EventArgs) Handles btn_previous.Click dgvNavigator.SelectPrevious(dgv_treatment) fillText(dgvNavigator.CurrentIndex) End Sub Private Sub btn_next_Click(sender As Object, e As EventArgs) Handles btn_next.Click dgvNavigator.SelectNext(dgv_treatment) fillText(dgvNavigator.CurrentIndex) End Sub Private Sub btn_last_Click(sender As Object, e As EventArgs) Handles btn_last.Click dgvNavigator.SelectLast(dgv_treatment) fillText(dgvNavigator.CurrentIndex) End Sub '----------------------------------------------------------------------------------------------' Private Sub btn_add_Click(sender As Object, e As EventArgs) Handles btn_add.Click clearText() Dim newID As Integer = AddRecord(fileLoc_treatment) txt_treatmentID.Text = newID End Sub Private Sub btn_save_Click(sender As Object, e As EventArgs) Handles btn_save.Click If Check() = False Then Return End If Dim treatmentID As Integer = txt_treatmentID.Text If UniqueCheck(treatmentID, fileLoc_treatment) Then Dim newTreatment As String = (txt_treatmentID.Text + "," + txt_productID.Text + "," + txt_treatmentName.Text + "," + txt_price.Text + "," + txt_time.Text + "," + txt_treatmentDesc.Text) SaveRecord(fileLoc_treatment, newTreatment) fillGrid(dgv_treatment, fileLoc_treatment) Else MsgBox("ID is not unique.") End If 'check presence of supplier ID in Supplier ID file End Sub Private Function Check() If txt_treatmentID.Text = "" Then MsgBox("Please enter a treatment ID") Return False End If If Not IntCheck(txt_treatmentID.Text) Then MsgBox("Please enter a valid treatment ID") Return False End If If Not IntCheck(txt_productID.Text) Then MsgBox("Please enter a valid Product ID") Return False End If Dim productID As Integer = txt_productID.Text If BinSearch(productID, fileLoc_Product, 0) = False Then MsgBox("invalid Product ID") Return False End If If txt_treatmentName.Text.Length < 2 Or txt_treatmentName.Text.Length > 20 Then MsgBox("treatment name invalid, must be between 3 and 19 characters") Return False End If IntCheck(txt_price.Text) Dim Price As Integer = txt_price.Text If Price < 0 Or Price > 200 Then MsgBox("Invalid Price, must be between 0 and 200 (pounds)") Return False End If IntCheck(txt_time.Text) Dim Time As Integer = txt_time.Text If Time < 0 Or Time > 200 Then MsgBox("Service time invalid, must be between 0 and 200 (minutes)") Return False End If If txt_treatmentDesc.Text.Length < 0 Or txt_treatmentDesc.Text.Length > 200 Then MsgBox("Invalid service description, must be between 0 and 200 characters") Return False End If Return True End Function Private Sub btn_edit_Click(sender As Object, e As EventArgs) Handles btn_edit.Click If Check() = False Then Return End If Dim ID As Integer = txt_treatmentID.Text Dim newValues As String = (txt_treatmentID.Text + "," + txt_productID.Text + "," + txt_treatmentName.Text + "," + txt_price.Text + "," + txt_time.Text + "," + txt_treatmentDesc.Text) EditRecord(ID, newValues, fileLoc_treatment) fillGrid(dgv_treatment, fileLoc_treatment) End Sub Private Sub btn_delete_Click(sender As Object, e As EventArgs) Handles btn_delete.Click Dim treatmentID As Integer = txt_treatmentID.Text DeleteRecord(dgv_treatment, fileLoc_treatment, treatmentID) fillGrid(dgv_treatment, fileLoc_treatment) End Sub Private Sub btn_menu_Click(sender As Object, e As EventArgs) Handles btn_menu.Click Me.Visible = False myMenu.Visible = True End Sub Private Sub txt_productID_TextChanged(sender As Object, e As EventArgs) Handles txt_productID.TextChanged txt_product.Text = FindField(fileLoc_Product, txt_productID.Text, 2) End Sub Private Sub btn_TreIdAsc_Click(sender As Object, e As EventArgs) Handles btn_TreIdAsc.Click AscSort(fileLoc_treatment, 0) fillGrid(dgv_treatment, fileLoc_treatment) End Sub Private Sub btn_TreIdDesc_Click(sender As Object, e As EventArgs) Handles btn_TreIdDesc.Click DescSort(fileLoc_treatment, 0) fillGrid(dgv_treatment, fileLoc_treatment) End Sub Private Sub btn_prodAsc_Click(sender As Object, e As EventArgs) Handles btn_prodAsc.Click AscSort(fileLoc_treatment, 1) fillGrid(dgv_treatment, fileLoc_treatment) End Sub Private Sub btn_prodDesc_Click(sender As Object, e As EventArgs) Handles btn_prodDesc.Click DescSort(fileLoc_treatment, 1) fillGrid(dgv_treatment, fileLoc_treatment) End Sub Private Sub btn_priAsc_Click(sender As Object, e As EventArgs) Handles btn_priAsc.Click AscSort(fileLoc_treatment, 3) fillGrid(dgv_treatment, fileLoc_treatment) End Sub Private Sub btn_priDesc_Click(sender As Object, e As EventArgs) Handles btn_priDesc.Click DescSort(fileLoc_treatment, 3) fillGrid(dgv_treatment, fileLoc_treatment) End Sub Private Sub btn_timeAsc_Click(sender As Object, e As EventArgs) Handles btn_timeAsc.Click AscSort(fileLoc_treatment, 4) fillGrid(dgv_treatment, fileLoc_treatment) End Sub Private Sub btn_timeDesc_Click(sender As Object, e As EventArgs) Handles btn_timeDesc.Click DescSort(fileLoc_treatment, 4) fillGrid(dgv_treatment, fileLoc_treatment) End Sub End Class