1

ASP.Net Web ページで Crystal レポートを表示できません。この Web サイトは内部 Web サイトのみであるため、サイトにコード化されたファイル パスがあることがわかります。私はこれを機能させることに非常に近づいていると思いますが、明らかに何かが欠けています。誰でも助けることができますか?

彼は私のコードです:

void BindReport()
{
    ReportDocument rd = new ReportDocument();

    //Report is saved on an external server which I have full access too
    rd.Load(@"\\MyServer\Reports\MyReport.rpt");
    rd.SetDatabaseLogon("UserName", "Password", "MyServer", "MyDatabase", true);
    //The Report has 2 parameter and links directly to a stored procedure on a SQL Server
    rd.SetParameterValue("@uspDateFrom", new DateTime(2012, 05, 01));
    rd.SetParameterValue("@uspDateTo", new DateTime(2012, 05, 31));
    CrystalReportViewer1.ReportSource = rd;
    CrystalReportViewer1.ReuseParameterValuesOnRefresh = true;
    CrystalReportViewer1.RefreshReport();
}

//I call my report on a button click
protected void buttonPreviewReport_Click(object sender, EventArgs e)
{
    BindReport();
}

レポートを実行しようとすると、パラメーター値を既に渡したにもかかわらず、パラメーター値を求めるダイアログ ボックスがポップアップ表示されます!? ダイアログ プロンプトでそれらを入力しても、有効なレポート ソースが利用できないというメッセージが表示されます。

誰かアイデアはありますか?

ASP.Net 4.0 を使用しています

前もって感謝します

4

1 に答える 1

0

Crystal Report を使用していたときに、同じ問題が発生しました。

  ParameterFields paramFields = new ParameterFields();

  ParameterField paramField = new ParameterField();

  ParameterDiscreteValue discreteVal = new ParameterDiscreteValue();

  paramField.ParameterFieldName = "@examid";// This is how you can send Parameter Value to the Crystal Report


 // Set the first discrete value and pass it to the parameter.
   discreteVal.Value = ddlAllExam.SelectedValue;//Value from DropDown

   paramField.CurrentValues.Add(discreteVal);

   paramFields.Add(paramField);

   CrystalReportViewer1.ParameterFieldInfo = paramFields;

   string datasource = System.Configuration.ConfigurationManager.AppSettings["Data Source"].ToString();

   string Database = System.Configuration.ConfigurationManager.AppSettings["Database"].ToString();

   string Userid = System.Configuration.ConfigurationManager.AppSettings["Userid"].ToString();

   string Password = System.Configuration.ConfigurationManager.AppSettings["Password"].ToString();

    ReportDocument report = new ReportDocument();

    report.Load(Server.MapPath("~/Reports/AllExamReport.rpt"));//Here you can give the Path of external Server

    report.SetDatabaseLogon(Userid, Password, datasource, Database);

    CrystalReportViewer1.ReportSource = report;

これがあなたを助けることを願っています.!!!

于 2012-09-12T08:06:15.507 に答える