PDA

View Full Version : سوال: ارسال پارامتر به sp و نشون دادن اطلاعات در report.rdlc



armin20
جمعه 25 اردیبهشت 1388, 13:42 عصر
سلام به همه اساتید
میخوام با report.rdlc یه گزارش توسط sp بگیرم
اما نمیدونم چه جوری پارامتر هام رو که در sp نیاز هست پاس کنم
کسی میتونه راهنماییم کنه؟
ممنون

armin20
جمعه 25 اردیبهشت 1388, 18:18 عصر
یعنی کسی نمیدونه که چه جوری میشه پارامترهای لازم رو به sp ارسال کرد و بعد جواب اجرای sp رو در report viewer دید؟

armin20
شنبه 26 اردیبهشت 1388, 20:26 عصر
???????!!!!!!

arashkey
شنبه 03 اردیبهشت 1390, 23:11 عصر
ممکنه پست قدیمی شده باشه
اگه بخوایی مستقیما یک پارامتر رو به RDLC ارسال کنی
ولی چون خودم دنبالش می گشتم اینجام میزارم بقیه هم استفاده کنن
می تونید اینجا (http://hesam-h.ir/blog/?dl_id=13)جوابتون رو پیدا کنید
ولی اگه بخوایی که از طریق استور پروسیجر با دیتابیس دیتا رو توی RDLC لود کنی
اولا که نباید از آپدیت پنل استفاده کنی
ثانیا می تونی از Object data source استفاده کنی
و یک دیتا ست هم تو Root ، قسمت Solution برنامه ات درست کن و از Server Explorer اون SP رو بکش بنداز توش
بعد RDLC رو به شکل Wizard (در Vs 2010) بساز و به عنوان سرس همون SP رو بده
در نهایت دیتا سورس لوکال RDLC با تو این قسمت reportViewer1.LocalReport ست کن
نمونه کدش اینجوری می شه



ObjectDataSource1.SelectParameters.Clear();
ObjectDataSource1.SelectParameters.Add("StartDate", DbType.Date
,
PersianDateTimeStartDate.LatinDate.HasValue
? PersianDateTimeStartDate.LatinDate.Value.Date.ToSh ortDateString
()
: null);
ObjectDataSource1.SelectParameters.Add("EndDate", DbType.Date
,
PersianDateTimeEndDate.LatinDate.HasValue
? PersianDateTimeEndDate.LatinDate.Value.Date.ToShor tDateString()
: null);
ObjectDataSource1.SelectParameters.Add("FkPerson", DbType.Int32
,
SelectPerson.SelectedPersonData != null
? SelectPerson.SelectedPersonData.PkPerson.ToString( )
: null);

ObjectDataSource1.DataBind();
ReportViewer1.LocalReport.ReportPath = Constant.ReportPathText;
ReportViewer1.LocalReport.DataSources.Clear();
ReportViewer1.LocalReport.DataSources.Add(
new ReportDataSource(
Constant.DataSetName, ObjectDataSource1.ID
));
ReportViewer1.Visible = true;
ReportViewer1.DataBind();
ReportViewer1.LocalReport.Refresh();

همونجوری که می بینی این SP من دو تا پارامتر شروع و پایان می گیره(باید بین یک بازه مشخص مرخصی ها رو برگردونه)
PersianDateTime هم یه کامپوننت که خودم نوشم و تاریخ فارسی می گیره و انگلیسش رو بر می گردونه
این قسمت کد صفحه هست
و قسمت طراحی صفحه هم این شکلیه

<rsweb:ReportViewer ID="ReportViewer1" runat="server" Height="500px" Width="100%"
Font-Names="Verdana" Font-Size="8pt" InteractiveDeviceInfos="(Collection)" WaitMessageFont-Names="Verdana"
WaitMessageFont-Size="14pt" Visible="false">
</rsweb:ReportViewer>
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" OldValuesParameterFormatString="original_{0}"
SelectMethod="GetData" TypeName="Solution.YourFolder.DataSetHolidaysTableAdapters.S earchHolidayStatusByDateTableAdapter">
</asp:ObjectDataSource>