2011-12-20 115 views
0

我們正在爲我們的應用程序使用CR與Visual Studio 2010。CR with visual studio 2010登錄框

以下是我用於從Webservice獲取的對象集合生成報告的代碼。

SampleReport report = new SampleReport(); 
report.SetDataSource(response.Items); 

然後在WPF級別,我給報表分配報表源代碼如下。

this.reportViewer.ViewerCore.ReportSource = report; 

問題是它問我登錄憑證。我認爲這很有趣,所有生成報告的信息都可以從指定爲數據源的集合中找到。

讓我知道這些證書可能是什麼。或者如何覆蓋行爲。

注:設計者從xml設計了.rpt文件,即WCF服務提供的。

我在論壇中的解決方案向四周看了看,他們沒有除下列很多信息:

TableLogOnInfos crtableLogoninfos = new TableLogOnInfos(); 
       TableLogOnInfo crtableLogoninfo = new TableLogOnInfo(); 
       ConnectionInfo crConnectionInfo = new ConnectionInfo(); 
       CrystalDecisions.CrystalReports.Engine.Tables CrTables ; 


       crConnectionInfo.ServerName = "YOUR SERVER NAME"; 
       crConnectionInfo.DatabaseName = "YOUR DATABASE NAME"; 
       crConnectionInfo.UserID = "YOUR DATABASE USERNAME"; 
       crConnectionInfo.Password = "YOUR DATABASE PASSWORD"; 

       CrTables = report.Database.Tables; 
       foreach (CrystalDecisions.CrystalReports.Engine.Table CrTable in CrTables) 
       { 
        crtableLogoninfo = CrTable.LogOnInfo; 
        crtableLogoninfo.ConnectionInfo = crConnectionInfo; 
        CrTable.ApplyLogOnInfo(crtableLogoninfo); 
       } 

的問題是,我可以理解,如果我將連接到數據庫獲取數據...但從對象收集中獲取數據不應該要求憑證。

回答

0

我之前遇到過這樣的問題。我所做的,以解決這個問題:

  • 在Visual Studio設計確保水晶報表查看器沒有定義
  • 在水晶報表設計器中打開字段資源管理器和數據庫右鍵單擊報表源字段,並確保您已選擇使用設置數據庫位置正確的數據庫位置,也嘗試登錄或註銷服務器

這部分代碼加載報告:

rptDoc.Load("CrystalReport_Test.rpt") 
    rptDoc.SetDataSource(rptDataset) 
    CrystalReportViewer1.ReportSource = rptDoc 
    CrystalReportViewer1.RefreshReport() 

希望這會有所幫助。