الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

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

مغلق
بدأه Buffy_22 في 26 ديسمبر 2006 · 2 رد · 816 مشاهدة · في تصميم وبرمجة التقارير
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الســـــــــــلام عليكم ورحمة الله وبركاتة

عندي مشكله بالكود حيث انه يعرض كل السجلات الموجوده بقاعده البيانات رغم تحديد رقم السجل المراد عرضه

قمت بتحديد رقم السجل المراد عرضه من فورم 2 وقمت بحفظة في متغير str1 لاستطيع تمريره الى الفورم الأخرى التي سيظهر فيها التقرير

وفي تحميل الفورم 3 قمت بوضع الكود الخاص لعرض التقرير

OleDbDataAdapter da = new OleDbDataAdapter("select student.std_name,corses.cor1,corses.cor2 from student,corses where student.std_no=corses.std_no & student.std_no='" + Class1.str1.Trim() + "'", con);
			DataSet ds = new DataSet();
			da.Fill(ds);
			CrystalReport1 r = new CrystalReport1();
			r.SetDataSource(ds);
			crystalReportViewer1.ReportSource = r;
			crystalReportViewer1.PrintReport();

حيث يقوم الكود بجلب اسم الطالب من جدول الطلاب وكذلك درجاته في الماده 1 والماده 2 من جدول المواد من خلال مقارنه رقم الطالب بالرقم الذي تم اختياره بالفورم 2 ولكن رغم ذلك يقوم التقرير بعرض كل السجلات ...

ارجو مساعدتي لمعرفه الخطأ

تم تعديل هذه المشاركة بواسطة الغملاسي في 26 ديسمبر 2006 في 15:58

#2

السلام عليكم

السبب يعود إلى ان التقرير مرتبط بقاعدة البيانات بشكل مباشر, كإفتراض عند إنشاء التقرير

لكن ربما يكون هنالك مشكلة في ترتيب الاحداث بين النماذج , هذا الكود الذي سأعرضه عليك يعمل كما تريد أنت لكن بـ VB.NET

إليك ذلك.

Private Sub Form1_Load(ByVal sender As System.Object, _
	ByVal e As System.EventArgs) Handles MyBase.Load

		Dim strSql As String = "SELECT * FROM Customers" & _
		" WHERE CustomerID = 'ALFKI'"

		Dim cnn1 As New OleDbConnection(My.Settings.cnn)
		Dim cmd As New OleDbCommand(strSql, cnn1)
		Dim Adapter As New OleDbDataAdapter
		Dim Report1 As New Report1
		Me.Ds.EnforceConstraints = False

		With Adapter
			.SelectCommand = cmd
			.Fill(Me.Ds.Customers)
		End With


		With Report1
			.SetDataSource(Ds)
			CRV.ReportSource = Report1
		End With

	End Sub

راجع الاحداث في النموذج أو النماذج الثلاث

بالتوفيق إن شاء الله.

في المثال يتضح المقال

#3

جزاك الله خيراً اخوي على الرد ...

وصحيح لمن عملت التقرير ربطتو بالداتا بيس ولكن هل توجد طريقه اخرى وبدون استخدام ADO ؟

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

وعذراً خي ولكن لا املك اي خبره بالفيجول بيسك :(

تحياتي ..

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…