您好,
我可以使用水晶报表的CrystalReportViewer的一份报告显示。它的工作很好。但是,如果数据很大,需要多页,然后只显示第一页。我怎么能显示所有的页面。这里是我的代码。
注:我使用的是ASP.NET,C#
protected void Page_Load(object sender, EventArgs e)
{
string ReportName="";
string Parameter1="";
ReportName = Session["ReportName"].ToString();
Parameter1 = Session["Parameter1"].ToString();
ReportDocument rptDoc = new ReportDocument();
try
{
rptDoc = ShowReport(ReportName, Parameter1);
CrystalReportViewer1.ReportSource = rptDoc;
CrystalReportViewer1.RefreshReport();
CrystalReportViewer1.Visible = true;
CrystalReportViewer1.DataBind();
}
catch (Exception ex)
{
}
}
#region Instantiate
private ParameterValues crParameterValues = new ParameterValues();
private ParameterDiscreteValue crParameterDiscreteValue = new ParameterDiscreteValue();
private ReportDocument cryRpt = new ReportDocument();
#endregion
#region Declaration
private string ServerName = ConfigurationManager.AppSettings["ServerName"].ToString();
private string DatabaseName = ConfigurationManager.AppSettings["DatabaseName"].ToString();
private string UserName = ConfigurationManager.AppSettings["UserName"].ToString();
private string Password = ConfigurationManager.AppSettings["Password"].ToString();
private ParameterFieldDefinitions crParameterFieldDefinitions;
private ParameterFieldDefinition crParameterFieldDefinition;
#endregion
#region DatabaseLogonInfo
ReportDocument DatabaseLogonInfo()
{
ReportDocument cryRpt = new ReportDocument();
try
{
//string ServerName = ConfigurationManager.AppSettings["servername"].ToString();
//string DatabaseName = ConfigurationManager.AppSettings["databasename"].ToString();
//string UserName = ConfigurationManager.AppSettings["username"].ToString();
//string Password = ConfigurationManager.AppSettings["password"].ToString();
cryRpt.SetDatabaseLogon(UserName, Password, ServerName, DatabaseName);
}
catch (Exception ex)
{
throw ex;
}
return cryRpt;
}
#endregion
#region Execute report For one String type Parametar
public ReportDocument ShowReport(string ReportName, string Parameter1)
{
try
{
//cryRpt.Refresh();
cryRpt.Load(ReportName);
cryRpt.SetDatabaseLogon(UserName, Password, ServerName, DatabaseName);
crParameterValues.Clear();
crParameterDiscreteValue.Value = Parameter1;// as like Parameter1
crParameterFieldDefinitions = cryRpt.DataDefinition.ParameterFields;
crParameterFieldDefinition = crParameterFieldDefinitions["@Parameter1"];
crParameterValues = crParameterFieldDefinition.CurrentValues;
crParameterValues.Add(crParameterDiscreteValue);
crParameterFieldDefinition.ApplyCurrentValues(crParameterValues);
}
catch (Exception ex)
{
throw ex;
//ShowReport(@"default_report.rpt");
}
//CleareParameter();
return cryRpt;
}
#endregion