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

نسخة كاملة : المخزن
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم و رحمة الله
إخواني الاعزاء على سبيل هاذا المثال قمت بإخراج مجموعة من أصناف الفواكه في تاريخ محدد
 وبالبحث حسب التاريخ أستطيع ان أطلع على جميع الأصناف التي قمت بإخراجها  في ذالك التاريخ
فأنا أرجو المساعدة بفرز عدد كل صنف الذى تم إخراجه في تاريخه جزاكم الله كل خير.
تم التعديل بطرقتين وإختر أيهما التي تُناسبك
إما الفرز عن طريق الكومبوكس أو التكست بوكس
وفقك الله تعالى

التعديل في المرفقات
[attachment=27215]
مشكورأخي العزيز على الرد سأطلع عليه الأن وأخبرك

أخي العزيز المرغوب فيه وهو أن يكون عدد كل فاكهة في عمود المجموع على سطر واحد بدون تكرار نوع الفاكهة

مثلا في تاريخ 10/01/2021 تم إخراج عدد البرتقال: 5   والبطيخ : 4   والتفاح: 
جزاك الله كل خير.
وعليكم السلام ورحمة الله وبركاته

أولا قم باستخدام الكود التالي : 

كود :
MSHFlexGrid1.RemoveItem x_Row
أدخله بحلقة (For) للتشييك على جميع اسطر الجدول المعروض لديك (MSHFlexGrid1) 
في حال تكررت اسم فاكهة مرتين تعطي الامر بحذف السجل بالكود السابق (x_Row) تمثل رقم السطر المكرر للفاكهة التي تتحقق من تكراراها
 بعد حذف كل سطر مكرر من الفاكهة .. 
فيبقى فقط لديك اسماء الفواكه بدون تكرار ..
استخدم كود ضمن حلقة (For) أخرى 
ليشيك على كل فاكهة في قاعدة البيانات (كم سجل لها موجود - بحسب مثالك هنا) 
وضمن الحقل الخاص بالمجموع تكتب عدد السجلات التي وجدتها لكل مادة
يعني : 
MSHFlexGrid1.TextMatrix(i, 4) = Rs2.RecordCount
الـ i :يمثل رقم السطر في MSHFlexGrid1 في مشروعك ضمن الحلقة For
---
في حال عدلت مشروعك وأصبحت تكتب الكمبيات المخرجة في حقل Total في قاعدة البيانات :
عندها يجب عليك استخدام دالة الجمع عبر اوامر SQL ليجمع لك قيمة حقل مادة ما 
من قاعدة البيانات لتضعها في حقل المجموع في  (MSHFlexGrid1) .
يعني : 
MSHFlexGrid1.TextMatrix(i, 4) = Rs2!SumTotal

في حال SumTotal  هو مجموع حقل الكميات لكل فاكهة بحسب أمر الجمع الموجود في الـ SQL
مثلا كود الـ SQL يكون كالتالي:
كود :
Rs2.Open "Select Sum(Total)As SumTotal From table1 Where Date >='01/01/2020' and Date <='31/12/2021'"


---
مشكور أخي العزيز سؤحاول تطبيق هاذا الكود وأخبرك إن شاء الله

(14-11-21, 04:48 PM)Taha Okla كتب : [ -> ]وعليكم السلام ورحمة الله وبركاته

أولا قم باستخدام الكود التالي : 

كود :
MSHFlexGrid1.RemoveItem x_Row
أدخله بحلقة (For) للتشييك على جميع اسطر الجدول المعروض لديك (MSHFlexGrid1) 
في حال تكررت اسم فاكهة مرتين تعطي الامر بحذف السجل بالكود السابق (x_Row) تمثل رقم السطر المكرر للفاكهة التي تتحقق من تكراراها
 بعد حذف كل سطر مكرر من الفاكهة .. 
فيبقى فقط لديك اسماء الفواكه بدون تكرار ..
استخدم كود ضمن حلقة (For) أخرى 
ليشيك على كل فاكهة في قاعدة البيانات (كم سجل لها موجود - بحسب مثالك هنا) 
وضمن الحقل الخاص بالمجموع تكتب عدد السجلات التي وجدتها لكل مادة
يعني : 
MSHFlexGrid1.TextMatrix(i, 4) = Rs2.RecordCount
الـ i :يمثل رقم السطر في MSHFlexGrid1 في مشروعك ضمن الحلقة For
---
في حال عدلت مشروعك وأصبحت تكتب الكمبيات المخرجة في حقل Total في قاعدة البيانات :
عندها يجب عليك استخدام دالة الجمع عبر اوامر SQL ليجمع لك قيمة حقل مادة ما 
من قاعدة البيانات لتضعها في حقل المجموع في  (MSHFlexGrid1) .
يعني : 
MSHFlexGrid1.TextMatrix(i, 4) = Rs2!SumTotal

في حال SumTotal  هو مجموع حقل الكميات لكل فاكهة بحسب أمر الجمع الموجود في الـ SQL
مثلا كود الـ SQL يكون كالتالي:
كود :
Rs2.Open "Select Sum(Total)As SumTotal From table1 Where Date >='01/01/2020' and Date <='31/12/2021'"

أخي Taha هل من الممكن إضافة هاذا الكود في المثال لكي أفهم أكثر جزاك الله كل خير لأنني وجدته صعب شيء ما بالنسبة لي

---
الطريقة موجودة في مثال بالمرفقات..

ولكن باستخدام محرك بحث الـ DAO  -- نفس الكود لـ (SQL) تستطيع تطبيقه على ADO     لا يوجد فرق

في البداية : قم بتشغيل الملف التنفيذي ك مسؤول من أجل تفعيل OCX الجدول المستخدم
' --------------------------------------
ثم قم بفتح المشروع لترى الطريقة  
' --------------------------------------
ملاحظة : التاريخ في قاعدة البيانات قم بحفظه على شكل الترتيب الرقمي لتستطيع البحث ضمنه عن قيمة بين تاريخين
لان التاريخ بدون الترتيب الرقمي لا تستطيع البحث فيه بدقة(خاصة انك اخترت نوع الحقل ك نص وليس كتاريخ).
الترتيب الرقمي : يعني السنة ثم الشهر ثم اليوم ( يعني من اليسار لليمين).
بسبب هذه المشكلة اضعت الكثير من الوقت على مثالك هذا حتى عرفت سبب عدم عمل البحث بين تاريخين في مثالك.
حتى أني قمت بتصنيع المثال  من جديد وبطريقة وأدوات مختلفة  حتى وقفت للمشكلة ...
لهذا تجده بـ DAO   وليس  ADO
وبجدول VSFlex   وليس  MSHFlex
'--------------------------------------
(16-11-21, 04:10 AM)Taha Okla كتب : [ -> ]الطريقة موجودة في مثال بالمرفقات..

ولكن باستخدام محرك بحث الـ DAO  -- نفس الكود لـ (SQL) تستطيع تطبيقه على ADO     لا يوجد فرق

في البداية : قم بتشغيل الملف التنفيذي ك مسؤول من أجل تفعيل OCX الجدول المستخدم
' --------------------------------------
ثم قم بفتح المشروع لترى الطريقة  
' --------------------------------------
ملاحظة : التاريخ في قاعدة البيانات قم بحفظه على شكل الترتيب الرقمي لتستطيع البحث ضمنه عن قيمة بين تاريخين
لان التاريخ بدون الترتيب الرقمي لا تستطيع البحث فيه بدقة(خاصة انك اخترت نوع الحقل ك نص وليس كتاريخ).
الترتيب الرقمي : يعني السنة ثم الشهر ثم اليوم ( يعني من اليسار لليمين).
بسبب هذه المشكلة اضعت الكثير من الوقت على مثالك هذا حتى عرفت سبب عدم عمل البحث بين تاريخين في مثالك.
حتى أني قمت بتصنيع المثال  من جديد وبطريقة وأدوات مختلفة  حتى وقفت للمشكلة ...
لهذا تجده بـ DAO   وليس  ADO
وبجدول VSFlex   وليس  MSHFlex
'--------------------------------------
أخي Taha أعتدر على التأخير في الرد لانني كنت مشغول بعض الشيء
قد أتعبتك معي فلك جزيل الشكر فأنا الآن خارج البيت سأجرب المثال وأخبرك إن شاء الله .
أخي taha أسأل الله العظيم أن يعافيك ويكرمك سأشتغل على المثال وأحاول أن أطوره للأحسن جزاك الله كل خير.