PDA

View Full Version : مشکل با کریستال ریپورت و BindingSource



samanff2000
چهارشنبه 20 آذر 1387, 02:51 صبح
سلام
من برنامه ای با BindingSource نوشتم میخواهم گذارش بگیرم ولی با کرستال مجبورم بانک رو انتخاب کنم . نمیتونم BindingSource را انتخاب کنم اگر کسی میتونه به من کمک کنه من هرچی توی این سایت و جاهای دیگه گشتم چیزی پیدا نکردم ممنون مشم کمک کنید واین که در هیج کتابی و جزوه ای من ندیدم در باره BindingSource توضیح کامل داده باشه اگر کسی چیزی در این موردم داره بده

Esmail Solhkhah
چهارشنبه 20 آذر 1387, 13:41 عصر
سلام دوست عزیز
خود BindingSource اطلاعاتش رو از یه منبع (همون دیتابیس و جدول مورد نظر) تامین میکنه
همونارو بهش بده
درمورد مرجع هم MSDN
موفق باشی.

samanff2000
پنج شنبه 21 آذر 1387, 23:48 عصر
دوست عزیز اگه ممکنه در این مورد بیشتر توضیح بدید و اگر ممکنه برام یه مثال ساده یا مشابه قرار بدید ممنونم

shervin_agh67
یک شنبه 24 آذر 1387, 16:36 عصر
ببینید شما BindingSource رو با چی پر می کنید؟ با DataSet . خوب در گزارش گیریتون هم می تونید از همون دیتاست استفاده کنید .
ولی اگر میشد از BindingSource استفاده کرد می تونستیم سطرها رو بر اساس یک فیلد مشخص مرتب کنیم . الان دقیقا مشکل من همین جاست که ما در گزارش گیریمون قادر به مرتب سازی سطر چه با BindingSource و چه با دستورات SQL نیستیم . من این مسئله رو زیاد مطرح کردم ولی کسی جوابی نداد.

Alireza_Salehi
یک شنبه 24 آذر 1387, 22:59 عصر
سلام
من برنامه ای با BindingSource نوشتم میخواهم گذارش بگیرم ولی با کرستال مجبورم بانک رو انتخاب کنم . نمیتونم BindingSource را انتخاب کنم اگر کسی میتونه به من کمک کنه من هرچی توی این سایت و جاهای دیگه گشتم چیزی پیدا نکردم ممنون مشم کمک کنید و این که در هیج کتابی و جزوه ای من ندیدم در باره BindingSource توضیح کامل داده باشه اگر کسی چیزی در این موردم داره بده
کریستال ریپورت کلا چهار نوع منبع داده قبول میکنه: DataSet, DataTable, IDataReader,System.Collections.IEnumerable
حالا هر چیزی که می خواهید در کریستال ریپورت نشون بدیدباید یه جوری به یکی از این چهار تا تبدیل بشه. از قضا BindingSource یک خاصیت List داره که از نوع IEnumerable هست! فقط کافیه ازمتد SetDataSource کلاس ReportDocument استفاده کنید.
اتفاقا MSDN توضیحات کافی داره.


ببینید شما BindingSource رو با چی پر می کنید؟ با DataSet . خوب در گزارش گیریتون هم می تونید از همون دیتاست استفاده کنید .
ولی اگر میشد از BindingSource استفاده کرد می تونستیم سطرها رو بر اساس یک فیلد مشخص مرتب کنیم . الان دقیقا مشکل من همین جاست که ما در گزارش گیریمون قادر به مرتب سازی سطر چه با BindingSource و چه با دستورات SQL نیستیم . من این مسئله رو زیاد مطرح کردم ولی کسی جوابی نداد.
یه کم خلاقیت به خرج بدید مسئله ساده تر از این حرفاست!

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

shervin_agh67
یک شنبه 24 آذر 1387, 23:13 عصر
از قضا BindingSource یک خاصیت List داره که از نوع IEnumerable هست! فقط کافیه ازمتد SetDataSource کلاس ReportDocument استفاده کنید.
اتفاقا MSDN توضیحات کافی داره.

. WOW
کار واقعا جالبی بود . با نکته ای که گفتی مشکل من در sort کردن هم حل شد . راستش من هیچ وقت از Interface ها درست استفاده نکردم (یعنی هیچ وقت کاربرد درستشون رو نفهمیدم) واسه همین متوجه این نکته نشده بودم .
ولی در مورد سوال دوستمون هم به این شیوه می تونن عمل کنن و هم با استفاده از دیتاست.