2012-02-16 1 views
0

ボタン(またはreportViewerで指定されたコントロール以外のコントロール)をクリックして、Excel/PDF/Wordへのエクスポートをトリガーすることは可能ですか? PerformClickを実行してPrintおよびPrintLayoutをトリガーすることはできましたが、エクスポートでは機能しません(reportViewersツールバーの15番目のインデックスですが、エクスポートで同じことを試しても何も起こりません)。これは、エクスポートがDropDownButtonであるためですか?その場合、アイテムにアクセスするにはどうすればいいですか(名前とインデックス番号でtoolBar内のすべてのアイテムをリストしましたが、エクスポートDropDownButtonはリストされていますがアイテムはありません)。C#WinFormsでreportViewerのToolBar関数をトリガーする

ありがとうございました

答えて

0

から変換することができるかどう

次のポストに受け入れられた解決策は、あなたを助けるかもしれません。あなたはボタンコントロール(またはその他の必要な)を作成

その後
private T FindToolStrip<T>(Control control) where T : System.Windows.Forms.Control 
    { 
     if (control == null) 
     { 
      return null; 
     } 
     else if (control is T) 
     { 
      return (T)control; 
     } 
     else 
     { 
      T result = null; 

      foreach (Control embedded in control.Controls) 
      { 
       if (result == null) 
       { 
        result = FindToolStrip<T>(embedded); 
       } 
      } 

      return result; 
     } 
    } 

し、その中にこのコードを追加します:これは、その関数のC#バージョンである

  ToolStrip ts = new ToolStrip(); 
      ts = FindToolStrip<ToolStrip>(this.reportViewer1); 
      ts.Items[13].PerformClick(); 

項目13は、印刷プレビューでレポートビューアのツールストリップ上のすべてのボタンのインデックスを取得し、アイテムの名前を書き出すことができます(合計21個ありますが、一部はセパレータまたはラベルです)。このコードを使用して、それらのいずれかをトリガーすることができます(エクスポートを除いて、エクスポートはドロップダウンボタンで、通常のものではありません)。

  Warning[] warnings; 
      string[] streamids; 
      string mimeType; 
      string encoding; 
      string extension; 
      string path = " "; 
      DialogResult dr= saveFileDialog1.ShowDialog(); 
      path = saveFileDialog1.FileName;    

      byte[] bytes = reportViewer1.LocalReport.Render("Excel", null, out mimeType, out encoding, out extension, out streamids, out warnings); 

      FileStream fs = new FileStream(path + ".xls", FileMode.Create); 
      fs.Write(bytes, 0, bytes.Length); 
      fs.Close(); 

ここでも、あなたはbutton_Click方法または類似した何かにそれを置くことができます:あなたが興味を持っている場合、これは、.xlsファイルに表示されたレポートをエクスポートするコードです。私は他の拡張子(.pdfまたは.doc)で試してみることはできませんが、うまくいくはずです。保存しようとしているファイルの拡張子をパス文字列に追加する必要があります。そうしないと、作成したファイルを開くことができません。 問題の解決に役立つことを願っています。

0

私は同じ質問がありました。ツールバーと印刷プレビューボタンにアクセスする方法を見ることができるように、コードの一部を投稿できますか?たぶんそれを見て、私は他のものを把握することもできます。あなたはあなたが投稿問題のようなFindToolbar機能を必要とツールバーにアクセスするにはVB.NET

Programmatically trigger ReportViewer Toolbar controls

関連する問題