مشكلة حساب إجمالي datagridview

[ad_1]

أهلاً.
عندما أقوم بإدراج إجمالي فرعي في datagridview، يقوم الكود بإعادة حساب إجمالي التغييرات
حلقة بلدي. عد كل شيء
أحتاج إلى مساعدتكم أو أفكاركم من فضلك.

ما حاولت:

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

الحل 1

لديك السطر التالي في التعليمات البرمجية الخاصة بك:

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

لذلك، تقوم بتحويل القيمة المزدوجة إلى سلسلة، بحيث يمكنك بعد ذلك تحويلها مرة أخرى إلى قيمة مزدوجة، لاستخدامها في استدعاء String.Format، وهو أمر لا معنى له بعض الشيء. لكنك تستخدم بعد ذلك تلك السلسلة لتعيين قيمة somme، والتي تم الإعلان عنها على أنها مزدوجة. كل هذا لا معنى له، لذا قم بإزالة هذا السطر من التعليمات البرمجية.

الحل 2

بناء على تعليقك –

يقتبس:

عندما أقوم بتحديث الكود باستخدام حدث datagridview، فإن إجمالي التغييرات في التصنيف الخاص بي
مثال
العنصر الأول 1 دولار
العنصر الثاني 2 دولار
المجموع الفرعي 3 دولار
تعرض علامتي 6 دولارات أو مكانًا لعرض 3 دولارات

أنت لا تقوم بمسح الإجمالي الأصلي لإظهار الإجمالي الذي تم تحديثه عند تحديث شبكة البيانات الخاصة بك –

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

[ad_2]

コメント

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