ارسال کوئری ها به کریستال ریپورت با entity framework
سلام
دوستان من گزارش خودمو توی محیط کریستال ریپورت طراحی کردم حالا میخواام یک کوئری را به کریسیتال ریپورت ارسال کنم با ADO براحتی اینکار را رانجام میدادم ولی با EF مشکل دارم.
https://barnamenevis.org/showthread.p...8%B2%D8%B4+ado
این تاپیک هم مطالعه کردم ولی مشکلم حل نشد
چطوری باید یک کوئری را با EF به کریستال ریپورت بفرستم؟
نقل قول: ارسال کوئری ها به کریستال ریپورت با entity framework
دوست عزیز کریستال ریپورت یه منبع داده میخواد حالا میخوای یه دیتاتیبل باشه یا یک کوئری باشه مثلا شما چطور اطلاعاتت رو گرید لود میکنی این هم همونه فقط یه چند تا مرحله ساده داره که سرچ کنی فراوانه ضمنا قرار شد دیتابیس رو بذاری خوخان یه نمونه برات بذاره!!!!!
نقل قول: ارسال کوئری ها به کریستال ریپورت با entity framework
سلام
کدهایی که نوشتی قرار بده دوستان ببینن و در مورد نحوه انجام کارت هم توضیح بده
نقل قول: ارسال کوئری ها به کریستال ریپورت با entity framework
من یهنمونه ساده میذارم شما اول یه سند کریستا اضافه کن و جدولت و فیلدهات رو انتخاب کن بعد هم یه فرم جدید و یه کریستا ریپورت ویور بهش اضافه کن و تو روال لودش یه کدی مثل این بنویس
using (fuleEntities1 fule = new fuleEntities1())
{
try
{
var data = fule.Table1.ToList();
ReportDocument rd = new ReportDocument();
rd.Load("CrystalReport1.rpt");
rd.SetDataSource(data);
crystalReportViewer1.ReportSource = rd;
crystalReportViewer1.Show();
}
catch (Exception exception)
{
MessageBox.Show(exception.Message) ;
}
}
برای گزارش های سفارشی کوئری دلخواهت رو بنویس
1 ضمیمه
نقل قول: ارسال کوئری ها به کریستال ریپورت با entity framework
نقل قول:
نوشته شده توسط
esafb52
من یهنمونه ساده میذارم شما اول یه سند کریستا اضافه کن و جدولت و فیلدهات رو انتخاب کن بعد هم یه فرم جدید و یه کریستا ریپورت ویور بهش اضافه کن و تو روال لودش یه کدی مثل این بنویس
using (fuleEntities1 fule = new fuleEntities1())
{
try
{
var data = fule.Table1.ToList();
ReportDocument rd = new ReportDocument();
rd.Load("CrystalReport1.rpt");
rd.SetDataSource(data);
crystalReportViewer1.ReportSource = rd;
crystalReportViewer1.Show();
}
catch (Exception exception)
{
MessageBox.Show(exception.Message) ;
}
}
برای گزارش های سفارشی کوئری دلخواهت رو بنویس
تشکر از پاسخ شما
DB_Entities1 fule = new DB_Entities1();
try
{
var data = fule.tbl_kharid.ToList();
ReportDocument rd = new ReportDocument();
rd.Load("CrystalReport2.rpt");
rd.SetDataSource(data);
crystalReportViewer1.ReportSource = rd;
crystalReportViewer1.Show();
}
catch (Exception exception)
{
MessageBox.Show(exception.Message);
}
یه فرم جدید ساختم و در فرم اولی یه دگمه گذاشتم و فرم گزارشمو فراخوانی کردم کد بالا را در لود فرم گزارش نوشتم در فرم گزارش یک crystalReportViewer1 گذاشتم ولی ارور زیر را میده
نقل قول: ارسال کوئری ها به کریستال ریپورت با entity framework
نقل قول:
نوشته شده توسط
csharpprogramer88
تشکر از پاسخ شما
DB_Entities1 fule = new DB_Entities1();
try
{
var data = fule.tbl_kharid.ToList();
ReportDocument rd = new ReportDocument();
rd.Load("CrystalReport2.rpt");
rd.SetDataSource(data);
crystalReportViewer1.ReportSource = rd;
crystalReportViewer1.Show();
}
catch (Exception exception)
{
MessageBox.Show(exception.Message);
}
یه فرم جدید ساختم و در فرم اولی یه دگمه گذاشتم و فرم گزارشمو فراخوانی کردم کد بالا را در لود فرم گزارش نوشتم در فرم گزارش یک crystalReportViewer1 گذاشتم ولی ارور زیر را میده
بهترین کا اینه که یه لیست درست کنین و بعد از پر کردن لیست از محتویات جدول مورد نظر اونو به گزارش پاس بدین یه چیزی شبیه این :
private void button4_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
CrystalReport1 _Rpt = new CrystalReport1();
List<k_info> list_Test = new List<k_info>();
using (kalaEntities _tempdbEntities = new kalaEntities())
{
list_Test = _tempdbEntities.k_info.ToList();
}
_Rpt.SetDataSource(list_Test);
f2.crystalReportViewer1.ReportSource = _Rpt;
f2.crystalReportViewer1.RefreshReport();
}
نقل قول: ارسال کوئری ها به کریستال ریپورت با entity framework
دوست عزیز میشه با EF مثال بزنی؟ چون من ef تازه کارمممممممم
1 ضمیمه
نقل قول: ارسال کوئری ها به کریستال ریپورت با entity framework
نقل قول:
نوشته شده توسط
csharpprogramer88
دوست عزیز میشه با EF مثال بزنی؟ چون من ef تازه کارمممممممم
این نمونه رو با گزارش ساز rdlc کار کردم و با همون شیوه ارسال لیست صورت می گیرد
مطمئن باش کریستال هم به همین ترتیبه با یه کم تغییرات می شه با کریستال هم انجام داد
نقل قول: ارسال کوئری ها به کریستال ریپورت با entity framework
نقل قول:
نوشته شده توسط
khokhan
این نمونه رو با گزارش ساز rdlc کار کردم و با همون شیوه ارسال لیست صورت می گیرد
مطمئن باش کریستال هم به همین ترتیبه با یه کم تغییرات می شه با کریستال هم انجام داد
list_Test = _tempdbEntities.k_info.ToList();
اینجا شما داری اطلاعات جدول را در یه لیست میریزید؟
اصلا چرا لیست؟
نقل قول: ارسال کوئری ها به کریستال ریپورت با entity framework
بزارین یه توصیه براتون بکنم
اگه با ef کار می کنین و اگه ورژن vs تون 2010 هستش و باز اگه کریستال ریپورتتون ورژن آپدیت شده نباشه بنابراین دچار مشکل خواهید شد چون کریستال نسخه پایین با entity fremwork 4 کار نمی کنه
یا اینکه باید entity fremwork پروژه رو روی ورژن3 یا 3.5 ست کنین که در این صورت هم با ef دچار مشکل می شوید
پس بهتره از گزارش ساز Stimulsoft Reports استفاده کنین
نقل قول: ارسال کوئری ها به کریستال ریپورت با entity framework
یعنی ارور پست 5 بخاطر اختلاف ورژن هاست؟
نقل قول: ارسال کوئری ها به کریستال ریپورت با entity framework
شما این رو قبل از خط آخر appconfig اضافه کن ببین چی میشه؟!!
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
</startup>
نقل قول: ارسال کوئری ها به کریستال ریپورت با entity framework
نقل قول:
نوشته شده توسط
esafb52
شما این رو قبل از خط آخر appconfig اضافه کن ببین چی میشه؟!!
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
</startup>
به خط آخر اضافه کردم ارور میده
نقل قول: ارسال کوئری ها به کریستال ریپورت با entity framework
پارامتری که به متد load
rd.Load("CrystalReport2.rpt");
میفرستی یا باید ادرس کامل فایل کریستال باشه و یا فایل کریستال رو کنار exe برنامه قرار بدی
1 ضمیمه
نقل قول: ارسال کوئری ها به کریستال ریپورت با entity framework
نقل قول:
نوشته شده توسط
mousa1992
پارامتری که به متد load
rd.Load("CrystalReport2.rpt");
میفرستی یا باید ادرس کامل فایل کریستال باشه و یا فایل کریستال رو کنار exe برنامه قرار بدی
توی مسیر bin/debug گذاشتم ولی ارور زیر را میده
نقل قول: ارسال کوئری ها به کریستال ریپورت با entity framework
نقل قول:
نوشته شده توسط
csharpprogramer88
توی مسیر bin/debug گذاشتم ولی ارور زیر را میده
البته این ارور ربطی به فایل کریستال نداره ومربوط می شه به نحوه مقدار دهی دیتاتیبل داخل دیتاست
واما بعد...
از کدوم ورژن کریستال استفاده می کنی منظورم اینه که توی framweork4 مشکل نداره ؟
اصلا دیتاست توی پروژه تون بکار بردین ؟
فیلدهای گزارشتون رو قبل از اینکه در فرم مربوطه فراخوانی بشن از کدوم دیتاتیبل مقدار دهی کردین ؟
1 ضمیمه
نقل قول: ارسال کوئری ها به کریستال ریپورت با entity framework
من با ef کار کردم
کریستال 2013
نقل قول: ارسال کوئری ها به کریستال ریپورت با entity framework
این یه نمونه دان
من کریستال ام 2010 هست و با دات نت فزیم ورک 4
برای سازگاری با فریم ورک 4 کافیه این رو تو فایل app.config اضافه کنی
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
</startup>
نقل قول: ارسال کوئری ها به کریستال ریپورت با entity framework
نقل قول:
نوشته شده توسط
esafb52
این یه نمونه
دان
من کریستال ام 2010 هست و با دات نت فزیم ورک 4
برای سازگاری با فریم ورک 4 کافیه این رو تو فایل app.config اضافه کنی
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
</startup>
با سلام
آقای esafb52 عزیز این که شد همون لیستی که من صبح پیشنهاد دادم وایشون قبول نکردند :ناراحت:
List<Table1> data = new List<Table1>();
using (Database1Entities fule = new Database1Entities())
{
try
{
data = fule.Table1.ToList();
ReportDocument rd = new ReportDocument();
rd.Load("CrystalReport2.rpt");
rd.SetDataSource(data);
crystalReportViewer1.ReportSource = rd;
crystalReportViewer1.Show();
}
این دوستمون می خواهند با همون کد پست 5 گزارششون رو درست کنند :لبخند:
نقل قول: ارسال کوئری ها به کریستال ریپورت با entity framework
نقل قول:
نوشته شده توسط
khokhan
با سلام
آقای esafb52 عزیز این که شد همون لیستی که من صبح پیشنهاد دادم وایشون قبول نکردند :ناراحت:
List<Table1> data = new List<Table1>();
using (Database1Entities fule = new Database1Entities())
{
try
{
data = fule.Table1.ToList();
ReportDocument rd = new ReportDocument();
rd.Load("CrystalReport2.rpt");
rd.SetDataSource(data);
crystalReportViewer1.ReportSource = rd;
crystalReportViewer1.Show();
}
این دوستمون می خواهند با همون کد پست 5 گزارششون رو درست کنند :لبخند:
دقیقا جناب استاد خوخان عزیز ولی با اون خطوط مشکل کریستا برای دات نت 4 حل شد
1 ضمیمه
نقل قول: ارسال کوئری ها به کریستال ریپورت با entity framework
نقل قول:
نوشته شده توسط
esafb52
دقیقا جناب استاد خوخان عزیز ولی با اون خطوط مشکل کریستا برای دات نت 4 حل شد
این هم نمونه پیشنهادی من :لبخند:
پروژه ef قبلی منتهی این بار با کریستال واما نه با لیست که از طریق کلک مرغابی اون هم از نوع زیر آبی :قهقهه:
قبل از اجرای پروژه فایل دیتابیس رو از پوشه DB داخل پوشه debug کپی کنید