منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : مشكلة في تجميع ارصدة الاصناف
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
افعلها على تقرير reportviewer اسهل واسرع وامكانيات كبيرة
افضل من datagridview الى بعد فترة وتزايد المعلومات تصبح بطيئةجدا
لدرجة ان البعض يستخدم نظام الصفحات معها نصيح خليك على  reportviewer
افضل
(27-01-18, 09:31 PM)nooralcown كتب : [ -> ]

نريد ان نعرض البيانات بالطريقة الموضحة
 
رقم الصنف , اسم الصنف , الوحدة الرئيسية , الرصيد (= مجموع الحركات الواردة – مجموع الحركات الصادرة) سعر البيع , سعر الشراء ,رقم المجموعه التي ينتمي لها الصنف, هل الصنف رئيسي ام فرعي 





اذا ممكن اسماء الحقول على شكل نص. وليس صورة ليتم عمل الجملة . لتسهيل المساعدة .
لقد قمت بارفاق الجداول ويا ريت حد يساعدني الموضوع مهم جدا
اتفضل اخي 
وكما قلت لك سابقا انها طريقة بدائية و عقيمة مع البيانات الكثيرة وستشعر بالثقل عند ذلك

صورة
[attachment=16933]

و ده الكود المستخدم
PHP كود :
Public Class EX_1

    Private Sub Form3_Load
(sender As ObjectAs EventArgsHandles MyBase.Load
        
'هذا الكودلادخال البيانات في الدتا قريد فيو

        DGV1.Rows.Add(1000, "مكاوي", "", "", "", "", "", "", "نعم", "")
        DGV1.Rows.Add(1001, "مكاوي1", "قطعة", 120, 20, 10, 10, "2017/2/21", "لا", 1000)
        DGV1.Rows.Add(1002, "مكاوي2", "قطعة", 170, 20, 10, 10, "2017/2/21", "لا", 1000)
        DGV1.Rows.Add(2000, "استشوار", "", "", "", "", "", "", "نعم", "")
        DGV1.Rows.Add(2001, "استشوار1", "قطعة", 220, 40, 40, 40, "2017/3/26", "لا", 2000)
        DGV1.Rows.Add(2002, "استشوار2", "قطعة", 370, 60, 60, 60, "2017/3/26", "لا", 2000)

        '
هذا الكود لتلوين فقط

        For z 
As Integer 0 To DGV1.Rows.Count 2
            If DGV1
.Rows(z).Cells(8).Value "نعم" Then
                DGV1
.Rows(z).DefaultCellStyle.BackColor Color.Yellow
            End 
If
 
       Next

        
'هذا الكود الاساسي للترصيد

        Dim num(2) As Integer
        num(1) = 1000
        num(2) = -1
        For I As Integer = 0 To DGV1.Rows.Count - 2
            If DGV1.Rows(I).Cells(8).Value = "نعم" Then
                For x As Integer = 0 To DGV1.Rows.Count - 2
                    If Val(DGV1.Rows(x).Cells(0).Value) >= num(1) And Val(DGV1.Rows(x).Cells(0).Value) < num(1) + 1000 Then
                        num(0) += Val(DGV1.Rows(x).Cells(3).Value)
                        num(2) += 1
                    End If
                Next
                num(1) += 1000
                DGV1.Rows(I).Cells(3).Value = num(0)
                DGV1.Rows(I).Cells(9).Value = num(2)
                num(0) = 0
                num(2) = -1
            End If
        Next

    End Sub

End Class 
اشكرك علي المساعده استاذي الفاضل اتعبتك معي بس بصراحة الكود بطيئ بافكر اعمل اشي اسرع باذن الله ربنا يسهل
أختي الكريمة nooralcown 



لو قمتي بوضع نسخة من قاعدة البيانات أو نسخة من المشروع لكن هناك حلول أكثر من الأعضاء
الكثير من الأعضاء لا يمتلك الكثير من الوقت لعمل قاعدة بيانات جديدة بنفس أسماء الحقول فقط لوضع مثال صغير
وقت وجهد مضاعف على من سيقم المساعدة .

فأرجوا منك أختي الكريمة  إرفاق شيء جاهز . 
قابل للتعديل مباشرتاً 
وستجدين حلول مختلفة وكثيرة ( من مختلف الأعضاء - المبتدئين والمحترفين )


تعليق : الـ DataGridView سريعة جداً لمن يحسن التعامل معها , وتكفي لعرض أكثر من 40,000,000 أربعين مليون سجل وأكثر من ذلك ( حسب قدرة الجهاز وسرعتة وحجم ذاكرتة )
وهي سريعة لدرجة أن السجلات تظهر على الشاشة فجئة 

ومن غير المنطقي أو المعقول أن يقوم المبرمج بعرض 10,000 سجل في  الـ DataGridView  دفعة واحدة , إلا في حالات إستثنائية ونادرة
ولكن التعامل الطبيعي مع  الـ DataGridView هو بعرض عدد معقول من السجلات لكي يستطيع المستخدم التعامل معها


قوة الأداء تأتي من قوة فكر المبرمج وكيف يستخدم الكود
نعم جميع الطرق تؤدي إلى روما
ولكن هناك طريق سريع جداً لمن يعرف أن يسلك هذا الطريق 
والذي لا يعرفة!! سيسلك طريق من الممكن أن يكون طويل جداً






إذا كان بالإمكان وضع أو إرفاق شيء من مشروعك سيكون أفضل
شكرا اخي ’’عبدالله الدوسري’’ على المساعده مرفق مثال مع قاعدة البيانات والمطلوب 
[attachment=16965]

[attachment=16966]

[attachment=16967]

[attachment=16968]

[attachment=16969]


[attachment=16972]

[attachment=16973]


[attachment=16970]

الأسهم التي تشير إلى أسماء الـFunctions معكوسة : لم أنتبة













المشروع بعد التعديل : لا تنسي تغيير ( نص الإتصال )
[attachment=16971]
الله يعطيك الف عافية وبصراحة تعبان في الشرح والتوصيف ما شاء الله ربي يعطيك الصحة يا رب
الصفحات : 1 2