PDA

View Full Version : ارسال اطلاعات dtagridview نمایش داده شده به crystal report



behnam.abedini
چهارشنبه 20 شهریور 1392, 10:11 صبح
سلام دوستان
من یه datagridview دارم که بعضی ستونارو از db میخونه بعضیاشم خودم اضافه مینکم.حالا میخوام ک همه چیزایی ک تو dgv هست رو به crystal بفرستم.میشه اینکارو کرد؟یا باید تبدیل بشه به یه dataset؟
ممنون میشم کمکم کنین

hadi46
چهارشنبه 20 شهریور 1392, 10:26 صبح
با سلام می توانید همان datagrid.datasourc رو به کریستال بفرستید ولی چون سورس اولیه رو میفرسته تغییرات بعدیت رو نمیفرسته بهتره ابتدا دیتا هات را داخل یک دیتا تیبل بریزی تغییرات بدی و سپس به کریستال و گرید ویو بدی

صباح فتحی
چهارشنبه 20 شهریور 1392, 12:03 عصر
az binding source estfade kon bAd cast kon be datatable befrst vAse CR

behnam.abedini
چهارشنبه 20 شهریور 1392, 12:43 عصر
az binding source estfade kon bAd cast kon be datatable befrst vAse CR

آقا لطف کردی.اگه میشه یه مثال کوچیک بزن متوجه شم.به cr میشه datatable فرستاد؟

behnam.abedini
چهارشنبه 20 شهریور 1392, 14:53 عصر
با سلام می توانید همان datagrid.datasourc رو به کریستال بفرستید ولی چون سورس اولیه رو میفرسته تغییرات بعدیت رو نمیفرسته بهتره ابتدا دیتا هات را داخل یک دیتا تیبل بریزی تغییرات بدی و سپس به کریستال و گرید ویو بدی

این کار فک کنم همون دیتاسورسی که به دیتابیس وصلرو برمیگردونه و ستونهایی ک خودم بعدا اضافه کردمو برنمیگردونه

mori5858
چهارشنبه 20 شهریور 1392, 15:10 عصر
اول گريدويو رو ميفرستي به ديتاتيبل بعد ديتاتيبل رو به عناون سورس كريستال ريپورت تعيين ميكني


DataTable tb1 = new DataTable();
DataColumn dc0 = new DataColumn("Name", typeof(string));
DataColumn dc1 = new DataColumn("Famil", typeof(string));
tb1.Columns.Add(dc0);
tb1.Columns.Add(dc1);

for (int i = 0; i < dataGridView1.Rows.Count; i++)
{

DataRow dr = tb1.NewRow();
dr[0] = dataGridView1.Rows[i].Cells[0].Value;
dr[1] = dataGridView1.Rows[i].Cells[1].Value;
tb1.Rows.Add(dr);
}
CrystalReport1 cr = new CrystalReport1();
cr.SetDataSource(tb1);
crystalReportViewer1.ReportSource = cr;

behnam.abedini
پنج شنبه 21 شهریور 1392, 10:38 صبح
اول گريدويو رو ميفرستي به ديتاتيبل بعد ديتاتيبل رو به عناون سورس كريستال ريپورت تعيين ميكني


DataTable tb1 = new DataTable();
DataColumn dc0 = new DataColumn("Name", typeof(string));
DataColumn dc1 = new DataColumn("Famil", typeof(string));
tb1.Columns.Add(dc0);
tb1.Columns.Add(dc1);

for (int i = 0; i < dataGridView1.Rows.Count; i++)
{

DataRow dr = tb1.NewRow();
dr[0] = dataGridView1.Rows[i].Cells[0].Value;
dr[1] = dataGridView1.Rows[i].Cells[1].Value;
tb1.Rows.Add(dr);
}
CrystalReport1 cr = new CrystalReport1();
cr.SetDataSource(tb1);
crystalReportViewer1.ReportSource = cr;



datatable رو که واسه کریستال میفرستم error میده ک table نداره :(

behnam.abedini
پنج شنبه 21 شهریور 1392, 11:24 صبح
ببخشید من کلا با این کریستال از اولش مشکل داشتم.نمیدونم چیکارش کنم.
همه جام هر چی توضیح دادن از طریق wizard خود ویژوال بود
یه پروژه میإارم کسی میتونه این datatable رو وصل کنه به کریستالو داخل گزارش فیلدارو جابجا کنه؟
ممنون میشم کمکم کنین

hadi46
پنج شنبه 21 شهریور 1392, 11:54 صبح
با سلام مشابه کد های زیر اجرا کنید

DataTable dt ="پر نمودن جدول"
Grv_Show.DataSource = dt;
CrystalReport1 rp = new CrystalReport1();
rp.SetDataSource(dt);
RepotSet ds = new RepotSet();//دیتا ستی هم نام با فیلدها که باید در فرم کریستال روی فرم اضافه شود
crystalReportViewer1.ReportSource = rp;

roolinjax
پنج شنبه 21 شهریور 1392, 12:21 عصر
سلام
یه کلاسی من دارم که کارش پرینت گرفتن دیتاگریده (یعنی خود دیتاگرید رو بعنوان آرگومان ورودی به یه متدش ارسال میکنی و دقیقا همون رو چاپ میکنه، براشم فرقی نداره این فیلد ها و رکورد ها اطلاعات بانکه یا دستی توی گرید وارد شده)
فکر کنم خیلی ها توی اینترنت اینو دیده باشن
البته این کلاس با کریستال کار نمیکنه ها
اگر دوست داشتین بگین تا براتون بذارم

khokhan
پنج شنبه 21 شهریور 1392, 12:43 عصر
ببخشید من کلا با این کریستال از اولش مشکل داشتم.نمیدونم چیکارش کنم.
همه جام هر چی توضیح دادن از طریق wizard خود ویژوال بود
یه پروژه میإارم کسی میتونه این datatable رو وصل کنه به کریستالو داخل گزارش فیلدارو جابجا کنه؟
ممنون میشم کمکم کنین
.................................................. ..............:لبخند:


Form2 f = new Form2();
DataTable dt = new DataTable();
dt.Columns.Add("name", typeof(string));
dt.Columns.Add("family", typeof(string));
dt.Columns.Add("frout", typeof(string));
dt.Columns.Add("animul", typeof(string));
foreach (DataGridViewRow dgvR in dataGridView1.Rows)
{
if (Convert.ToBoolean(dgvR.Cells["mahvash"].Value) == true)
{
dt.Rows.Add(dgvR.Cells[1].Value, dgvR.Cells[2].Value, dgvR.Cells[3].Value, dgvR.Cells[4].Value);
}
}

ds.Tables.Add(dt);
CrystalReport1 CP1 = new CrystalReport1();
CP1.SetDataSource(dt);
f.crystalReportViewer1.ReportSource = CP1;
f.WindowState = FormWindowState.Maximized;
f.ShowDialog();

.................................................. ...................:لبخند:

صباح فتحی
پنج شنبه 21 شهریور 1392, 14:15 عصر
دیتاتیبل رو بریز توی دیتاست بعد دیتاست رو بفرست واسه کریستال

behnam.abedini
شنبه 23 شهریور 1392, 09:14 صبح
من دیتاستی رو که ست میکنم واسه کریستال، نمایش داده نمیشه.
ینی نمیدونم دقیقا باید چیکار کنم
یه dataset به پروژه اضافه کردم با همون فیلدای datatable ای که پر شده بود با محتویات datagridview ، واسش table ادد کردم.این dataset رو تو کریستال expert کردم.
تو فرمم یه شی از dataset ای ک تو پروژه بود درس کردمو با با datatable ای که با محتویات datagridviewپر شده بود پر کردم.
datasource کریستالم همین شی گذاشتم.
ولی کریستال نشون نمیده اطلاعاتو
نمیدونم دیگه چیکارش کنم :)
کجای کارم اشکال داره؟کمکم کنید لطفا

behnam.abedini
شنبه 23 شهریور 1392, 09:49 صبح
حل شد مشکلم.ممنون از همه دوستان
مشکل اینجا بود که اسم table تو datatable و dataset باید یکی میبودن
بازم ممنون ;)