2016-03-24 26 views
0

私の出力画面に表示するTotalCostサブプロシージャの値を取得できません。それはちょうどそれらが宣言された後chairQuantとsofaQuantの値が初期化されることはありませんすべてサブプロシージャ値は出力に表示されません。スクリーンショットでは

のためのゼロ

Ouput Screen. IT is supposed to show the total for the chairs and sofas plus separate tax and a grand total

Public Class Form1 
    Private Sub btnProcess_Click(sender As Object, e As EventArgs) Handles btnProcess.Click 

     Dim chairQuant, sofaQuant, chair, sofa, price, total, tax As Double 
     Dim name, address, zip As String 

     If Not DataOk() Then 
      Dim msg As String = " Please make sure all data is entered correctly." 
      MessageBox.Show(msg) 
      Else 
      InputData(chair, sofa, name, address, zip) 
      TotalCost(price, total, tax, chairQuant, sofaQuant) 
      ShowInvoice(name, address, zip, chairQuant, sofaQuant, price, tax, total) 
     End If 
    End Sub 

    Function DataOk() As Boolean 
     If (txtName.Text = "") Or (txtAddress.Text = "") Or (txtCity.Text = "") Or 
      (Not IsNumeric(txtChairs.Text)) Or (Not IsNumeric(txtSofas.Text)) Then 
      Return False 
     Else 
      Return True 
     End If 
    End Function 

    Sub InputData(ByRef chairQuant As Double, ByRef sofaQuant As Double, ByRef name As String, 
        ByRef address As String, ByRef Zip As String) 

     chairQuant = CDbl(txtChairs.Text) 
     sofaQuant = CDbl(txtSofas.Text) 
     name = txtName.Text 
     address = txtAddress.Text 
     Zip = txtCity.Text 

    End Sub 

    Sub TotalCost(ByRef price As Double, ByRef total As Double, ByRef tax As Double, chairQuant As Double, 
       sofaQuant As Double) 
     Dim chair As Double = (chairQuant) * (350) 
     Dim sofa As Double = (sofaQuant) * (925) 

     price = (chair + sofa) 
     tax = (chair + sofa) * (0.05) 
     total = (chair + sofa) * (1.05) 
    End Sub 
    Sub ShowInvoice(name As String, address As String, zip As String, 
       chairQuant As Double, sofaQuant As Double, price As Double, 
       tax As Double, total As Double) 

     lstOutput.Items.Clear() 
     lstOutput.Items.Add("Name: " & name) 
     lstOutput.Items.Add("Address: " & address) 
     lstOutput.Items.Add("City: " & zip) 
     lstOutput.Items.Add(" ") 
     lstOutput.Items.Add("Number of chairs: " & txtChairs.Text) 
     lstOutput.Items.Add("Number of sofas: " & txtSofas.Text) 
     lstOutput.Items.Add(" ") 
     lstOutput.Items.Add(" Price: " & price.ToString("C2")) 
     lstOutput.Items.Add("Sales Tax: " & tax.ToString("C2")) 
     lstOutput.Items.Add(" ") 
     lstOutput.Items.Add("Total Price: " & total.ToString("C2")) 

    End Sub 

End Class 

答えて

0

が表示されています。これらは単にTotalCost関数にデフォルトの0として渡されます。この関数に渡す前に、それらを設定する必要があります。 InputDataメソッドにByRefを渡す必要があります。そうすれば、それらを初期化できますか?

+1

WOW!ありがとう。私はそれを完全に見渡した。もし私がより多くの担当者を持っていたら、私はアップボートするだろうが、あなたにとても感謝している! – Kyle

+0

ようこそ。助けになるのはうれしいよ:) – ManoDestra

関連する問題