نوشته شده توسط
arshad89
منتظر راهنمایی بیشتر شما هستم. ممنون
فرض رو بر این می گیریم که شما دو تا جدول توی بانک دارین یکی جدول کشور ها و دیگری جدول استانها .................. !!!! فیلد کد کشور، کلیداصلی جدول کشورها و در جدول استانها کلید خارجی است
Untitled.jpg
با این اوصاف بدون اینکه اقدام به ساخت فایل گزارش کنین در پروژه تون با دیتابیس ارتباط برقرار می کنین و مقادیر این دوجدول رو واکشی می کنین در محله بعد، همچنانکه قبلا نیز گفتیم
به تعداد جداول دیتاتیبل ایجاد کرده وبر اساس فیلد مشترک میان دوجدول یک ارتباط میانشان برقرار می کنین :
private void CreateDataSet2() {
FDataSet = new DataSet();
_connect.connString();
SqlDataAdapter adapter = new SqlDataAdapter(@"SELECT * FROM Country;
SELECT * FROM State ", _connect.conConnect);
adapter.TableMappings.Add("Table", "Country");
adapter.TableMappings.Add("Table1", "State");
adapter.Fill(FDataSet);
FDataSet.Relations.Add("Country_State", FDataSet.Tables["Country"].Columns["CountryCode"],
FDataSet.Tables["State"].Columns["CountryCode"]);
}
_._. * توجه داشته باشید که تا این مرحله ما هیچ فایل گزارشی نساختیم
تا اینجا ما اطلاعات رو فراخوانی کردیم و ارتباطشون دادیم وحالا وقتش رسیده تا دیتاست موجود رو به گزارش انتقال بدیم
بهتر است یه باتن مخصوص برای ورود به قسمت دیزاین قرار بدین و طراحی های لازم رو انجام بدین و فایل گزارش رو در پوشه اصلی برنامه ذخیره کنین :
private void button1_Click(object sender, EventArgs e) {
Report report = new Report();
report.RegisterData(FDataSet);
report.GetDataSource("Country").Enabled = true;
report.GetDataSource("State").Enabled = true;
report.Design();
report.Dispose();
}
این دکمه هیچ گزارشی براتون نمایش نمی ده و تنها شما رو به بخش طراحی گزارش هدایت می کنه
بخش طراحی :
در بخش طراحی گزارش ما درقسمت دیکشنری می تونیم دیتاتیبل هایی رو که فرستادیم رو مشاهده کنیم اما ارتباط میان آنها در حالت عادی نمایش داده نمی شه
و برای نمایان شدن اونها بایستی از منوی بالایی محیط گزارش و از گزینه " داده " ، روی عبارت "انتخاب داده های گزارش " کلیک کنین تا ارتباط میان جداول هم لحاظ گردند
Untitled2.png
پس از این کار شما می توانید فیلدهای لازم برای گزارشتون رو از سمت راست پنجره کشده و روی گزارش رها کنین و بر اساس صلاحدید بچینن
ودر خاتمه گزارش ساخته شده رو در پوشه دیباگ پروژه ذخیره کنین و دفعات بعد که خواستین برای طراحی مجدده وارد همین گزارش شوید می تونین از این دکمه استفاده کنین
و یا اینکه بعد از اتمام کار دکمه طراحی رو حذف کنین
بخش نمایش گزارش :
این بخش نیز دستوراتش همانند بخش طراحی است با این تفاوت که به جای report.Design از گزینه report.Show استفاده می کنین
وهمچنین می توانید تنها یک دکمه قرار بدین و این دو قسمت رو باهمدیگر تلفیق کنین :
private void button2_Click(object sender, EventArgs e) {
Report report = new Report();
report.Load(@"" + Application.StartupPath + "/report.frx");
report.RegisterData(FDataSet);
report.Show();
report.Dispose();
}