2014-10-08 72 views
0

我使用visual basic創建一個程序,該程序記錄從抽象基類派生的小時和薪金僱員。對於我的界面,用戶將選擇小時工或薪水員工,如果每小時顯示小時和小時費率文本框。如果工資表格隱藏小時文本框並將小時費率更改爲年薪。Visual Basic單選按鈕身份驗證錯誤

我有一個循環設置如下:

For i As Integer = 0 To EmployeeList.Count - 1 
     Dim thisEmployee As Employee = EmployeeList(i) 

     Dim HourlyorAnnualrate As String = Nothing 
     Dim Hours As String = Nothing 


     If TypeOf (thisEmployee) Is HourlyEmployee Then 
      HourlyorAnnualrate = CType(thisEmployee, HourlyEmployee).decRate 
      Hours = CType(thisEmployee, HourlyEmployee).decHours 
      TotalHourlyRate += thisEmployee.WeeklyGrossPay() 

     End If 

     If TypeOf (thisEmployee) Is SalariesEmployee Then 
      HourlyorAnnualrate = CType(thisEmployee, SalariesEmployee).decSalary 
      TotalSalariesRate += thisEmployee.WeeklyGrossPay() 
     End If 

我添加信息到一個文本框上buttonclick有以下幾點:

Private Sub btnPayroll_Click(sender As Object, e As EventArgs) Handles btnPayroll.Click 
    txtRecord.Text = "Total number of employees: " & vbTab & vbTab & EmployeeList.Count & vbCrLf & _ 
        "Number of salaries employees: " & vbTab & SalariesEmployeeList.Count & vbCrLf & _ 
        "Number of hourly employees: " & vbTab & vbTab & HourlyEmployeeList.Count & vbCrLf & _ 
        "Total salaries employee weekly payroll: " & vbTab & vbTab & FormatCurrency(TotalSalariesRate) & vbCrLf & _ 
        "Total hourly employee weekly payroll: " & vbTab & vbTab & FormatCurrency(TotalHourlyRate) & vbCrLf & _ 
        "Total weekly payroll: " & vbTab & vbTab & FormatCurrency(TotalSalariesRate + TotalHourlyRate) 





End Sub 

我遇到的問題是,用戶可以選擇一名工資員工並且工作得很好,但是如果他們選擇每小時一次的員工,則會記錄weeklygrosspay並將其添加到TotalSalaries費率和TotalHourlyRate。

有沒有反正我可以防止這種情況發生?我試着在每次點擊按鈕後取消選中單選按鈕,但由於這是在循環中,我仍然會記錄不正確。

任何幫助,非常感謝!

+1

你介意發佈處理/顯示循環設置值的表單代碼嗎? – user3510227 2014-10-08 09:09:42

+0

是的,謝謝。它已被添加 – Bhetzie 2014-10-08 21:38:47

回答

0

我必須將子過程中的值設置爲0,現在它工作的很好!