以编程方式加载水晶报告

时间:2010-07-08 05:46:40

标签: c# linq-to-sql c#-3.0

我正在尝试加载一个水晶报告,该报告应该根据用户选择的日期加载报告。我已经编写了下面的代码来帮助我实现这个,但是当我使用datetimepicker(dtpDate)选择日期时,单击加载按钮(btnReport),编译器会抛出一个无法加载报告的异常。你可以帮我找一下错误的地方吗?我该如何纠正呢?

namespace linqToSql_trial
{
    public partial class frmFlightDetailsReport : Form
    {
        public frmFlightDetailsReport()
        {
            InitializeComponent();
        }

        private void btnReport_Click(object sender, EventArgs e)
        {
            ReportDocument cryRpt = new ReportDocument();
            cryRpt.Load("C:\\Users\\Daniel\\Desktop\\linqToSql_trial\\linqToSql_trial\flightDetailsReport.rpt");

            ParameterFieldDefinitions crParameterFieldDefinitions ;
            ParameterFieldDefinition crParameterFieldDefinition ;
            ParameterValues crParameterValues = new ParameterValues();
            ParameterDiscreteValue crParameterDiscreteValue = new ParameterDiscreteValue();

            crParameterDiscreteValue.Value = dtpDate.Value;
            crParameterFieldDefinitions = cryRpt.DataDefinition.ParameterFields;
            crParameterFieldDefinition = crParameterFieldDefinitions["flightdate"];
            crParameterValues = crParameterFieldDefinition.CurrentValues;

            crParameterValues.Clear();
            crParameterValues.Add(crParameterDiscreteValue);
            crParameterFieldDefinition.ApplyCurrentValues(crParameterValues);

            crystalReportViewer1.ReportSource = cryRpt;
            crystalReportViewer1.Refresh(); 

        }

        private void frmFlightDetailsReport_Load(object sender, EventArgs e)
        {

        }
    }
}

1 个答案:

答案 0 :(得分:0)

我已将cryRpt.Load行调整为此

cryRpt.Load(@ “C:\用户\丹尼尔​​\桌面\ linqToSql_trial \ linqToSql_trial \ flightDetailsReport.rpt”);

它已设法加载。