2012-07-26 31 views
1

這是登錄INFO方法水晶報表詢問密碼,客戶端系統

private void SetLogonInfo() 
    { 
     try 
     { 
      LogInfo.ConnectionInfo.ServerName = "ServerName"; 
      LogInfo.ConnectionInfo.UserID = "UserID"; 
      LogInfo.ConnectionInfo.Password = "Password"; 
      LogInfo.ConnectionInfo.DatabaseName = "DataBase"; 
     } 

     catch (Exception ex) 
     { 
      MessageBox.Show(ex.Message); 
     } 

    } 

要創建報告中,我用這個代碼

  crystalReportViewer1.ReportSource = null; 
      rptdoc = new ReportDocument(); 
      rptdoc.Load("REPORTS\\TC.rpt"); 
      crystalReportViewer1.SelectionFormula =selectionFormula; 
      crystalReportViewer1.ReportSource = rptdoc; 
      rptdoc.Database.Tables[0].ApplyLogOnInfo(LogInfo); 

它運作良好,在服務器系統中,但如果我在使用此客戶端系統,它要求輸入用戶名和密碼。我正在使用Crystal Reports 10.此外,有時它還要求服務器系統中的用戶名密碼。如何解決這個問題?

回答

1

你正在做錯的順序。您需要以編程方式進行登錄,然後才能在查看器上加載報告。

此外,我不能強調足夠的,你需要測試你的程序在服務器和測試客戶端機器,然後再釋放給用戶。

+0

感謝您的答覆... u能請給我提供正確的順序..? – 2012-07-26 16:39:01

+0

請給出正確的順序 – 2016-06-09 05:55:48

0

此錯誤的原因是用戶名,密碼錯誤。
檢查用戶名,密碼,並使用下面的代碼:

ReportDocument cryRpt = new ReportDocument(); 
TableLogOnInfos crtableLogoninfos = new TableLogOnInfos(); 
TableLogOnInfo crtableLogoninfo = new TableLogOnInfo(); 
ConnectionInfo crConnectionInfo = new ConnectionInfo(); 
Tables CrTables; 

//This is for Access Database 
crConnectionInfo.ServerName = "" + "" +Application.StartupPath + "\\Database.mdb"; //access Db Path 
crConnectionInfo.DatabaseName = "" + "" + Application.StartupPath + "\\Database.mdb";//access Db Path 
crConnectionInfo.UserID = "ADMIN"; 
crConnectionInfo.Password = Program.DBPassword; //access password 

//This is for Sql Server 
crConnectionInfo.UserID = Program.Severuser; //username 
crConnectionInfo.Password = Program.Password;//password 
crConnectionInfo.ServerName = Program.server;//servername 
crConnectionInfo.DatabaseName = Program.database;//database 

string path = "" + Application.StartupPath + "\\supportingfiles\\Invoice.rpt"; 
cryRpt.Load(path); 
CrTables = cryRpt.Database.Tables; 
foreach (CrystalDecisions.CrystalReports.Engine.Table CrTable in CrTables) 
{ 
    crtableLogoninfo = CrTable.LogOnInfo; 
    crtableLogoninfo.ConnectionInfo = crConnectionInfo; 
    CrTable.ApplyLogOnInfo(crtableLogoninfo); 
} 

cryRpt.SetParameterValue("invoiceno", Program.billno); 

crystalReportViewer1.ReportSource = cryRpt; 
crystalReportViewer1.Refresh();