آموزش مبتدی استفاده از کریستال ریپورت در Visual Stadio 2010
سلام
مدتی دنبال آموزش استفاده از کریستال ریپورت در سی شارپ 2010 بودم که این صفحه رو پیدا کردم آموزش خوبی برای مبتدی هاست مثال ها رو از همونجا می تونید دانلود کنید در ضمن اگه خود مقاله رو بخونید چیزهای بیشتری رو آموزش داده
تمام کد ها و عکس ها از سایت CodeProject آورده شده است
3 ضمیمه
نقل قول: آموزش مبتدی استفاده از کریستال ریپورت در Visual Stadio 2010
ایجاد یک گزارش با استفاده از Crystal Report در Visual Stadio 2010
از مدتهای طولانی، ویژوال بیسیک و ویژوال استدیو کریستال ریپورت رو به عنوان بخشی از خود داشتند اما در ویژوال استدیو 2010، کریستال ریپورت از این مجموعه جدا شد. اما به صورت فایل نصبی جدا از وب سایت sap قابل دانلوده.
برای دریافت این فایلها در ایران (به علت تحریم امکان دانلود از سایت sap وجود ندارد) به این لینک مراجعه کنید و هر شش فایل را دانلود کنید پارت 1 و 2 را extract و نصب کنید.
در این آموزش ایجاد یک گزارش ساده را با هم می بینیم و به بررسی برخی از امکانات کریستال ریپورت می پردازیم
ابتدا یک پروژه (وب یا ویندوز) ایجاد می کنیم
ضمیمه 80072
تصویر زیر نمایی از جدول که اطلاعات در اون قرار می گیرد را نشان می دهد
ضمیمه 80073
و تصویر زیر هم همان جدول را با داده های درون آن نشان می دهد
ضمیمه 80074
فایل اسکریپت و نممونه کامل برنامه را از سایت codproject می تونید دانلود کنید
برای اینکه بتونید همانند مثالهایی که در آینده می بینید تمرین کنید بهتره که فایل دیتا بیس اون رو دانلود کنید و بر روی sqlserver اجراش کنید
4 ضمیمه
نقل قول: آموزش مبتدی استفاده از کریستال ریپورت در Visual Stadio 2010
ساخت یک گزارش ساده با کریستال ریپورت :
1- برای شروع کار می بایست ابتدا یک فایل XSD یا DataSet برای پروژمون ایجاد کنیم برای همین از منوی ProjectAdd new Item Dataset یک دیتا ست به پروشمون اضافه می کنیم :
ضمیمه 80075
2- گام بعدی ایجاد یک دیتا تیبله، برای این کار در محیط دیتا ست ایجاد شده کلیک راست می کنیم و از گزینه add، DataTable رو انتخاب می کنیم
ضمیمه 80076
3- مرحله بعد ایجاد Column برای data Table هست باید توجه کنیم که نام ستون هایی که می سازیم با نام فیلد هایی که قراره به گزارشمون پاس داده بشه یکی باشه برای این کار بر روی دیتاتیبل کلیک راست می کنیم و از گزینه Add ، Column را انتخاب می کنیم
ضمیمه 80077
4- بعد از ایجاد تمام ستون ها باید نوع Data Type اونها رو با نوع دیتاتایپ فیلد هایی که به گزارش پاس می دیم یکی کنیم به طور مثال اگر فیلدی که به دیتاست جهت نمایش در کریستال ریپورت ارسال میشه از نوع NVarChar باشه باید Data Type اون column رو هم برابر system.string قرار بدیم. اگر دیتاتایپ در زمان اجرا تطابق نداشته باشه پیغام خطا صادر میشه. برای اینکار بر روی هر column کلیک راست می کنیم و گزینه ProPerties رو انتخاب می کنیم و در پنجره نمایش داده شده مقدار Data Type اون فیلد رو تنظیم می کنیم
ضمیمه 80078
در اینجا کار ما با دیتا ست تموم شد فایل را save می کنیم و دیتا ست را می بندیم. مرحله بعدی ایجاد گزارش در کریستال ریپورته
3 ضمیمه
نقل قول: آموزش مبتدی استفاده از کریستال ریپورت در Visual Stadio 2010
5- از منوی Project<add new Item یک Crystal Reports به پروژه add می کنیم
گزینه using the Report wizard را انتخاب می کنیم و بر روی دکمه ok کلیک می کنیم
ضمیمه 80080
6- در پنجره بعدی از بخش Available Data Sources از قسمت Project Data بر روی ADO.NET Datasets کلیک می کنیم و از آنجا دیتا ست خودمون رو که قبلاً ایجاد کرده بودیم رو انتخاب می کنیم و با کلیک بر روی دکمه > اون رو به سمت راست منتقل می کنیم و بر روی دکمه Finish کلیک می کنیم
ضمیمه 80081
7- ریپورت به صورت شکل زیر بوجود میاد می تونید فیلد های دیگه ای هم که مورد نیازتون هست رو به گزارشتون اضافه کنید
ضمیمه 80082
مرحله بعد پر کردن دیتا ست و نمایش اون در فرمه
1 ضمیمه
نقل قول: آموزش مبتدی استفاده از کریستال ریپورت در Visual Stadio 2010
8- یه فرم جدید ایجاد کنید و بر روی اون یک شی CrystalReportViewr بندازید
9- بهتره که ریپورت های ساخته شدتون رو به فولدر debug انتقال بدید من در ادامه فرض می کنم که فایل گزارشم در این فولدر قرار داره برای انتقال فایل گزارش به فوکدر debug در solution Explorer بر روی آیکن show all Files کلیک کنید تا فولدر bin به نمایش در بیاد و بعد فایل گزارشتون رو به فولدر debug که زیر شاخه فولدر bin هست با drag and drop منتقل کنید
10- به متد Load فرم برید قبل از اون باید using های زیر رو انجام بدید :
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
11- کد های زیر رو در متد Load فرم بنویسید :
protected void Page_Load(object sender, EventArgs e)
{
ReportDocument rptDoc = new ReportDocument();
dsSample ds = new dsSample(); // .xsd file name
DataTable dt = new DataTable();
// Just set the name of data table
dt.TableName = "Crystal Report Example";
dt = getAllOrders(); //This function is located below this function
ds.Tables[0].Merge(dt);
// Your .rpt file path will be below
rptDoc.Load(Application.StartPath + "/SimpleReports.rpt");
//set dataset to the report viewer.
rptDoc.SetDataSource(ds);
CrystalReportViewer1.ReportSource = rptDoc;
}
12- متد getAllOrders() یک متد برای استخراج فیلد های مورد نظرمون از دیتابیس و ارسال اون در قالب یه دیتا تیبله در زیر این متد آورده شده :
public DataTable getAllOrders()
{
//Connection string replace 'databaseservername' with your db server name
string sqlCon = "User ID=sa;PWD=sa; server=databaseservername;
INITIAL CATALOG=SampleDB;PERSISTSECURITY INFO=FALSE;Connect Timeout=0";
SqlConnection Con = new SqlConnection(sqlCon);
SqlCommand cmd = new SqlCommand();
DataSet ds = null;
SqlDataAdapter adapter;
try
{
Con.Open();
//Stored procedure calling. It is already in sample db.
cmd.CommandText = "getAllOrders";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = Con;
ds = new DataSet();
adapter = new SqlDataAdapter(cmd);
adapter.Fill(ds, "Users");
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
cmd.Dispose();
if (Con.State != ConnectionState.Closed)
Con.Close();
}
return ds.Tables[0];
}hrow new Exception(ex.Message);
}
finally
{
cmd.Dispose();
if (Con.State != ConnectionState.Closed)
Con.Close();
}
return ds.Tables[0];
}
13- کارمون تموم شد فقط برنامه رو اجرا می کنیم خروجی همانند شکل زیر میشه :
ضمیمه 80083
نقل قول: آموزش مبتدی استفاده از کریستال ریپورت در Visual Stadio 2010
نکته : کد های زیر رو حتماً در فایل app.config (یا web.config) اضافه کنید
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
<requiredRuntime version="v4.0.20506"/>
</startup>
موفق باشید
نقل قول: آموزش مبتدی استفاده از کریستال ریپورت در Visual Stadio 2010
سلام ،
دوست عزیز ممنون از زحمتی که کشیدید واقعا دستتون درد نکنه ، ولی یه پیشنهاد داشتم اگه میشه نسخه پی دی اف این آموزش ها رو آماده کنین تا دوستان بتونن بهتر از مطالبتون استفاده کنن..
با تشکر./
نقل قول: آموزش مبتدی استفاده از کریستال ریپورت در Visual Stadio 2010
اینم آموزش بالا در قالب فایل PDF
دانــــــــلـــــــود
2 ضمیمه
نقل قول: آموزش مبتدی استفاده از کریستال ریپورت در Visual Stadio 2010
نحوه ارسال پارامتر به کریستال ریپورت
برای این کار در محیط طراحی کریستال و در قسمت Field Explorer بر روی parameter Fields کلیک راست می کنیم و گزینه new را انتخاب می کنیم :
ضمیمه 80147
در پنجره نمایان شده نام و نوع پارامتر خدمون رو مشخص می کنیم و ok می کنیم
ضمیمه 80148
و نهایتاً به شکل زیر پارامترها رو به کریستال جهت نمایش پاس می دیم. من در این تکه کد دو پارامتر به نام های azDate و taDate از نوع string تعریف کردم :
rptDoc.SetDataSource(ds);
rptDoc.SetParameterValue("azDate",azDate);
rptDoc.SetParameterValue("taDate", taDate);
نقل قول: آموزش مبتدی استفاده از کریستال ریپورت در Visual Stadio 2010
نقل قول:
8- یه فرم جدید ایجاد کنید و بر روی اون یک شی CrystalReportViewr بندازید
ممنون بابت آموزشتون
اما من یه مشکل دارم
اینکه هنگامی که پس از مراحل بالا فرم ایجاد می کنم و می خوام شی CrystalReportViewr رو بزارم روش همچین شی ای را در toolbox پیدا نمی کنم
آیا باید پس از نصب کریستال ،همچین شی ای را به ویژوال استودیو اضافه کرد
واگر باید اضافه کرد چگونه؟
با تشکر
نقل قول: آموزش مبتدی استفاده از کریستال ریپورت در Visual Stadio 2010
سلام
احتمالاً شما از نسخه 3.5 دات نت فریم ورک استفاده می کنی از منوی project گزینه properties رو انتخاب کن و Target Framework رو به 4.0 تنظیم کن و بعد کریستال ریپورت رو نصب کن
نقل قول: آموزش مبتدی استفاده از کریستال ریپورت در Visual Stadio 2010
نقل قول:
نوشته شده توسط
ozzy_mra
سلام
احتمالاً شما از نسخه 3.5 دات نت فریم ورک استفاده می کنی از منوی project گزینه properties رو انتخاب کن و Target Framework رو به 4.0 تنظیم کن و بعد کریستال ریپورت رو نصب کن
ممنون مشکل همین بود
نقل قول: آموزش مبتدی استفاده از کریستال ریپورت در Visual Stadio 2010
سلام دوست گرامی.
برای حل مشکلتون می تونید به آدرس زیر مراجعه کنید.
http://fanavaranemandegar.blogfa.com
موفق باشید.
نقل قول: آموزش مبتدی استفاده از کریستال ریپورت در Visual Stadio 2010
سلام
1. پس از اجرای برنامه ،وقتیکه صفحه ریپورت نمایش داده می شود ،در گوشه سمت راست بالا عبارت sap crystal report وجود دارد برای اینکه این عبارت نمایش داده نشود چه باید کرد ؟
البته می توان toolbar را غیر فعال کرد ولی در اینصورت گزینه های مفید toolbar را از دست می دهیم
با سپاس
نقل قول: آموزش مبتدی استفاده از کریستال ریپورت در Visual Stadio 2010
sسلام من از این روش استفاده کردم اما از این تیکه از کد اشکال میگیره:
}hrow new Exception(ex.Message);
}
خطاشم اینه:The ConnectionString property has not been initialized.
وقتیم اونو غیر فعال میکنم از این خط خطا میگیره:
return ds.Tables[0];
خطاشم اینه:Object reference not set to an instance of an object.
لطفا اگه میتونید کمکم کنید خیلی بهش احتیاج دارم.
نقل قول: آموزش مبتدی استفاده از کریستال ریپورت در Visual Stadio 2010
نقل قول:
نوشته شده توسط
silvery
sسلام من از این روش استفاده کردم اما از این تیکه از کد اشکال میگیره:
}hrow new Exception(ex.Message);
}
خطاشم اینه:The ConnectionString property has not been initialized.
وقتیم اونو غیر فعال میکنم از این خط خطا میگیره:
return ds.Tables[0];
خطاشم اینه:Object reference not set to an instance of an object.
لطفا اگه میتونید کمکم کنید خیلی بهش احتیاج دارم.
سلام
خب خطاش معلومه دیگه. connectionString رو چطور تعریف کردید؟ مشکل از اونجاست
نقل قول: آموزش مبتدی استفاده از کریستال ریپورت در Visual Stadio 2010
سلام به همه
خواهشا اگر کسی می تونه به این تایپیک ساده زیر پاسخ بده
گزارش گیری از کنترل های روی فرم با کریستال ریپورت
نقل قول: آموزش مبتدی استفاده از کریستال ریپورت در Visual Stadio 2010
سلام . اگر از ویژوال استودیو 2010 استفاده میکنی ، برای اینکه بتونی CrystalReportViewr رو ، تو منوی Reporting ببینی ، باید از منوی Project فایل ریپورتی رو که ساختی انتخاب کنی . تو پنجره ای که باز میشه ، گزینه ای هست به نام Target framework ، لیست مربوط به این آیتم رو باز کن و مقدار NET Framework4. رو انتخاب کن ، درست میشه .
امیدوارم مشکلت حل بشه . موفق باشی
نقل قول: آموزش مبتدی استفاده از کریستال ریپورت در Visual Stadio 2010
سلام دوستان عزیز کریستال ریپورت درکامپیوتر مقصد نصب نمی شود چرا؟