8- یه فرم جدید ایجاد کنید و بر روی اون یک شی CrystalReportViewr بندازید
9- بهتره که ریپورت های ساخته شدتون رو به فولدر debug انتقال بدید من در ادامه فرض می کنم که فایل گزارشم در این فولدر قرار داره برای انتقال فایل گزارش به فوکدر debug در solution Explorer بر روی آیکن show all Files کلیک کنید تا فولدر bin به نمایش در بیاد و بعد فایل گزارشتون رو به فولدر debug که زیر شاخه فولدر bin هست با drag and drop منتقل کنید
10- به متد Load فرم برید قبل از اون باید using های زیر رو انجام بدید :
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
11- کد های زیر رو در متد Load فرم بنویسید :
protected void Page_Load(object sender, EventArgs e)
{
ReportDocument rptDoc = new ReportDocument();
dsSample ds = new dsSample(); // .xsd file name
DataTable dt = new DataTable();
// Just set the name of data table
dt.TableName = "Crystal Report Example";
dt = getAllOrders(); //This function is located below this function
ds.Tables[0].Merge(dt);
// Your .rpt file path will be below
rptDoc.Load(Application.StartPath + "/SimpleReports.rpt");
//set dataset to the report viewer.
rptDoc.SetDataSource(ds);
CrystalReportViewer1.ReportSource = rptDoc;
}
12- متد getAllOrders() یک متد برای استخراج فیلد های مورد نظرمون از دیتابیس و ارسال اون در قالب یه دیتا تیبله در زیر این متد آورده شده :
public DataTable getAllOrders()
{
//Connection string replace 'databaseservername' with your db server name
string sqlCon = "User ID=sa;PWD=sa; server=databaseservername;
INITIAL CATALOG=SampleDB;PERSISTSECURITY INFO=FALSE;Connect Timeout=0";
SqlConnection Con = new SqlConnection(sqlCon);
SqlCommand cmd = new SqlCommand();
DataSet ds = null;
SqlDataAdapter adapter;
try
{
Con.Open();
//Stored procedure calling. It is already in sample db.
cmd.CommandText = "getAllOrders";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = Con;
ds = new DataSet();
adapter = new SqlDataAdapter(cmd);
adapter.Fill(ds, "Users");
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
cmd.Dispose();
if (Con.State != ConnectionState.Closed)
Con.Close();
}
return ds.Tables[0];
}hrow new Exception(ex.Message);
}
finally
{
cmd.Dispose();
if (Con.State != ConnectionState.Closed)
Con.Close();
}
return ds.Tables[0];
}
13- کارمون تموم شد فقط برنامه رو اجرا می کنیم خروجی همانند شکل زیر میشه :
13.JPG