منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
تجميع العناصر المتشابهة في الداتاجريد الاولي في جريد ثانية - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : تجميع العناصر المتشابهة في الداتاجريد الاولي في جريد ثانية (/showthread.php?tid=24961)

الصفحات: 1 2 3


RE: تجميع العناصر المتشابهة في الداتاجريد الاولي في جريد ثانية - atefkhalf2004 - 15-05-18

If objconn.State = ConnectionState.Closed Then objconn.Open()
        Dim myds As New DataSet
        myds = New DataSet
        Sql = "SELECT * FROM adinvodet WHERE invono=  " & Val(TextBox1.Text) & " "
        Dp = New OleDbDataAdapter(Sql, objconn)
        Dp.Fill(myds, "adinvodet")


        For Each r As DataRow In myds.Tables("adinvodet").Rows
            Dim newRow = tempTable.NewRow()
            newRow("كود الصنف") = r("itcod")
            newRow("رقم الصنف") = r("makas")
            newRow("اسم الصنف") = r("invsun")
            newRow("الوحدة") = r("invunit")
            newRow("الكمية") = r("invqu")
            newRow("السعر") = r("invprc")
            newRow("الاجمالي") = r("invsal")
            '    newRow("invono") = r("invono")
            newRow("المجموعة") = r("gname")
            newRow("الشركة") = r("company")
            'newRow("sup_no") = r("sup_no")
            newRow("الخصم") = r("percentage")
            tempTable.Rows.Add(newRow)

        Next

        Me.DataGridView2.AutoGenerateColumns = False
        Me.DataGridView2.AllowUserToResizeColumns = False
        Me.DataGridView2.DataSource = tempTable


هذا كود عرض الفاتورة     اتمني احد يعرض حل افهمه واطبقة  ويستفيد منه الجميع بما فيهم انا

الاستاذ سعود 
الحل الذي وضعته حضرتك  اقرب الحلول
لكن هل هو يصلح لعنصرين فقط   ؟؟؟
بفرض ان عدد الاصناف داخل الفاتورة اكثر من صنفين  ؟؟؟؟
ما الحل

كان هناك مشاركة للاخ سعود  اين هي

انا فعلا تعبت  كان هناك مشاركة  للاخ سعود  اين ذهبت


RE: تجميع العناصر المتشابهة في الداتاجريد الاولي في جريد ثانية - elgokr - 15-05-18

(15-05-18, 03:23 AM)atefkhalf2004 كتب : If objconn.State = ConnectionState.Closed Then objconn.Open()
        Dim myds As New DataSet
        myds = New DataSet
        Sql = "SELECT * FROM adinvodet WHERE invono=  " & Val(TextBox1.Text) & " "
        Dp = New OleDbDataAdapter(Sql, objconn)
        Dp.Fill(myds, "adinvodet")


        For Each r As DataRow In myds.Tables("adinvodet").Rows
            Dim newRow = tempTable.NewRow()
            newRow("كود الصنف") = r("itcod")
            newRow("رقم الصنف") = r("makas")
            newRow("اسم الصنف") = r("invsun")
            newRow("الوحدة") = r("invunit")
            newRow("الكمية") = r("invqu")
            newRow("السعر") = r("invprc")
            newRow("الاجمالي") = r("invsal")
            '    newRow("invono") = r("invono")
            newRow("المجموعة") = r("gname")
            newRow("الشركة") = r("company")
            'newRow("sup_no") = r("sup_no")
            newRow("الخصم") = r("percentage")
            tempTable.Rows.Add(newRow)

        Next

        Me.DataGridView2.AutoGenerateColumns = False
        Me.DataGridView2.AllowUserToResizeColumns = False
        Me.DataGridView2.DataSource = tempTable


هذا كود عرض الفاتورة     اتمني احد يعرض حل افهمه واطبقة  ويستفيد منه الجميع بما فيهم انا

الاستاذ سعود 
الحل الذي وضعته حضرتك  اقرب الحلول
لكن هل هو يصلح لعنصرين فقط   ؟؟؟
بفرض ان عدد الاصناف داخل الفاتورة اكثر من صنفين  ؟؟؟؟
ما الحل

كان هناك مشاركة للاخ سعود  اين هي

انا فعلا تعبت  كان هناك مشاركة  للاخ سعود  اين ذهبت

انت تعبت حالك اخى الفاضل

الامر يحتاج لعملية تركيز وليس استعجال
والمشكلة الاكبر انت تعطى نصف المعلومة وتريد منا الحل
كما لو احد سياخد المشروع او الفكرة ويعمل بها  Big Grin

القى نظرة على السطر التالى

كود :
Sql = "SELECT * FROM adinvodet WHERE invono=  " & Val(TextBox1.Text) & " "

كل ما هو عليك فعله تغييره بالتالى
كود :
SELECT bill_id = MAX(bill_id)
    ,id_acc
    ,add_data = MAX(add_data)
    ,credit_acc = sum(credit_acc)
    ,value_added = MAX(value_added)
    ,total_bill = MAX(total_bill)
    ,quantity_bill = MAX(quantity_bill)
    ,ratio_add = MAX(ratio_add)
    ,id_qaid = MAX(id_qaid)
    ,username = MAX(username)
    ,notepin = MAX(notepin)
FROM bill_data
GROUP BY id_acc
ORDER BY bill_id

كل ما هو عليك تغيير اسماء حقول الجدول باللى موجود فى الكود الاعلى
انا عملت الكود على قاعدة بيانات لدى تاكيد من صحة كتابة الكود وانه يعمل بصورة صحيحة

وكان لدى فى الجدول عدد 2 اصبح يعرض 1 بنائاً على 
كود :
GROUP BY id_acc

وقمت بجمع حقل واحد فى السطر 
كود :
,credit_acc = sum(credit_acc)

صورة لاستعلام الجدول الافتراضي

صورة للاستعلام بعد استخدام الكود

يمكنك التلاعب مع الكود من خلال جملة MAX تحولها الى MIN
الفكرة منها هو اخد قيمة محددة من جميع التشابه حسب الاكبير قيمة أو الاقل قيمة

تمنياتى لك التوفيق



RE: تجميع العناصر المتشابهة في الداتاجريد الاولي في جريد ثانية - mrnooo2000 - 15-05-18

الأخ السائل 

يرجى تحديد ما تريد بالضبط لأنك هكذا تتعب نفسك و تتعب غيرك 
و لا تصل الى ما تريد 


هل تريد عرض الاصناف مجمعة من قاعدة البيانات 
يمكنك ان تفعل ذلك مباشرة عن طريق الاستعلام كما فى المشاركة السابقة لهذه المشاركة ( مشاركة الجوكر )
و اذا اردت عرض الفاتورة مرتين مجمعة و مفصلة استخدم استعلامين 


و اذا اردت تجميع العناصر المعروضة داخل الداتا جريد 
فقد وضعت استعلام فى مشاركتى السابقة يعمل ذلك مباشرة على الداتا جريد 


و الافضل لو وضعت مثال مبسط للتطبيق عليه اذا كنت لا تستطيع ان تشرح ما تريد


RE: تجميع العناصر المتشابهة في الداتاجريد الاولي في جريد ثانية - atefkhalf2004 - 15-05-18

الفكرة حضرتك  اني عامل فاتورة
تعرض الاصناف بالكود  السابق كما طلب احد الزملاء الافاضل وضعه

المطلوب بعد اذنكم

زر امر  اضغط  عليه  يقوم  بعرض  بيانات الحريد ( اصناف الفاتورة)
بحيث
اذا  كان هناك  صنف    كميته  7    ومرة اخري   3   
يتم عرض الاصناف في الجريد الثانية     الصنف  والكمية  المجمعة  وهي  10

اي
مثلا عدد  اصناف الفاتورة  8  اصناف     هناك صنف مكرر  3 مرات   يتم تجميعه  وبالتالي يصبح  عدد الاصناف  6
اتمني اكون عرضت المشكلة

اذا اردت عرض الفاتورة مرتين مجمعة و مفصلة استخدم استعلامين

هذا ما اريده فعلا


RE: تجميع العناصر المتشابهة في الداتاجريد الاولي في جريد ثانية - viv - 15-05-18

السلام عليكم

الاخوة عرضوا عليكم الحل السليم لمشكلتك (Groub by) .
ان طريقة تجميع البيانات من الداتاجريد غير سليمة .
اولا ان عرضك لفاتورة فيها الصنف A مكرر اصلا غير منطقية .
وانت هكذا تقوم بعمل زائد وفيه الكثير من الشوشرة .
طالما تستطيع ان تجلب البيانات مجمعة فلا داعي لاستخدام طريقتك هذه .
مع العلم كملاحظة

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


RE: تجميع العناصر المتشابهة في الداتاجريد الاولي في جريد ثانية - atefkhalf2004 - 15-05-18

تم ارفاق الملف  للتعديل وشكرا لكم


RE: تجميع العناصر المتشابهة في الداتاجريد الاولي في جريد ثانية - elgokr - 15-05-18

(15-05-18, 05:10 PM)atefkhalf2004 كتب : تم ارفاق الملف  للتعديل وشكرا لكم


هل اطلعت على المشاركة الاخيرة لى فى هذا الموضوع ؟؟؟



RE: تجميع العناصر المتشابهة في الداتاجريد الاولي في جريد ثانية - atefkhalf2004 - 15-05-18

نعم اتطلعت

حضرتك دائما انا احب التعلم  
نفسي اعرف اضغط  علي الزر  يعرض الفاتورة مجمعة  في الجريد الثانية  لاني استفيد  من الكود  في موضوعات اخري

ولا ارغب في  استيراد البيانات من القاعدة   

اتمني ان اكون عرضت المشكلة


RE: تجميع العناصر المتشابهة في الداتاجريد الاولي في جريد ثانية - elgokr - 15-05-18

(15-05-18, 06:25 PM)atefkhalf2004 كتب : نعم اتطلعت

حضرتك دائما انا احب التعلم  
نفسي اعرف اضغط  علي الزر  يعرض الفاتورة مجمعة  في الجريد الثانية  لاني استفيد  من الكود  في موضوعات اخري

ولا ارغب في  استيراد البيانات من القاعدة   

اتمني ان اكون عرضت المشكلة


حالياً انا اطلعت على المشروع

واجد بداخله عدد 2 Button
الاول تحت اسم : بحث وبمسمى btnSearch
والثانى تحت اسم : Button1 بمسمى Button1

حالياً انت محتاج لما اضغط على زر البحث يطبق اللى انت طالبه مع عملية الفلتر للبحث
ولا محتاج من خلال الزر Button1 بحيث يعمل جروب للصنف لكل نتائج الجدول فى DataGridView1 الموجود بالاسفل الفورم

فى انتظار ردك



RE: تجميع العناصر المتشابهة في الداتاجريد الاولي في جريد ثانية - atefkhalf2004 - 15-05-18

اسف للتاخير   لما اضغط button1 يعمل البيانات في جريد2    شكرا كثيرا لكم