PDA

View Full Version : چاپ اطلاعات dataGridView در یک فرم و در مکان های مشخص



mohammad2407
پنج شنبه 03 اسفند 1391, 11:27 صبح
سلام دوستان عزیز من با خوده Report نرم افزار VS2010 یک فرم طراحی کردم و به reportViewer معرفی کردم حالا میخوام وقتی یکی از رکورد های dataGridView انتخاب کردم و روی کلید کلیک کردم اطلاعات بره در جای مشخص شده قرار بگیره و چاپ بشه

Mahmoud.Afrad
جمعه 04 اسفند 1391, 04:46 صبح
یک دیتاست به پروژه اضافه کنید.
داخل این دیتاست ، راست کلیک کرده یک دیتاتیبل اضافه کنید. به تعداد ستونهای گریدویو column به این دیتاتیبل اضافه کنید. تغییرات را ذخیره کنید.

یک Report به پروژه اضافه کنید(فایل rdlc). داخل ریپورت یک تیبل اضافه کنید. دیتاسورس این تیبل را همان دیتاست مرحله قبل انتخاب و دیتاتیبل را مشخص کنید. هر فیلد تیبل را به ستون مربوطه از دیتاتیبل بایند کنید برای این کار باید روی هر فیلد تیبل کلیک کرده و یک فیلد از دیتاسورس را انتخاب کنید. تغییرات را ذخیره کنید.

در فرم گزارش ، از طریق reportviewer task ریپورت مرحله قبل رو انتخاب کنید(روی فلش کوچک کنار کنترل reportviewer باید کلیک کنید تا reportviewer task نمایش داده بشه). با این کار دیتاست و بایندینگ سورس به فرم اضافه میشن. برای نمایش گزارش باید دیتاسورس را مشخص کرد. پس در سازنده فرم گزارش ، یک پارامتر از نوع همین دیتاست تعریف کرده و به بایندینگ سورس میدهیم.

public FrmReport(DataSet1 ds)
{
InitializeComponent();

// here set datasource
this.DataTable1BindingSource.DataSource = ds;
}


در جایی که میخواهیم گزارش را نمایش دهیم باید یک دیتاست از همان نوع ایجاد و پر کنیم و بعد فرم گزارش را نمایش دهیم.

using (DataSet1 ds = new DataSet1())
{
ds.DataTable1.Rows.Add();
foreach (DataGridViewColumn col in this.dataGridView1.Columns)
{
ds.DataTable1.Rows[0][col.Index] = this.dataGridView1.CurrentRow.Cells[col.Index].Value;
}
using (FrmReport frmreport = new FrmReport(ds))
{
frmreport.ShowDialog();
}
}


همه کارهای گفته شده در پروژه زیر انجام داده شده:
http://uploadtak.com/images/x2856_Show_MSReport_by_cho.rar

mohammad2407
جمعه 04 اسفند 1391, 14:27 عصر
اقا محمود خیلی لطف کردی واقعا ممنون ولی از کد زیر ایراد میگیره وقتی روی کلید کلیک میکنم


using (_database_testDataSet ds = new _database_testDataSet())
{
ds.tahvil.Rows.Add();
foreach (DataGridViewColumn col in this.dataGridView1.Columns)
{
ds.tahvil.Rows[0][col.Index] = this.dataGridView1.CurrentRow.Cells[col.Index].Value;
}
using (Form14 frm14 = new Form14(ds))
{
frm14.ShowDialog();
}
}



از قسمت

ds.tahvil.Rows.Add();

Mahmoud.Afrad
جمعه 04 اسفند 1391, 14:36 عصر
توجه کنید لطفا. اینجور چیزا نیاز به پرسش نداره. اسم دیتاتیبلی که در دیتاست ساختی چیه اونو به جای tahvil قرار بده یا اینکه اسم دیتاتیبل درون دیتاست رو به tahvil تغییر بده.

mohammad2407
جمعه 04 اسفند 1391, 17:29 عصر
100 درصد متوجه شدم اقا محمود چطوری میتونم یک فرم طراحی کنم و مقدار های این فرم رو [DataColumn1] ها قرار بدم یک فرم زیبا

مثل فرم هایی هست که در ورد طراحی میکنیم الان نگاه کردم ابزار برای طراحی در محیط Reportخیلی کم هست من میخوام دایره و جدول و .. داشته باشم

باز هم ممنون اقا محمود لطف کردی