View Full Version : آموزش: آموزش مختصر و مفیدی از نحوه کار با crystal report
aftabeshargh
جمعه 12 خرداد 1391, 23:49 عصر
سلام
یه آموزش مختصر و قابل فهم همراه با تصاویر به صورت pdf ساختم و برای دوستانی که تازه میخوان با کریستال ریپورت آشنا بشن قرار دادم " امیدوارم برای دوستان مفید واقع بشه .
emilvr
دوشنبه 15 خرداد 1391, 15:58 عصر
ممنون بابت راهنماییت، مشکلم حل شد اما یه مشکل دیگه برام پیش اومد
با کدی که توی آموزش بود تونستم پارمتر ارسال کنم و گزارش بدون مشکل بالا اومد، اما حالا وقتی گزارش پرینت می گیرم و بر می گردم تا دوباره از یه سند دیگه گزارش تهیه بکنم با پیغام خطای زیر مواجه میشم :
Index 0 is out of range. Parameter name: indexاینم دستوراتی هست که طبق آموزش ( فقط آموزش با وی بی بود من با سی شارپ نوشتم ) استفاده کردم. پارامتر کد بانک اطلاعات با فیلد کد در ردیف جاری دیتاگرید مقایس میشه و در صورت یکی بودن اطلاعات به فرم گزارش ارسال میشه. اینم دستورات :
ds.Clear();
con.Open();
cmd.Connection = con;
cmd.CommandType = CommandType.Text;
cmd.CommandText = " SELECT * FROM mainSanad WHERE [code]='" + Int64.Parse(Convert.ToString(dataGridView1.Current Row.Cells["code"].Value)) + "'";
da.SelectCommand = cmd;
da.Fill(ds, "mainSanad");
cr.SetDataSource(ds);
fr.crystalReportViewer1.ReportSource = cr;
con.Close();
fr.ShowDialog();
ممنون میشم راهنمایی کنید
پیغام خطا مربوط میشه به این خط :
fr.crystalReportViewer1.ReportSource = cr;
Mahmoud Zaad
دوشنبه 15 خرداد 1391, 18:35 عصر
سلام
یه آموزش مختصر و قابل فهم همراه با تصاویر به صورت pdf ساختم و برای دوستانی که تازه میخوان با کریستال ریپورت آشنا بشن قرار دادم " امیدوارم برای دوستان مفید واقع بشه .
سلام
ضمن تشکر از حسن نیت شما برای این آموزش، لازمه بگم یک سری از کدهایی که نوشتید اضافه هستند و با کدهای کمتری به راحتی می تونید همین جواب رو بگیرید، مثلا:(در زبان سی شارپ)
SqlConnection con = new SqlConnection("Data Source=PC1;Initial Catalog=dbjahedi;Integrated Security=True");
SqlDataAdapter da = new SqlDataAdapter("select*from tbl", con);
DataSet ds = new DataSet();
DataTable tbl = new DataTable();
da.Fill(ds, "tbl");
CrystalReport1 rp = new CrystalReport1();
rp.SetDataSource(ds);
crystalReportViewer1.ReportSource = rp;
یا حتی کمتر:
SqlConnection con = new SqlConnection("Data Source=PC1;Initial Catalog=dbjahedi;Integrated Security=True");
SqlDataAdapter da = new SqlDataAdapter("select*from tbl", con);
DataTable tbl = new DataTable();
da.Fill(tbl);
CrystalReport1 rp = new CrystalReport1();
rp.SetDataSource(tbl);
crystalReportViewer1.ReportSource = rp;
این پروژه (http://barnamenevis.org/showthread.php?323878-ارسال-چند-پارامتر-به-کریستال-رپورت-ویژوال-استودیو-2010&highlight=%D9%BE%D8%A7%D8%B1%D8%A7%D9%85%D8%AA%D8% B1) رو هم ببینید بد نیست.
aftabeshargh
جمعه 26 خرداد 1391, 12:17 عصر
سلام
لازمه بگم یک سری از کدهایی که نوشتید اضافه هستند و با کدهای کمتری به راحتی می تونید همین جواب رو بگیرید، مثلا:(در زبان سی شارپ)
ممنون
اما من هیچ تفاوتی در کدهایی که شما نوشتید با کدهای خودم ندیدم " فقط فرقش سی شارپ و vb.net بودنشون هست !!!!!!!!!!!!!!
Mahmoud Zaad
جمعه 26 خرداد 1391, 18:03 عصر
سلام
ممنون
اما من هیچ تفاوتی در کدهایی که شما نوشتید با کدهای خودم ندیدم " فقط فرقش سی شارپ و vb.net بودنشون هست !!!!!!!!!!!!!!
خوب دقت نکردید:
1- شما کانکشن رو باز و بسته کردید.
2- شما از SqlCommand و خاصیت هاش استفاده کردید.
که با وجود استفاده از SqlDataAdapter نیازی به اینها نیست.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.