PDA

View Full Version : مبتدی: استفاده از CrystalReport در جداول مرتبط با هم



ozzy_mra
سه شنبه 10 اسفند 1389, 10:19 صبح
سلام
من می خوام سه تا جدول رو که با کلید خارجی با هم مرتبطند رو با استفاده از کریستال ریپورت نمایش بدم
ساختار جداول یه صورت زیره :


66969

و خروجی دستور سلکتی که می خوام بزنم هم به صورت زیره :


66970


بعد در ویژوال استدیو یه دیتا ست از طریق منوی data ساختم و تنظیمات Relation رو هم به صورت زیر انجام دادم :
66971

بعد یه کریستال ریپورت به پروژم اضافه کردم و به ترتیب کارهای زیر رو انجام دادم
66972



66973


و بعد فیلد هایی که لازم داشتم رو ادد کردم و در نهایت کریستا ریپورت با فیلد های مورد نظر بوجود آمد و فایل ایجاد شده رو به پوشه Debug انتقال دام
بعد در یه دکمه کد زیر رو نوشتم :
SqlConnection con = new SqlConnection();
SqlCommand cmd = new SqlCommand();
SqlDataAdapter da = new SqlDataAdapter();
DataTable dt = new DataTable();
con.ConnectionString = "server=192.168.1.39;initial catalog=shahed_account;uid=sa;pwd=1";
con.Open();
cmd.Connection = con;
cmd.CommandText = "SELECT uTblKol.KolCode, uTblKol.KolTitle, uTblVaziatsarfasl.VaziatTitle, uTblMahiat.MahiatTitle FROM uTblKol INNER JOIN uTblMahiat ON uTblKol.MahiatID = uTblMahiat.MahiatSN INNER JOIN uTblVaziatsarfasl ON uTblKol.VaziatID = uTblVaziatsarfasl.VaziatSN";
da.SelectCommand = cmd;
da.Fill(dt);
con.Close();
//*************************
ReportDocument rd = new ReportDocument();
rd.FileName = "CrystalReport1.rpt";
rd.SetDataSource(dt);
crystalReportViewer1.ReportSource = rd;
crystalReportViewer1.Show();
ولی خروجی برنامم فقط اطلاعات یه جدول که همون جدول utblKole باشه رو نشون میده میشه بگید مشکل کارم کجاست؟

مرتضی تقدمی
سه شنبه 10 اسفند 1389, 15:12 عصر
من هم همين مشكل رو داشتم. توي بانك sql يك view با همين جدولايي كه استفاده مي كني بساز. بعد از اون view توي گزارشت استفاده كن. خيلي راحت تره.

موفق باشيد

ozzy_mra
چهارشنبه 11 اسفند 1389, 09:23 صبح
من هم همين مشكل رو داشتم. توي بانك sql يك view با همين جدولايي كه استفاده مي كني بساز. بعد از اون view توي گزارشت استفاده كن. خيلي راحت تره.

موفق باشيد

سلام
یعنی هیچ راه دیگه ای نداره ، این کار باعث افزایش حجم دیتابیس نمی شه چون سیستم من گزارشات زیادی داره، واقعاً کریستال ریپورت نمی تونه جداول مرتبط با هم رو نشون بده؟؟