Передача одного или нескольких параметров любого типа данных из C # в Crystal Report ... Можно написать код в событии загрузки страницы.
if (Session["RPT_NAME"] != null)
{
ReportDocument rpt = new ReportDocument();
rpt.Load(Server.MapPath((string)Session["RPT_NAME"]));
int cnt = rpt.DataDefinition.ParameterFields.Count;
for (int i = 0; i < cnt; i++)
{
ParameterValues myvals = new ParameterValues();
ParameterDiscreteValue myDiscrete = new ParameterDiscreteValue();
switch (rpt.DataDefinition.ParameterFields[i].ParameterValueKind)
{
case CrystalDecisions.Shared.ParameterValueKind.DateTim eParameter:
myDiscrete.Value = Convert.ToDateTime(Request.QueryString[i]);
break;
case CrystalDecisions.Shared.ParameterValueKind.Boolean Parameter:
myDiscrete.Value = bool.Parse(Request.QueryString[i]);
break;
case CrystalDecisions.Shared.ParameterValueKind.DatePar ameter:
myDiscrete.Value = Convert.ToDateTime(Request.QueryString[i]);
break;
case CrystalDecisions.Shared.ParameterValueKind.NumberP arameter:
myDiscrete.Value = int.Parse(Request.QueryString[i]);
break;
case CrystalDecisions.Shared.ParameterValueKind.StringP arameter:
myDiscrete.Value = Convert.ToString((Request.QueryString[i]));
break;
}
myvals.Add(myDiscrete);
rpt.DataDefinition.ParameterFields[i].ApplyCurrentValues(myvals);
}
CrystalReportViewer1.ReportSource = rpt;
CrystalReportViewer1.DataBind();
}