اخواني الافاضل
لدي برنامج يحتوي تقرير كريستال ريبورت...المشكلة انه عند تنفيذ جملة استعلام معينة تظهر كل سجلات الجدول ولا تظهر سجلات الاستعلام فقط...
ملف مرفق
ولكم خالص الشكر
اخواني الافاضل
لدي برنامج يحتوي تقرير كريستال ريبورت...المشكلة انه عند تنفيذ جملة استعلام معينة تظهر كل سجلات الجدول ولا تظهر سجلات الاستعلام فقط...
ملف مرفق
ولكم خالص الشكر
سيدي إن الخطأ ليس في الكود الذي كتبته ولكن في الفكر الذي استخدمته
جعلت مصدر بيانات التقريرعند التصميم هو قاعدة البيانات وهذا يجعل التقرير يحضر البيانات مباشرة من الجدول وليس من ال Dataset
تحتاج فقط الى إنشاء Dataset وعمل اتصال التقرير عليها بدلا من قاعدة البيانات
وسوف يتم تنفيذ تقريرك
ويمكنك بدلا من كتابة أمر sql أن تكتب
Crysatlreport.recoredselectionformula ="{student.age}=" & textbox1.text
اخي الفاضل
كما ترى في الكود فانني انشات فعلا dataset جديدة وهي DatasetSTUDENT1 تحتوي على جملة الاستعلام
وهي مصدر البيانات للتقرير..
اما طريقة انشائي للتقرير فهي صحيحة كما اظن وكما يلي:
اخترت add new item واضفت مشروع كريستال ريبورت جديد
ظهرت لي شاشة اختيار قاعدة البيانات..فاخترت قاعدة البيانات
ثم اخترت الجدول..ثم اضفت الحقول الى التقرير
وهكذا فالحقول اصبحت فارغة الان الى ان تمتلئ بجملة الاستعلام والتي بدورها موجودة
داخل DatasetSTUDENT1
كما ان الرسالة الخاصة بعدد السجلات الناتجة من الاستعلام تكون صحيحة وتطابق الشروط فعلا..
اذن اين هو الخطا؟؟
اذا امكن ان تزودوني ببرنامج بسيط او تصحيح برنامجي المرفق
ولكم خالص الشكر
أخي العزيز من الواضح أنك فهمتني خطأ
فعلا أنت قمت بعمل dataset ولكنك عندما قمت بتصميم التقرير لم تستخدمها
ما كنت أقصده هو أن تنشأ dataset وتجعلها مصدر لبيانات التقرير عند التصميم لأن ما حدث هو
أنت صممت التقرير على بيانات جدول قاعدة البيانات مباشرة
ثم قلت له خذ البيانات من ال dataset هنا هو لن يلتفت للكود لأنك فعليا حددت له أن مصدر البيانات هو الجدول بكامل بياناته وذلك عندما كنت تصمم التقرير
أفعل الآتي
1- أنشأ اتصال في ال Server Explorer
2- اسحب الجدول والقه فوق النموذج
3- سوف ينشأ لك كائنان هما Connection و ال Adapter
4- قف على ال Adapter واختر Generate dataset
5- بعدما تنشأ dataset
6- قم بعمل report جديد
7- استخدم ال dataset كمصدر للبيانات وأنت تصمم التقرير عن طريق
استخدم project data
ثم أختر Ado.net Dataset
حدد dataset
عدلت لك الكود وها هو الملف
اخي العزيز...
انت صممت برنامجك عن طريق dataset wizard
ووضعت ادوات dataset,connection,adapter
على الفورم يدويا...ولكني اتكلم عن انشاء هذه الادوات داخل الكود واسناد القيم لها
كما هو موجود في برنامجي...برنامجك صحيح ولكنك انشات الادوات وقت التصميم..
لكي تعرف قصدي ارجو منك تحميل كتاب الاخ خالد الجديعي وقراءة الصفحات الاخيرة
http://www.dotnet4arab.com/download/vbdotnetbook.zip
والخاصة بالكريستال ريبورت وسترى بانني صممت البرنامج كما هو مشروح لديه بالضبط
وسترى النتائج الصحيحة التي ظهرت عنده والتي بدورها لم تظهر عندي...
لدي سؤال الى جميع الاخوة:انا عندما اشغل الكريستال ريبورت تظهر اولا شاشة تسجيل البرنامج
حيث اختار التسجيل فيما بعد..فهل هناك علاقة بفشل تنفيذ جملة الاستعلام مع عدم تسجيل نسخة
الكريستال؟؟هذا شك من عندي فقط..
كما انني عندما شغلت برنامج الاخ ahm_im لم تظهر عندي شاشة طلب تسجيل البرنامج
بينما تظهر في البرامج التي اصممها على جهازي.
ارجو من جميع الاخوة المشاركة
وهذا هو الكود
Dim CN As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Data Source=" & Application.StartupPath & "\db1.MDB;")
Dim sql As String
sql = "select * from student where cdbl(age)= '" & TextBox1.Text & "'"
Dim OleDbDataAdapter1 As New OleDbDataAdapter(sql, CN)
Dim DatasetSTUDENT1 As New DataSet
DatasetSTUDENT1.Clear()
OleDbDataAdapter1.Fill(DatasetSTUDENT1, "student")
If DatasetSTUDENT1.Tables("student").Rows.Count >= 1 Then
MessageBox.Show(DatasetSTUDENT1.Tables("student").Rows.Count)
Dim rpt As New reportstudent
rpt.SetDataSource(DatasetSTUDENT1)
CrystalReportViewer1.Zoom(20%)
CrystalReportViewer1.ReportSource = rpt
CrystalReportViewer1.RefreshReport()
End If
اريد رد سريع يا اخوان
وينكم اخواني الافاضل
هل الموضوع بهذه الصعوبة
هل لاحد الاخوان ان يصمم برنامج بسيط جدا يخص الموضوع
للرفع رجاءا
اخواني المشرفين
هل من مجيب
للرفع يا اخوان
السلام عليكم
{وَاتَّقُواْ يَوْمًا تُرْجَعُونَ فِيهِ إِلَى اللّهِ ثُمَّ تُوَفَّى كُلُّ نَفْسٍ مَّا كَسَبَتْ وَهُمْ لاَ يُظْلَمُونَ} (281) سورة البقرة

اخي الكريم
شكرا جزيلا على البرنامج..جملة الاستعلام تعمل في برنامجك..لكنها لم تعمل على
برنامجي...اعتقد بانني توصلت الى السبب..وهو انه هناك خطا ما في خطوات اضافة
التقرير الى البرنامج...حيث انني عندما حذفت التقرير من برنامج واضفته من جديد فشلت
جملة الاستعلام..وهذا يعني ان الخطا في خطوات اضافة التقرير..اما الطريقة التي اضيف
فيها التقرير فهي كما يلي:
1- نختار add new item ونختار crystal report
2- تظهر شاشة انواع التقارير فنختار as a blank report
3- من field explorer نختار add database
4- نحدد مسار قاعدة البيانات ثم نحدد الجدول ثم ok
5- من field explorer نختار الحقول ونسقطها على التقرير
فما هو الخطا هنا؟؟
مع خالص الشكر
هذا الموضوع مغلق.
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…