# برنامه نویسی با محصولات مایکروسافت > برنامه نویسی مبتنی بر Microsoft .Net Framework > ابزارهای گزارش سازی >  نسبت دادن storeprocedure به کریستال ریپورت در asp.net

## unique1984

با سلام
من قبلا از طریق #C گزارشهای متعددی ساختم اما الان که میخوام این گزارشها رو تحت وب بسازم به یه مشکلی برخوردم.
روال ساخت گزارش در #c به صورت زیر بود:
ابتدا یک آیتم DataSet اضافه می کردم و تیبل ها و استورپروسیجرهاو ... رو اونجا add میکردم.
بعد یه آیتم CrystalReport اضافه می کردم و در قسمت database fields/Database Expert/ProjectData/Ado.net dataset جداول و استور پروسیجرهایی که در dataset اضافه کرده بودم ظاهر میشد و بر حسب نیاز یکی از اونا رو انتخاب می کردم و ...
و اما مشکل:
حالا که پروژه از نوع WebSite هستش، در مرحله دوم یعنی اضافه کردن CrystalReport اون جداول و استور پروسیجرهایی که در dataset اد کردم ، نمایش داده نمی شند. نمیدونم مشکلش چیه؟؟!! بهر حال برای دیزاین گزارش حتما به فیلدهای این جداول و استورپروسیجرها نیازه.
ممنون

----------


## esfahanitg

سلام . براي طراحي گزارش تحت asp.net ميتونين بعد از اينكه datatable مورد نظرتون رو توي يك datasetساختين پنجره dataset رو ببندين تا همه اطلاعات ذخيره بشند و بعد يك فايل كريستال ريپورت به پروژه اضافه كنيد و در ويزارد ايجاد اين فايل از اين datatable براي ايجاد ساختار گزارش استفاده كنيد. اما براي صدا زدن و باز كردن فايل گزارشتون بايد روشي متفاوت با روش C#‎.net استفاده كنيد .براي نمايش گزارشتون ميتونين روي يك صفحه asp.net يك كامپوننت CrystalReportViewer قرار بديد و در رويداد Pageload كد زير رو بنويسيد:CrystalDecisions.CrystalReports.Engine.ReportDocument rpt = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
rpt.Load(Request.PhysicalApplicationPath + "CrystalReport.rpt");
rpt.SetDatabaseLogon("testlogin","123456");
string select="select * from customer";
SqlConnection con=newSqlConnection(ConfigurationManager.ConnectionStrings[1].ToString());
SqlDataAdapter da=newSqlDataAdapter (select,con);
DataTable dt=newDataTable();
da.Fill(dt);
Response.Write(Request.PhysicalApplicationPath + "CrystalReport.rpt");
rpt.SetDataSource(dt);
CrystalReportViewer1.DisplayGroupTree = false;
CrystalReportViewer1.ReportSource =rpt;
CrystalReportViewer1.DataBind();

كد:
rpt.SetDatabaseLogon("testlogin","123456");
براي اين نوشته شده تا اگر ديتا بيس شما از Login و User,Pass واسه ورود استفاده مي كنه زمان اجرا ديگه از شما User,pass نخواهد.در اينجا فرض كرديم ديتا بيس ما يك User به اسمtestlogin وپسورد 123456 دارد

----------

