水晶报表asp.netwebform下的基本使用

代码
protected void Page_Init(object sender, EventArgs e)
{
ConfigureCrystalReport();
}
protected void Page_Unload(object sender, EventArgs e)
{
if (rptDocument == null)
return;
rptDocument.Close();
rptDocument.Dispose();
}

private void ConfigureCrystalReport()
{
string temp = BusinessObject.Util.Decrypt(Request.QueryString["toid"]);
TourOrderId
= Util.ConvertTo<int>(temp, 0);

if (ViewState["reportdoc"] == null)
{
string report_path = "";
report_path
= Server.MapPath("~/Report/TourNote.rpt");

DataSet ds
= BusinessObject.TourOrders.GetTourNoteDsRpt(TourOrderId);
if (ViewState["reportdata"] == null)
{
ViewState[
"reportdata"] = ds;
}
else
{
ds
= (DataSet)ViewState["reportdata"];
}
rptDocument
= new ReportDocument();
rptDocument.Load(report_path);
rptDocument.SetDataSource(ds);
rptDocument.PrintOptions.PaperSize
= CrystalDecisions.Shared.PaperSize.DefaultPaperSize;
ViewState[
"reportdoc"] = rptDocument;
}
else
{
rptDocument
= (ReportDocument)ViewState["reportdoc"];
}

this.CrystalReportViewer1.ReportSource = rptDocument;
this.CrystalReportViewer1.HasToggleGroupTreeButton = false;
this.CrystalReportViewer1.DisplayGroupTree = false;

}

使用方法.先建了一个数据集做为数据源,作为水晶报表的数据架构.

代码里面调用一个存储过程,返回拥有多张表的DataSet.

原文地址:https://www.cnblogs.com/huaxiaoyao/p/1857757.html