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

نسخة كاملة : كتابة جملة استعلام
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
السلام عليكم ورحمة الله وبركاته

لدى هذا الجدول بقاعدة بيانات اكسس


ما اريده هو كتابة جملة استعلام لعرض بيانات الجدول في الـ DataGridView1
طبعًا لو اريد عرض الجدول كما هو ستكون جملة استعلام SELECT * FROM Payments

لكن ما اريده هو شىء مُختلف قليلًا

• اريد اظهار كود البند + البند + المبلغ
دون ان يتكرر كود البند ، وشرط ان يكون المبلغ هو مجموع البند المُحدد فقط وليس مجموع جميع البنود
بمعنى اريد ان يكون الجدول شىء كهذا

|كود البند|         البند            |المبلغ|
======================
1            |اشتراك نقابة فرعية|30    |
-------------------------------------------
2            |اشتراك داخلى       |25    |
-------------------------------------------
4            |تصوير ورق             |60    |

-------------------------------------------

المُختصر المفيد اننى اريد جلب كل بند والمبالغ التى تم تحقيقها منه

يُفضل عدم عمل حلقات تكرارية لأنه فيما بعد قد يصل عدد السجلات لمئات الآلاف
select count(item) as البد, sum(price) as الاجمالي from Payments group by item
جرب وشوف
تمام جميل ، انا كنت احاول استخدام DISTINCT مع SUM لذلك لم تفلح معى Smile
ظننت ان استخدام SUM فقط لن يكفى..


عمومًا لدى سؤال آخر
هل يمكن تنفيذ جملة استعلام على اكثر من جدول وعرضها بتقرير ؟
علمًا باننى عندما استخدم DataSet اجد الصفوف متكررة كثيرًا

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

ولا اريد استخدام حلقات تكرارية لأن عدد البيانات سيفوق مئات الآلاف فيما بعد
جملة الاستعلام سحر
ممكن تمر بعدة جداول في نفس القاعدة ولو حتى في قاعدة اخرى
المهم تحدد المطلوب
بالنسبة ل
DISTINCT
تلغي التكرار فقط تكتفي باخذ قيمة الحقل المتكرر الأولى أو حسب الشرط
عندي جدول فيه تكرر الاسم خمسين مرة
select DISTINCT name from table
Or
select DISTINCT name from Table where name like '" & xx & "'"
لعرض بيانات اكثر من جدول في استعلام واحد
وبدون تكرار
انت بحاجة لتوضيح اكثر ماذا تريد بالظبط
Dataset
هي مجرب حاوية مثلها مثل قاعدة البيانات بالتمام
يفضلها الكثرون
تمكنت بالفعل من كتابة جملة الاستعلام وتقوم بعمل ما اريده تمامًا وتعرض البيانات التى اريدها بداخل الـ DGV
لكن عندما استخدم نفس الجملة في الـ Crystal Reports تقوم بتكرار نفس السجلات رغم ان السجلات تكون غير متكررة من جملة الاستعلام نفسها ، وحتى ليست متكررة في قاعدة البيانات.
والله يا اخي لا اعلم ماذا اقول لك
انا اكره الكريستال ريبورت كره العمى
يغيريك بسهولة الديزاينر اللي فيه
ويقرفك بيالبيانات والاذونات اللي يطلبها خصوصا على السيرفرات
اذا حابب ترفع مثال مبسط لنفس المشكلة على report-viewer
ماشي الحال
او انتظر احد الاساتذة الافاضل يساعد في الحل
وكذا كذا
تحل المشكلة بعون الله
تقارير مايكروسوفت سيئة جدًا في الواقع رغم سهولتها , وربما لا تتيح لى ما اريده..
المشكلة اظنها بسيطة لكن تحتاج لشخص تعامل مع الكريستال كثيرًا
(07-09-15, 09:14 PM)Youssef1313 كتب : [ -> ]تقارير مايكروسوفت سيئة جدًا في الواقع رغم سهولتها , وربما لا تتيح لى ما اريده..
المشكلة اظنها بسيطة لكن تحتاج لشخص تعامل مع الكريستال كثيرًا

الا تعتقد انها لو كانت سهلة لما اتجه الكثيرون للكريستال ريبورت؟
وهناك فرق بين ان تكره شيئا أو تجهله !!!
بالتوفيق
عمومًا قمت بحل المشكلة
قمت باضافة DataSet بالمشروع واضفت جدول
واضفت به اسماء الاعمدة كلها ( اى دمجتهم من كل الجداول )

وقمت اثناء الـ Runtime بتحويل الـ DGV1.DataSource لـ DataTable واستخدمته كـ DataSource

الكود للافادة

كود :
       Dim rpt As New CrystalReport1
       Dim dt As DataTable = CType(DataGridView1.DataSource, DataTable)
       dt.TableName = "DataTable1"
       rpt.SetDataSource(dt)
       FrmPrintPreview1.CrystalReportViewer1.ReportSource = rpt
       FrmPrintPreview1.Show()

هل يمكن عمل تقرير اعمدته غير معلومة ويتم تحديدها اثناء الـ Runtime ؟
سلام


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

لكن انت لم تضع ولو مثال صغير


موفقين
الصفحات : 1 2