查看:1986|回复:0
C#水晶报表中推模式(PUSH)的具体操作方法发表时间:2013-01-06 13:44:33

洗心、革面。

0分享0主题0帖子

学徒一级

(初出茅庐)

在推模式中编程组装的Dataset里的SQL语句中的字段要与水晶报表里的SQL语句字段一致。简单的说,推模式中的水晶报表是个模板,把在设计器里报表的格式设好后,再组装DataSet就可以生成报表了。


【WEB方式下】

using CrystalDecisions.Shared;
using CrystalDecisions.CrystalReports.Engine;
using System.Data.SqlClient;
      protected void Button_push_Click(object sender, EventArgs e)
   {
       string sql = "Select T1, T2, T3 FROM T where T1=''a''";
       string DBConfig_sql [email protected]"Data Source=SYWZSWL\SQLEXPRESS;Initial Catalog=Test;User ID=sa;Password=123456";
       DataSet ds = new DataSet();
           SqlConnection sqlCon = new SqlConnection(DBConfig_sql);
           SqlCommand sqlCmd = new SqlCommand(sql, sqlCon);
           SqlDataAdapter sqlAd = new SqlDataAdapter();
           sqlAd.SelectCommand = sqlCmd;
           sqlAd.Fill(ds, "sql");
       CrystalReportSource1.ReportDocument.Load(Server.MapPath("CrystalReport.rpt"));  
       //注意此处必需指明Dataset中的表的名称,否则会提示“您请求的报表需要更多信息.”
CrystalReportSource1.ReportDocument.SetDataSource(ds.Tables["sql"]);
//{?}中的参数可以不用赋值,即使赋了值也不起作用。
      // CrystalReportSource1.ReportDocument.ParameterFields["Parm"].CurrentValues.AddValue("1234567");
       CrystalReportSource1.ReportDocument.ParameterFields["Title"].CurrentValues.AddValue("这时推模式的报表样例!");
       CrystalReportSource1.DataBind();

       CrystalReportViewer1.ReportSource = CrystalReportSource1;
        CrystalReportViewer1.DataBind();
   }
【FORM方式下】
private void Form1_Load(object sender, EventArgs e)
       {
           //推模式
           string sql = "Select T1, T2, T3 FROM T where T1=''a''";
           string DBConfig_sql = @"Data Source=SYWZSWL\SQLEXPRESS;Initial Catalog=Test;User ID=sa;Password=123456";
           DataSet ds = new DataSet();
           SqlConnection sqlCon = new SqlConnection(DBConfig_sql);
           SqlCommand sqlCmd = new SqlCommand(sql, sqlCon);
           SqlDataAdapter sqlAd = new SqlDataAdapter();
           sqlAd.SelectCommand = sqlCmd;
           sqlAd.Fill(ds, "sql");
           crystalReport1.Load(Application.StartupPath + "CrystalReport.rpt");
           crystalReport1.SetDataSource(ds.Tables["sql"]);
//{?}中的参数可以不用赋值,即使赋了值也不起作用。
           // CrystalReportSource1.ReportDocument.ParameterFields["Parm"].CurrentValues.AddValue("1234567");
           crystalReport1.ParameterFields["Title"].CurrentValues.AddValue("这时推模式的报表样例!");

           crystalReportViewer1.ReportSource = crystalReport1;
}


您需要登录以后才可以回帖    登录|注册