2016-02-25 2 views
-1

Je fais un devoir pour ma classe et je suis un débutant supeeeer au codage. Cette affectation me demande de sélectionner les services et un taux d'actualisation, puis de les afficher dans une zone de texte complète sous les deux. Mon problème est, je suis censé être en mesure de sélectionner plusieurs services et les avoir au total, mais je ne peux pas le comprendre. Je vais poster le code ci-dessous:Comment cumuler des totaux cumulés avec des montants constants?

Public Class Form1 

Dim CurrentServicesDec As Decimal 
Dim CurrentServicesTotal As Decimal 
Private DiscountServicesDec As Decimal 



Private Sub CalculateButton_Click(sender As Object, e As EventArgs) Handles CalculateButton.Click 
    'Calculate the Service(s) selected and add the discount if any. 

    If MakeOverCheckBox.Checked = True Then 
     CurrentServicesDec = 125 

    ElseIf Val(HairStylingCheckBox.Checked) = True Then 
     CurrentServicesDec = 60 

    ElseIf Val(ManicureCheckBox.Checked) = True Then 
     CurrentServicesDec = 35 

    ElseIf Val(MakeupCheckbox.Checked) = True Then 
     CurrentServicesDec = 200 
    End If 
    If (TenPercentRadio.Checked) = True Then 
     DiscountServicesDec = 0.1 
    ElseIf TwentyPercentRadio.Checked = True Then 
     DiscountServicesDec = 0.2 


    End If 

    CurrentServicesTotal = CurrentServicesDec - (CurrentServicesDec * DiscountServicesDec) 

    txtTotal.Text = FormatCurrency(CurrentServicesTotal) 



End Sub 

Private Sub ClearButton_Click(sender As Object, e As EventArgs) Handles ClearButton.Click 
    'Clear the options on the form. 

    txtTotal.Text = "" 
    TenPercentRadio.Checked = False 
    TwentyPercentRadio.Checked = False 

End Sub 

Private Sub ExitButton_Click(sender As Object, e As EventArgs) Handles ExitButton.Click 
    'Close the program 

    Me.Close() 
End Sub 

Private Sub PrintButton_Click(sender As Object, e As EventArgs) Handles PrintButton.Click 
    'Print Preview the Form 

    PrintForm1.PrintAction = Printing.PrintAction.PrintToPreview 
    PrintForm1.Print() 
End Sub 
End Class 

C'est ce que j'ai, pour autant que le programme étant en mesure de choisir un service et ajouter la remise, il fonctionne parfaitement, mais pas pour de multiples services sélectionnés!

Merci d'avance.

Répondre

0

Votre flux de programme a quelques problèmes pour obtenir votre comportement prévu, puisque votre bloc Si ​​commençant par If MakeOverCheckBox.Checked = True Then, en utilisant ElseIf pour les branches suivantes les fera sauter.

Vous attribuez également la valeur CurrentServicesDec lorsque je pense que vous devriez l'ajouter - déclarez donc la variable dans votre fonction Calculate et utilisez +=. Pour obtenir le comportement de vérification des multiples dans votre contrôle case à cocher - changez les blocs ElseIf en blocs If.

Private Sub CalculateButton_Click(sender As Object, e As EventArgs) Handles CalculateButton.Click 
Dim CurrentServicesDec As Decimal 
If MakeOverCheckBox.Checked = True Then 
    CurrentServicesDec += 125 
End If 

If HairStylingCheckBox.Checked = True Then 
    CurrentServicesDec += 60 
End If 

If ManicureCheckBox.Checked = True Then 
    CurrentServicesDec += 35 
End If 

If MakeupCheckbox.Checked = True Then 
    CurrentServicesDec += 200 
End If 
+0

D'accord, j'ai changé le Sinon si à, mais toujours les mêmes résultats .. Merci pour la réponse rapide! – VomitingWinter

+0

@VomitingWinter pas sûr de ce que vous faisiez avec vos appels 'Val()' mais je pense qu'ils sont inutiles. – hkf

+0

Ouais j'ai réalisé qu'ils étaient totalement inutiles, essayant juste de voir si ça changeait quelque chose. Ce qu'il n'a pas:/ – VomitingWinter