PDA

View Full Version : سوال: مشکل نمایش سطر اول زمانی که ديتا از سي شارپ به فست ريپورت ارسال میشود



mahson63
چهارشنبه 27 تیر 1397, 11:07 صبح
سلام
من از طریق برنامه و به وسیله یک DataTable اطلاعاتم رو به FastReport.Net ارسال میکنم (با استفاده از RegisterData)
منتها هنگام نمایش فقط سطر اول رو نمایش میده

چطور میتونم رفع کنم این ایراد رو

متشکر و ممنون از دوستانی که راهنمایی می فرمایند

rahmatipoor
چهارشنبه 27 تیر 1397, 14:25 عصر
برای اینکه اطلاعاتتون تکرار بشه توی فست ریپورت باید فیلداها رو روی DataBand قرار بدید. شما حتما از DataBand استفاده نکردید

mahson63
چهارشنبه 27 تیر 1397, 14:44 عصر
برای اینکه اطلاعاتتون تکرار بشه توی فست ریپورت باید فیلداها رو روی DataBand قرار بدید. شما حتما از DataBand استفاده نکردید

خوب این که مشخصه برای تکرار ردیف ها باید در DataBand قرار بگیره
و من هم طبعا این کار رو انجام دادم
ولی فقط سطر اول رو نشون میده

در مود Design

148562

و هنگام اجرا

148563

rahmatipoor
پنج شنبه 28 تیر 1397, 10:45 صبح
مطمئن هستید که دیتاتیبل اطلاعات داره
یک بریک پوینت قبل از ارسال اطلاعات به فست ریپورت قرار بدید و تعداد رکوردها داخل دیتاتیبل رو چک کنید

mahson63
شنبه 30 تیر 1397, 09:28 صبح
بله خوب مقدار داره و بیش از یک ردیف مقدار داره

ولی فقط یک ردیف اول رو نشون میده

mahson63
سه شنبه 02 مرداد 1397, 10:33 صبح
مشکل به شکل زیر حل شد :

در سی شارپ کد زیر رو باید نوشت :

FastReport.Report report = new FastReport.Report();
report.Load(RepAddress);

DataView DVW = new DataView(dtRep);

report.RegisterData(DVW, "DataSetMain");
report.GetDataSource("DataSetMain").Enabled = true;





قابل ذکر است dtrep یک datatable می باشد که حاوی اطلاعات ما است
سپس در Fast Report هم به شکل معمول یک Text Box در DataBand قرار میدیم و مقدار Text اون رو به ترتیب زیر به یک فیلد مقدار دهی میکنیم :

[DataSetMain.No]

و همچنین در رویداد _StartReport قطعه کد زیر رو باید نوشت :



DataSourceBase data = Report.Dictionary.Report.GetDataSource("DataSetMain");

MainData.DataSource = data;




بدین شکل مشکل به صورت کامل حل میشه و شما یک گزارش ساختید بدون اینکه حتی یک دیتا ست داخل خود گزارش تعریف کنید و تمام مقادیر از برنامه به گزارش پاس داده میشه