2013-10-27 22 views
9
public virtual ActionResult GetReportSnapshot() 
    { 
     var data = (ComparativeBalanceReportDS) TempData["ComparativeSession"]; 


     StiReport report = new StiReport(); 
     report.Load(Server.MapPath("~/Content/StimulReports/SampleReport.mrt")); 

     report.Compile(); 

     report["fromDocumentNumber"] = "1"; 
     report["toDocumentNumber"] = "85"; 
     return StiMvcViewer.GetReportSnapshotResult(HttpContext, report); 
    } 

私はストアドプロシージャをして実行し、デザイナーではなく、私はそれにパラメータを送信したときに 実行アプリケーションはありませんが、私は次のエラーを取得する:Stimulsoftにパラメータを送信するにはどうすればよいですか?

エラーSqlCommand.Prepareメソッドは、すべての変数の長さが必要です明示的にゼロ以外のサイズに設定されたパラメータ

私は何をしますか?

答えて

9

私の問題は、次のコードで解決しました:

 public virtual ActionResult GetReportSnapshot() 
     { 
     var data = (ComparativeBalanceReportDS) TempData["ComparativeSession"];  
      StiReport report = new StiReport(); 
     report.Dictionary.DataStore.Clear(); 
     report.Load(Server.MapPath("~/Content/StimulReports/SampleReport.mrt")); 
     report["@enterpriseId"] = data.EnterpriseId; 
     report["@toDocumentNumber"] = data.NumberFilter.FromDocumentDocumentNumber; 
     report["@fromDocumentNumber"] = data.NumberFilter.ToDocumentDocumentNumber; 
     report["@fromDate"] = data.DateFilter.FromDocumentDate.Value; 
     report["@toDate"] = data.DateFilter.ToDocumentDate.Value; 
     return StiMvcViewer.GetReportSnapshotResult(HttpContext, report); 

     } 
4

レポートをコンパイルする前に、次のコードを使用することができます。

report.Dictionary.DataSources["DataSourceName"].Parameters["ParameterName"].Value = "" 

また、あなたは、パラメータ表現で追加の変数を使用することができます。この場合、レンダーレポートの前に変数の値を設定する必要があります。

関連する問題