2012-03-21 68 views
0

我想知道爲什麼我的報告不會出現在報告查看器中? 我使用這段代碼從我的主窗體的listview中生成我的報告。Crystal Report將不會出現在Crystal ReportViewer

沒有運行時錯誤,它不會出現在報告查看器中。

public void PrintDVDList(frmMain frmMain) 
     { 
      try 
      { 
       var Report = new rptDVDList(); 
       DataRow row = null; 
       DataSet DS = new DataSet(); 
       DataTable DT = new DataTable(); 

       DS.Tables.Add("tblDVDInventory"); 

       var _with1 = DS.Tables[0].Columns; 
        _with1.Add("ItemCode"); 
        _with1.Add("Title"); 
        _with1.Add("Genre"); 
        _with1.Add("Film"); 
        _with1.Add("YearReleased"); 
        _with1.Add("Classification"); 
        _with1.Add("NumberOfDiscs"); 

       foreach (ListViewItem LVI in frmMain.lvwInventory.Items) 
       { 
        row = DS.Tables[0].NewRow(); 
        row[0] = LVI.Text.ToString(); 
        row[1] = LVI.SubItems[1].Text.ToString(); 
        row[2] = LVI.SubItems[2].Text.ToString(); 
        row[3] = LVI.SubItems[3].Text.ToString(); 
        row[4] = LVI.SubItems[4].Text.ToString(); 
        row[5] = LVI.SubItems[5].Text.ToString(); 
        row[6] = LVI.SubItems[6].Text.ToString(); 

        DS.Tables[0].Rows.Add(row); 
       } 

       var frmReportDVDList = new frmReportDVDList(); 

       Report.SetDataSource(DS.Tables[0]); 
       frmReportDVDList.crvDVDList.ReportSource = Report; 
       frmReportDVDList.crvDVDList.Refresh(); 

      } 
      catch (Exception error) 
      { 
       MessageBox.Show(error.ToString()); 
      }   
     } 

回答

0

試試這個看到..在designer.cs文件中,搜索'this.MasterReport'。你應該看到'this.MasterReport'= false;' 本聲明下的幾行,你會看到下面的代碼行類似下面的一個:

this.StyleSheet.Add(new .StyleSheetRule("font-size font-weight:", "Heading3", "Normal")); 

在此行中,添加floowing代碼,改變yourreport到報表的名稱:

this.ReportStart += new System.EventHandler(this.yourreport_ReportStart); 

編譯代碼並運行它。

0

1. 找出什麼是報表frmReportDVDList設計的表名稱或視圖名稱或xsd。

2.

在你的數據集的表的名稱使用完全相同的名稱。例如,如果在上述步驟中名稱是「dvdtable」,則將該名稱設置爲您的數據集表。

DS.Tables[0].Name="dvdtable"; 

現在應該正常工作。