Я хочу создать отчет Crystal в формате PDF. Я сделал то же самое, передав один параметр. Но на этот раз я хочу передать 10 параметров. Я следовал тому же, что и для передачи одного параметра.
Но теперь я получил сообщение об ошибке «Невозможно оценить выражение, потому что код оптимизирован или собственный фрейм находится над стеком вызовов».
Кто-нибудь, пожалуйста, дайте предложения. Заранее спасибо.
Пожалуйста, измените мой код в соответствии с генерацией Crystal Report в формате PDF.
В событии нажатия кнопки я написал следующий код.
try
{
CrystalDecisions.CrystalReports.Engine.ReportDocument rpt =
new CrystalDecisions.CrystalReports.Engine.ReportDocument();
string conn = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
string[] str = conn.Split(';');
string server = str[0].Substring(str[0].IndexOf(" = ") + 3);
string database = str[1].Substring(str[1].IndexOf(" = ") + 3);
string userid = str[2].Substring(str[2].IndexOf(" = ") + 3);
string password = "Welc0me";
rpt.Load(Server.MapPath("~/Reports/Marketing/JobOrdersList.rpt"));
for (int i = 0; i < rpt.DataSourceConnections.Count; i++)
rpt.DataSourceConnections[i].SetConnection(server, database, userid, password);
rpt.SetParameterValue(0, DateTime.ParseExact(dcfromdate.DateString.ToString(), DateFormat, CultureInfo.InvariantCulture, DateTimeStyles.None));
rpt.SetParameterValue(1, DateTime.ParseExact(dcTodate.DateString.ToString(), DateFormat, CultureInfo.InvariantCulture, DateTimeStyles.None));
rpt.SetParameterValue(2, ddlCompany.SelectedValue);
rpt.SetParameterValue(3, ddlUnit.SelectedValue);
rpt.SetParameterValue(4, ddlCustomer.SelectedValue);
rpt.SetParameterValue(5, ddlProduct.SelectedValue);
rpt.SetParameterValue(6, ddlScope.SelectedValue);
rpt.SetParameterValue(7, ddlStatus.SelectedValue);
rpt.SetParameterValue(8, ddlGroupBy.SelectedValue);
rpt.SetParameterValue(9, (ChkPrint.Checked == true ? "True" : "False"));
rpt.ExportToHttpResponse(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, HttpContext.Current.Response, true, "JobOrderList Report");
}
catch (Exception ex)
{
return ex.Message.ToString();
}