2014-04-23 114 views
0

我正在嘗試製作一個簡單的水晶報表查看器應用程序,我無法讓查看器設置登錄信息。基本上我想要做的就是點擊一個按鈕,它應該打開一個報告。很簡單,我認爲但顯然不是。這裏是我的代碼Crystal Report Viewer不接受登錄信息

private void button1_Click(object sender, EventArgs e) 
    { 
     ConnectionInfo connInfo = new ConnectionInfo(); 
     connInfo.ServerName = "SERVER NAME"; 

     connInfo.DatabaseName = "DATABASE NAME"; 

     connInfo.UserID = "USERNAME"; 
     connInfo.Password = "PASSWORD"; 



     crystalReportViewer1.ReportSource = GetReportSource(connInfo); 
     crystalReportViewer1.RefreshReport(); 
    } 

private ReportDocument GetReportSource(ConnectionInfo connInfo) 
    { 
     ReportDocument document = new ReportDocument(); 
     document.Load("REPORTPATH"); 
     document.SetParameterValue(0, "04/02/2014"); 
     document.SetParameterValue(1, "04/03/2014"); 
     TableLogOnInfos logonInfos = new TableLogOnInfos(); 
     TableLogOnInfo logonInfo = new TableLogOnInfo(); 
     Tables tables; 
     tables = document.Database.Tables; 
     foreach (CrystalDecisions.CrystalReports.Engine.Table table in tables) 
     { 

      logonInfo = table.LogOnInfo; 
      logonInfo.ConnectionInfo = connInfo; 
      table.ApplyLogOnInfo(logonInfo); 

     } 
     return document; 
    } 

最糟糕的是,這種代碼工作正常,在我的電腦之一,但不是我想要的工作的。 再一次,這個代碼完全編譯和工作在我的一臺電腦上,但沒有另一臺,我無法弄清楚爲什麼我的生活。上帝,我希望有人能幫助。

當我運行該程序並單擊按鈕時,它會提示我輸入用戶名和密碼,但是當我輸入它時,它會顯示「登錄失敗」,另一個問題是「數據庫」字段未填充儘管它應該是登錄表單。

回答

-1

好的我解決了這個問題。不完全確定爲什麼這個工作,但我會張貼我在這裏爲後代做了什麼,因爲我找不到能夠幫助我的人。

首先,我在計算機上安裝了Crystal Reports,它給了我這個問題。 (我的公司有2011年的許可證,所以我安裝了2011)

接下來,我打開了報告(使用Crystal Reports 2011程序)並試圖預覽它,它促使我登錄信息,所以我給了登錄信息和讓報告生成預覽。

最後我跑了程序,它的工作!

所以我認爲問題主要是通過安裝水晶報表來解決的,但我認爲仍然有必要進入報表本身,並確保它可以生成預覽。