2010-12-03 14 views
0

私はこのように1つのButtonField列を持つGridViewを持っています: IDという1つの入力パラメータを持つストアドプロシージャに基づいてCrystalレポートを作成しました。 私はIDをGridViewのDataKeyNamesに保持しました。GridViewからcrystal reportを表示する方法は?

グリッドビューの印刷ボタンをクリックすると、対応するクリスタルレポートが表示されます。

あなたの役に立つヒントを待ち望んでいます。

答えて

0

私は答えを得ました。

 if (e.CommandName == "printReport")  
     { 
      int ID = Convert.ToInt32(GridView1.SelectedDataKey.Value); 
      try 
      { 
       CrystalDecisions.CrystalReports.Engine.ReportDocument rpt = 
          new CrystalDecisions.CrystalReports.Engine.ReportDocument(); 

       string conn = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString(); 
       string[] str = conn.Split(';'); 
       string server = str[0].Substring(str[0].IndexOf(" = ") + 3); 
       string database = str[1].Substring(str[1].IndexOf(" = ") + 3); 
       string userid = str[2].Substring(str[2].IndexOf(" = ") + 3); 
       string password = str[3].Substring(str[3].IndexOf(" = ") + 3); 

       rpt.Load(Server.MapPath("~/Engineering/Reports/Report.rpt")); 

       for (int i = 0; i < rpt.DataSourceConnections.Count; i++) 
        rpt.DataSourceConnections[i].SetConnection(server, database, userid, password); 
       rpt.SetParameterValue(0, ID); 

       rpt.ExportToHttpResponse(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, HttpContext.Current.Response, true, "Report"); 
      } 
      catch (Exception ex) 
      { 
       return ex.ToString(); 
      } 

     } 
0

グリッドビューをクリスタルレポートに直接エクスポートする方法はありません。

データセットを使用して同じクエリを呼び出し、レポートするデータセットを渡します。

+0

私はidを割り当てたいdatagridイベントはありません。 – thevan

関連する問題