2012-04-25 12 views
-3

Crystal Reportsをpdfにエクスポートする際にいくつかの問題があります。私のプログラムはteleneUdaje.rptのロード時にクラッシュし、私はそれが正しい名前であると確信しています。CrystalレポートのエクスポートクラッシュC#

if(txtpath.Text == "")throw new Exception( "Prosímzvoľtecieľovúadresu");

DataSet dt = new DataSet(); 

    string x = nastavenia.adresa_servera(); 
    string y = nastavenia.nazov_databazy(); 
    string z = nastavenia.ponechat_udaje(); 
    string a = nastavenia.sql_meno(); 
    string b = nastavenia.sql_heslo(); 

    SqlConnection databaza = new SqlConnection(); 
    databaza.ConnectionString = "Data Source=" + x + ";Initial Catalog=" + y + ";Persist Security Info=" + z + ";User ID=" + a + "; password=" + b + ""; 
    da.SelectCommand = new SqlCommand("SELECT * FROM tblTepelneUdaje", databaza); 
    dt.Clear(); 
    da.Fill(dt); 


    System.IO.FileInfo info = new System.IO.FileInfo(txtpath.Text.Trim()); 
    string type = info.Extension; 

    CrystalDecisions.Shared.ExportFormatType tp = CrystalDecisions.Shared.ExportFormatType.Excel; 

    switch (type) 
    { 
     case ".pdf": 
      tp = CrystalDecisions.Shared.ExportFormatType.PortableDocFormat; 
      break; 
     case ".doc": 
      tp = CrystalDecisions.Shared.ExportFormatType.WordForWindows; break; 
     case ".rtf": 
      tp = CrystalDecisions.Shared.ExportFormatType.RichText; break; 
     case ".xls": 
      tp = CrystalDecisions.Shared.ExportFormatType.Excel; break; 
     default: MessageBox.Show("Invalid File type you entered"); break; 
    } 

    ReportDocument doc = new ReportDocument(); 
    doc.Load("TeleneUdaje.rpt"); 
    doc.SetDataSource(dt); 
    doc.ExportToDisk(tp, txtpath.Text); 
    MessageBox.Show("Zostava bola úspešne exportovaná"); 

助けてください。

**編集済み

レポートの読み込みに失敗したCrystal Reportsの例外がスローされます。プログラム内では、レポートビューアツールでレポートを表示できるため、ファイルはOKです。

+2

クラッシュのためのTHX?それは例外をスローしますか?何かをディスクに書き込む? –

+0

@AdamVクリスタルレポートの例外をスローするレポートの読み込みに失敗しました – MichalCh

+0

そのレポートに問題があるようです。 Crystal Reportsの経験はありませんが、手動で開き、ファイルにエラーがないかどうかを確認します。 –

答えて

1

私の質問に対する正解が見つかりました。それは、このような.RPTファイルのフルパスを必要とするため 表現

doc.Load("TeleneUdaje.rpt") 

は間違っている:

doc.Load("C:\\report.rpt"); 

どのようなコメントをみんな