الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيفية حساب الرصيد التراكمي ووضعه في Datagridview

بدأه waheedooo في 31 يناير 2012 · 1 رد · 1,253 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

كما نعلم في جميع برامج المحاسبة (أمين او بازار)

عند طلب كشف الحساب نجد ان البرنامج يقوم بحساب الرصيد التراكمي في ال Datagridview

اريد هذه الشيفرة طبعا بدون الاتصال بقاعدة البيانات مطلقا فقط باستخدام ال Datagridview

مع العلم اني استخدم VB.net 2005

الملف المرفق يوضح الامر

post-125709-050310500 1328013482_thumb.j

المرفقات
BALANCE.JPG
#2

السلام عليكم ...

يمكن تحقيق ذلك بأكثر من طريقة :

  1. طريقة الــ Expression مثال :
    Dim dt As New DataTable
        	dt.Columns.Add("debt", Type.GetType("System.Double"))
        	dt.Columns.Add("credit", Type.GetType("System.Double"))
        	dt.Columns.Add("total", Type.GetType("System.Double"), "debt - credit")
    
        	DataGridView1.DataSource = dt

    و لكن حتى تظهر القيمة في العمود الأخير يجب النزول إلى row جديد ..

  2. Dim dt As New DataTable
        	dt.Columns.Add("debt", Type.GetType("System.Double"))
        	dt.Columns.Add("credit", Type.GetType("System.Double"))
        	dt.Columns.Add("total", Type.GetType("System.Double"))
        	AddHandler dt.ColumnChanged, AddressOf ColumnChanged
    
        	DataGridView1.DataSource = dt

    و لدينا :

    Private Shared Sub ColumnChanged(ByVal sender As Object, ByVal e As System.Data.DataColumnChangeEventArgs)
        	If e.Column.ColumnName = "debt" Or e.Column.ColumnName = "credit" Then
            	Dim debt As Double = 0
            	Dim credit As Double = 0
    
            	If Not e.Row("debt") Is DBNull.Value Then
                	debt = Convert.ToDouble(e.Row("debt").ToString)
            	End If
    
    
            	If Not e.Row("credit") Is DBNull.Value Then
                	credit = Convert.ToDouble(e.Row("credit").ToString)
            	End If
    
            	Dim total As Double = debt - credit
            	e.Row("total") = total
    
        	End If
    	End Sub

    وجدت انه يجب الانتقال إلى الخلية الأخيرة حتى تظهر القيمة ..

  3. الحدث DataGridView1_CellValueChanged و الكود :
     Private Sub DataGridView1_CellValueChanged(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellValueChanged
        	If e.ColumnIndex = 0 Or e.ColumnIndex = 1 Then
            	Dim debt As Double = 0
            	Dim credit As Double = 0
    
            	If Not String.IsNullOrEmpty(DataGridView1.Rows(e.RowIndex).Cells("debt").Value.ToString) Then
                	debt = Convert.ToDouble(DataGridView1.Rows(e.RowIndex).Cells("debt").Value.ToString)
            	End If
    
    
            	If Not String.IsNullOrEmpty(DataGridView1.Rows(e.RowIndex).Cells("credit").Value.ToString) Then
                	credit = Convert.ToDouble(DataGridView1.Rows(e.RowIndex).Cells("credit").Value.ToString)
            	End If
    
            	Dim total As Double = debt - credit
            	DataGridView1.Rows(e.RowIndex).Cells("total").Value = total
    
        	End If
    
    	End Sub

    اعتقد أنه الأفضل ..

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…