Problème de calcul du total global de la grille de données

la programmation


Salut.
Lorsque j’insère un sous-total dans la vue datagridview, le code recalcule les changements totaux généraux
ma boucle. compter tout
J’ai besoin de votre aide ou de vos idées s’il vous plaît.

Ce que j’ai essayé :

VB
Private Sub BtnSum_Click(sender As Object, e As EventArgs) Handles BtnSum.Click
    Dim somme As Double
    For x As Integer = 0 To DgvDevisClent.Rows.Count - 1
        somme += CType(DgvDevisClent.Rows(x).Cells(4).Value, Double)
    Next
    somme = String.Format("{0:##,##0.000}", CDbl(somme.ToString))
    DgvDevisClent.Rows.Insert(DgvDevisClent.CurrentRow.Index + 1, 1)
    DgvDevisClent.CurrentCell = DgvDevisClent.Rows(DgvDevisClent.CurrentRow.Index + 1).Cells(0)
    DgvDevisClent.CurrentRow.Cells(4).Value = somme
    DgvDevisClent.Focus()
End Sub

Solution 1

Vous avez la ligne suivante dans votre code :

VB
somme = String.Format("{0:##,##0.000}", CDbl(somme.ToString))

Ainsi, vous convertissez la valeur double en chaîne, afin de pouvoir ensuite la reconvertir en double, afin de l’utiliser dans l’appel à String.Format, ce qui est un peu inutile. Mais vous utilisez ensuite cette chaîne pour définir la valeur de somme, qui est déclaré comme un double. Tout cela n’a aucun sens, alors supprimez cette ligne de code.

Solution 2

D’après votre commentaire –

Citation:

Lorsque j’actualise le code avec un événement datagridview, le total change dans mon étiquette
exemple
premier article 1 $
deuxième article 2 $
Sous-total 3 $
Mon étiquette affiche 6 $ ou place pour afficher 3 $

Vous n’effacez pas le total d’origine pour afficher le total actualisé lorsque vous actualisez votre grille de données –

VB
'Clear your label of all totals...
YourLabel.Text = ""

'Recalculate the total and update your label with the correct total...
Dim somme As Double
For x As Integer = 0 To DgvDevisClent.Rows.Count - 1
    somme += CType(DgvDevisClent.Rows(x).Cells(4).Value, Double)
Next
somme = String.Format("{0:##,##0.000}", CDbl(somme.ToString))

'Display the updated total in your label, PAY ATTENTION to the above solution and comments though...
YourLabel.Text = somme

コメント

タイトルとURLをコピーしました