C# 水晶報表打印

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 ;
    }

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值