PDA

View Full Version : سوال: ایجاد صفحه جدید در reportviewer



m_ali_gho
پنج شنبه 21 شهریور 1392, 12:53 عصر
سلام دوستان
من یه گزارش دارم تو پروژم که توش فقط 3 تا پارامتر داره. 2 تا توی سر برگ و یه دونه هم تو بدنه. اگه نتیجه select یه رکورد باشه مشکلی ندارم و به این صورت پارامتر ها رو براش ارسال میکنم.


SqlConnection Conn = new SqlConnection(MyConnectionString);
SqlCommand Cmd = new SqlCommand("select ...", Conn);
SqlDataAdapter SDA = new SqlDataAdapter();
DataTable DT = new DataTable();
Conn.Open();
SDA.SelectCommand = Cmd;
Conn.Close();
SDA.Fill(DT);
ReportViewer.LocalReport.ReportEmbeddedResource = @"???.rdlc";
ReportParameter RP1 = new ReportParameter("Parameter1", DT.Rows[0]["Value1"].ToString());
ReportParameter RP2 = new ReportParameter("Parameter2", DT.Rows[0]["Value2"].ToString());
ReportParameter RP3 = new ReportParameter("Parameter3", DT.Rows[0]["Value3"].ToString());
ReportViewer.LocalReport.SetParameters(RP1);
ReportViewer.LocalReport.SetParameters(RP2);
ReportViewer.LocalReport.SetParameters(RP3);
ReportViewer.RefreshReport();


اما اگه بیشتر از یه رکورد باشه نمیدونم چی کار کنم تا هر رکورد رو تو یه صفحه نمایش بده. لطفا راهنمایی کنید.

parvizwpf
پنج شنبه 21 شهریور 1392, 13:01 عصر
یعنی چی هر سطر تو یه صفحه ؟ یعنی به ازای هر رکورد یک صفحه گزارش؟

m_ali_gho
پنج شنبه 21 شهریور 1392, 13:09 عصر
معذرت میخوام. اشتباه نوشتم. شما درست میگین. یعنی به ازای هر رکورد یک صفحه گزارش

R_khaleghi
پنج شنبه 21 شهریور 1392, 13:16 عصر
سلام.

اندازه رکوردی که میکشی روی صفحه ریپورتت رو بزرگ تر کن.

m_ali_gho
پنج شنبه 21 شهریور 1392, 13:22 عصر
خیلی ممنون
من پارامترم رو تو یه تکست باکس قرار دادم که تقریبا کل بدنه گزارش رو میگیره. یعنی از بالا چسبیده به سربرگ و از 3 طرف دیگه 1cm فاصله داره. با این وجود من چنین مشکلی دارم

khokhan
پنج شنبه 21 شهریور 1392, 13:51 عصر
خیلی ممنون
من پارامترم رو تو یه تکست باکس قرار دادم که تقریبا کل بدنه گزارش رو میگیره. یعنی از بالا چسبیده به سربرگ و از 3 طرف دیگه 1cm فاصله داره. با این وجود من چنین مشکلی دارم
نمی شه!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!:لبخند :
ساخت یه همچی گزارش با پارامتر صحیح نیست
بایستی اطلاعات رو درون گرید بریزین و یه ستون چک باکس داشته باشین و رکوردهای مورد نظر تون رو تیک بزنین
بعد با یه حلقه از رکوردهای چک شده دیتاتیبل درست کنین و بفرستین به گزارش
اون موقع می تونین در سمت گزارش به ازای هر رکورد یک صفحه اختصاص بدین

m_ali_gho
پنج شنبه 21 شهریور 1392, 14:04 عصر
نمی شه!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!:لبخند :
ساخت یه همچی گزارش با پارامتر صحیح نیست
بایستی اطلاعات رو درون گرید بریزین و یه ستون چک باکس داشته باشین و رکوردهای مورد نظر تون رو تیک بزنین
بعد با یه حلقه از رکوردهای چک شده دیتاتیبل درست کنین و بفرستین به گزارش
اون موقع می تونین در سمت گزارش به ازای هر رکورد یک صفحه اختصاص بدین

خیلی ممنون جناب khokhan
افتخار دادین.
بازم طبق فرمایش شما در هر صورت باید یه دیتا تیبل درست بشه خوب منم همین کارو میکنم دیگه. یه دیتا تیبل دارم که میتونه هر تعدادی رکورد داشته باشه. از صفر تا n. حالا به جای اینکه کاربر انتخاب کنه کدوم رکورد ها رو می خواد برنامه انتخاب میکنه.
مشکل من تو اون خط آخری که فرمودین گیر هستش. :لبخند:
چند جا خوندم که باید یه جوری یه Page Break درست کنم. اما چجوری نمیدونم!

khokhan
پنج شنبه 21 شهریور 1392, 15:34 عصر
خیلی ممنون جناب khokhan
افتخار دادین.
بازم طبق فرمایش شما در هر صورت باید یه دیتا تیبل درست بشه خوب منم همین کارو میکنم دیگه. یه دیتا تیبل دارم که میتونه هر تعدادی رکورد داشته باشه. از صفر تا n. حالا به جای اینکه کاربر انتخاب کنه کدوم رکورد ها رو می خواد برنامه انتخاب میکنه.
مشکل من تو اون خط آخری که فرمودین گیر هستش. :لبخند:
چند جا خوندم که باید یه جوری یه Page Break درست کنم. اما چجوری نمیدونم!
وارد محیط دیزاین گزارش می شوی
1. ابتدا اطلاعات رو بر اساس یکی از فیلدها گروه بندی می کنی
110530

2. حالا یه ستون جدید به نام گروه 1 ایجاد می شه و توی اولین سلول از این ستون نوشته page break بررویش راست کلیک می کنی واولین گزینه رو انتخاب می کنی :

110532
3 بعد از این مراحل دوباره برروی همین گزینه راست کلیک کرده و ستون گروه بندی رو حذف می کنی :لبخند: