首先,爲了登錄方便,將數據庫的用戶名和密碼先寫到Web.config中:
<appSettings>
<add key="DBServerName" value="你的數據庫服務器" />
<add key="DBUserID" value="sa" />
<add key="DBPassWord" value="UU1Tc3lzdGVt" />
</appSettings>
然後寫個類來統一驗證登錄
using System.Collections.Generic;
using System.Text;
using System.Configuration;
namespace BLL
{
public class LoginCrystalReport
{
public void Login(CrystalDecisions.CrystalReports.Engine.ReportDocument report)
{
string serverName = ConfigurationManager.AppSettings["ServerName"];
string databasename = ConfigurationManager.AppSettings["DbName"];
string userId = ConfigurationManager.AppSettings["UserID"];
string passWord = ConfigurationManager.AppSettings["Password"];
//Set Database Logon to main report
foreach (CrystalDecisions.Shared.IConnectionInfo connection in report.DataSourceConnections)
{
if (connection.ServerName == serverName)
{
connection.SetLogon(userId, passWord);
}
}
//Set Database Logon to subreport
foreach (CrystalDecisions.CrystalReports.Engine.ReportDocument subreport in report.Subreports)
{
foreach (CrystalDecisions.Shared.IConnectionInfo connection in subreport.DataSourceConnections)
{
if (connection.ServerName == serverName)
{
connection.SetLogon(userId, passWord);
}
}
}
}
}
}
報表做好後,新建一個WEB頁,先拖一個水晶報表查看器,再拖一個水晶報表數據源,這些在VS2005的工具箱中都有,然後將查看器的數據源設置成剛纔拖進來的水晶報表數據源,再將水晶報表數據源的數據源設置成剛纔完成好的報表,這時候切換到代碼,開始編寫代碼:
{
base.OnInit(e);
BLL.LoginCrystalReport logCR = new BLL.LoginCrystalReport();
logCR.Login(this.CrystalReportSource1.ReportDocument);
}