1:先建個DATAset或datatable文件,作為數據源。
2:因為在加載數據報表的時候要驗證,如果我們做很多報表的時候,
就可以把這些驗證信息作為一個實體類,需要這4個字段信息( serverName, dbName, user, pwd;),
這4個字段的具體內容可以在config文件那邊獲取。
實體類如下:
public class ServerInfo
{
private string serverName, dbName, user, pwd;
public string Pwd
{
get { return pwd; }
set { pwd = value; }
}
public string User
{
get { return user; }
set { user = value; }
}
public string DbName
{
get { return dbName; }
set { dbName = value; }
}
public string ServerName
{
get { return serverName; }
set { serverName = value; }
}
}
後臺代碼如下:
using CrystalDecisions.Shared;//负责解释TableLogOnInfo类
using CrystalDecisions.CrystalReports.Engine;//负责解释ReportDocument类private void
using Bll;
using Model;
public partial class Report : System.Web.UI.Page
{
ServerInfoManager serverInfoManager = new ServerInfoManager();
ServerInfo serverInfo;
CollectQuestionManager collectQuestionManager = new CollectQuestionManager();
protected void Page_Load(object sender, EventArgs e)
{
//这里必须事先申明一个ReportDocument对象 Report,同时加载数据报表
ReportDocument oRpt = new ReportDocument();
//获取.rpt文件真实路径
string path2;
path2 = new System.Web.UI.Page().Server.MapPath(".") + @"/rpt/PrintReportOK.rpt";
oRpt.Load(path2);
//从web.config中获取logOnInfo参数信息
//设置logOnInfo参数
TableLogOnInfo logOnInfo = new TableLogOnInfo();
serverInfo = serverInfoManager.GetServerInfo();
logOnInfo.ConnectionInfo.ServerName = serverInfo.ServerName;
logOnInfo.ConnectionInfo.DatabaseName = serverInfo.DbName;
logOnInfo.ConnectionInfo.UserID = serverInfo.User;
logOnInfo.ConnectionInfo.Password = serverInfo.Pwd;
oRpt.Database.Tables[0].ApplyLogOnInfo(logOnInfo);
try
{
DataSet ds = collectQuestionManager.GetCollectQuestionByDate("", "", "");
oRpt.SetDataSource(ds);
oRpt.Database.Tables[0].SetDataSource(ds.Tables[0]);
CrystalReportViewer1.ReportSource = oRpt;
CrystalReportViewer1.DataBind();
}
catch
{
Response.Write("dataset error!");
}
string nameid = "";
if (Request["ID"] != null)
{
nameid = Request["id"];
}
CrystalReportViewer1.ReportSource = oRpt;
oRpt.RecordSelectionFormula = "{CollectQuestion.ID} = "+ nameid ;
}
}