PDA

View Full Version : سوال: نمایش ندادن اطلاعات چند جدول درون کریستال ریپورت



veniz2008
جمعه 16 تیر 1391, 11:26 صبح
سلام دوستان،میخوام که از 3 تا جدول دیتابیسم که با هم ارتباطشون رو برقرار کردم با دستور inner join گزارش بگیرم.من کد مورد نظر رو داخل sql تست کردم و جواب میده،مشکل من با نمایش داده ها درون کریستال هستش(البته با یک جدول قبلا انجام دادم ولی گزارش ترکیبی از چند جدول به مشکل برخوردم)، من تمام کارها رو انجام دادم و جدول ها و فیلدهای مورد نظرم رو به کریستال اضافه کردم،حالا تو محیط ویژوال یک crystalreportviewer گذاشتم و میخوام براساس شناسه کاربری رکوردها رو درون کریستال نمایش بدم ولی هیچ رکوردی رو نمایش نمیده(برنامه هیچ خطایی نداره ولی صفحه گزارش خالی هست)،من از دیتاتیبل استفاده کردم و نتیجه کوئری رو به کریستال ارتباط میدم، همچنین برای اینکه مطمئن بشم دیتاتیبل بصورت صحیح پر شده یک گریدویو گذاشتم و نتیجه دیتاتیبل رو بهش وصل کردم، گرید بدون هیچ مشکلی داده ها رو نمایش میده ولی گزارشم با کریستال خالی از رکورد هست. من کدهایی رو که استفاده کردم میزارم دوستان محبت کنند بگن مشکل کار از کجاست؟(لطفا با زبان #C کدهای لازم رو بگید)

SqlConnection con = new SqlConnection("Data Source=(local);Initial Catalog=KHODRO;Integrated Security=True");
SqlDataAdapter da = new SqlDataAdapter("select Users.IDuser,Users.FirstName,Users.LastName,Car.ID Car,Feature.Color,Feature.Model from Users inner join Car on Users.IDUser = Car.IDUser inner join Feature on Car.IDCar = Feature.IDCar where Users.IDUser = '" + textBox1.Text.Trim() +"'", con);
con.Open();
DataTable dt = new DataTable();
da.Fill(dt);
dataGridView1.DataSource = dt;
ReportDocument rd = new ReportDocument();
rd.Load("rptjoin.rpt");
rd.SetDataSource(dt);
crystalReportViewer1.ReportSource = rd;
crystalReportViewer1.Show();
con.Close();
اگر بین بعضی از فیلدها فاصله افتاده بخاطر ادیتور سایت هست وگرنه توی ویژوال فیلدها رو درست تایپ کردم.
دوستان یک عکس از برنامه هم میزارم تا کاملا منظورم رو رسونده باشم:
89279

alirezaahmadreza
پنج شنبه 05 مرداد 1391, 16:29 عصر
سلام دوست عزیز
علت این است که وقتی جداول خودتون رو وارد کریستال ریپورت کردید ارتباط بین جداول رو یا به قولی ریلیشن اونهارو برقرار نکردید و این کار رو تنها با inner join درون دستورات SQL انجام داده اید این مورد رو تست بکنید انشاالله که جواب میگیرید البته بگم اینو هم برقراری ارتباط جداول در کریستال بیشتر زمانی خودشو نشون میده که شما از گروه بندی استفاده بکنید ولی خوب با این حال ارتباط بین جداول رو در خود محیط کریستال هم برقرار بکنید انشاالله که جواب میگیرید