如何在 Web 表单上设置将应用于 crystal 报告的范围参数?

How do I set a Range Parameter on the web form that will be applied on the crystal report?

我最近创建了一个由 2 个表单组成的 WebForm,第一个表单仅包含一个按钮,用于重定向到第二个表单,然后打开 Crystal 报告。

所有这一切都工作正常,但现在我想在第一个 WebForm 上插入一个参数(过滤范围),以便在我打开它后它会直接应用于 crystal 报告。

关于我需要包含哪些代码的任何想法?任何帮助都会很棒。

编辑:

        ReportDocument cryRpt = new ReportDocument();
        cryRpt.Load(Server.MapPath("CrystalReportCustomerInfo.rpt"));
        CrystalReportCustomerinfo.ReportSource = cryRpt;

        ParameterFieldDefinitions FirstParameterFieldDefinitions;
        ParameterFieldDefinition FirstParameterFieldDefinition;
        ParameterValues FirstParameterValues = new ParameterValues();
        ParameterDiscreteValue FirstParameterDiscreteValue = new ParameterDiscreteValue();
        FirstParameterDiscreteValue.Value = Txt1.Text;
        FirstParameterFieldDefinitions = cryRpt.DataDefinition.ParameterFields;
        FirstParameterFieldDefinition = FirstParameterFieldDefinitions["FromID"];
        FirstParameterValues = FirstParameterFieldDefinition.CurrentValues;
        FirstParameterValues.Clear();
        FirstParameterValues.Add(FirstParameterDiscreteValue);
        ParameterFieldDefinitions SecondParameterFieldDefinitions;
        ParameterFieldDefinition SecondParameterFieldDefinition;
        ParameterValues SecondParameterValues = new ParameterValues();
        ParameterDiscreteValue SecondParameterDiscreteValue = new ParameterDiscreteValue();
        SecondParameterDiscreteValue.Value = Txt2.Text;
        SecondParameterFieldDefinitions = cryRpt.DataDefinition.ParameterFields;
        SecondParameterFieldDefinition = SecondParameterFieldDefinitions["ToID"];
        SecondParameterValues = SecondParameterFieldDefinition.CurrentValues;
        SecondParameterValues.Clear();
        SecondParameterValues.Add(SecondParameterDiscreteValue);
        FirstParameterFieldDefinition.ApplyCurrentValues(FirstParameterValues);
        SecondParameterFieldDefinition.ApplyCurrentValues(SecondParameterValues);
        CrystalReportCustomerinfo.ReportSource = cryRpt;
        CrystalReportCustomerinfo.RefreshReport(); 
    }

试一试

private void btnReport_Click(object sender, EventArgs e)
    {
        ReportDocument rpt = new ReportDocument();
        rpt.Load(Server.MapPath("~/CrystalReportCustomerInfo.rpt"));
        ParameterFieldDefinitions FirstParameterFieldDefinitions;
        ParameterFieldDefinition FirstParameterFieldDefinition;
        ParameterValues FirstParameterValues = new ParameterValues();
        ParameterDiscreteValue FirstParameterDiscreteValue = new ParameterDiscreteValue();
        FirstParameterDiscreteValue.Value = Convert.ToInt32(from.Text);
        FirstParameterFieldDefinitions = rpt.DataDefinition.ParameterFields;
        FirstParameterFieldDefinition = FirstParameterFieldDefinitions["FromID"];
        FirstParameterValues = FirstParameterFieldDefinition.CurrentValues;
        FirstParameterValues.Clear();
        FirstParameterValues.Add(FirstParameterDiscreteValue);
        ParameterFieldDefinitions SecondParameterFieldDefinitions;
        ParameterFieldDefinition SecondParameterFieldDefinition;
        ParameterValues SecondParameterValues = new ParameterValues();
        ParameterDiscreteValue SecondParameterDiscreteValue = new ParameterDiscreteValue();
        SecondParameterDiscreteValue.Value = Convert.ToInt32(to.Text); ;
        SecondParameterFieldDefinitions = rpt.DataDefinition.ParameterFields;
        SecondParameterFieldDefinition = SecondParameterFieldDefinitions["ToID"];
        SecondParameterValues = SecondParameterFieldDefinition.CurrentValues;
        SecondParameterValues.Clear();
        SecondParameterValues.Add(SecondParameterDiscreteValue);
        FirstParameterFieldDefinition.ApplyCurrentValues(FirstParameterValues);
        SecondParameterFieldDefinition.ApplyCurrentValues(SecondParameterValues);
        CrystalReportViewer1.ReportSource = rpt;
}