【发布时间】:2019-11-28 20:33:54
【问题描述】:
我创建了一个水晶报表和网页,我想在我的网页中打开水晶报表取决于文本框的值,我需要在单击按钮时将值发送到水晶报表以显示我的水晶报表。 我尝试了以下代码,并设置了数据源和数据库连接:
protected void Button1_Click(object sender, EventArgs e)
{
rdoc.Load(Server.MapPath("~/RPT/RPT_CASH_RESULT.rpt"));
SqlCommand cmd = new SqlCommand("GET_ORDER_RESULT_PRINT_CASH", cn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@ORDER_ID", TXTORDERID.Text);
cmd.Parameters.AddWithValue("@deptid", TXTDEPTID.Text);
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
sda.Fill(dt);
rdoc.SetDataSource(dt);
CrystalReportViewer1.ReportSource = rdoc;
CrystalReportViewer1.DataBind();
rdoc.SetDatabaseLogon("DBA", "1234");
}
}
当点击按钮时,它不显示报告,只有空白屏幕。怎么做才能显示报告的错误在哪里?
我尝试了另一种解决方案,但是当单击打印按钮时,它不显示水晶报告,只显示空白页我尝试了很多在本网站和其他网站上可用的解决方案???
protected void BtnCrystal_Click(object sender, EventArgs e)
{
if (Session["patientno"] != null && Convert.ToInt32(Session["patientno"]) > 0)
{
ReportDocument reportDocument = new ReportDocument();
ParameterFields paramFields = new ParameterFields();
ParameterField paramField = new ParameterField();
ParameterField paramField1 = new ParameterField();
ParameterDiscreteValue paramDiscreteValue = new ParameterDiscreteValue();
ParameterDiscreteValue paramDiscreteValue1 = new ParameterDiscreteValue();
paramField.Name = "@ORDER_ID";
paramDiscreteValue.Value =Convert.ToInt32(TXTORDERID.Text);
paramField.CurrentValues.Add(paramDiscreteValue);
paramFields.Add(paramField);
paramField1.Name = "@deptid";
paramDiscreteValue1.Value =Convert.ToInt32(TXTDEPTID.Text);
paramField1.CurrentValues.Add(paramDiscreteValue1);
paramFields.Add(paramField1);
CrystalReportViewer1.ParameterFieldInfo = paramFields;
reportDocument.Load(Server.MapPath("~/RPT/RPT_CASH_RESULT.rpt"));
CrystalReportViewer1.ReportSource = reportDocument;
reportDocument.SetDatabaseLogon("DB", "1111","test","DB");
}
【问题讨论】:
标签: c# asp.net crystal-reports