水晶报表十二式-----PUSH模式详解

      最近做数据分析要产生各种报表,于是采用了水晶报表,而其中PUSH模式是我们首选的方案。将过程分享给大家。

      我们采用下面的几步使用Push模式执行水晶报表:

  1. 设计一个DataSet

  2. 创建一个.rpt文件同时将其指定给上一步建立的DataSet。

  3. 在aspx页面中拖放一个CrystalReportViewer控件同时将其与前面的rpt文件建立联系。

  4. 在代码中访问数据库并把数据存入DataSet


下面开始具体讲解:

  1.新建一个网站工程,如图:


2 在网站工程中添加一个数据集,如图:



3在数据集的页面中右击添加TableAdapter,选择自己的数据库文件,点击下一步,直到如图:


点击添加,将数据库中的表添加进去(在此我的数据库只有一张表nusers)如图:




4在工程中添加水晶报表文件,

创建 .rpt 文件 :

  a) 使用上面的介绍过的方法创建此文件,唯一的不同就是使用数据集来代替前面的直接连接数据。

  b)建立.rpt文件之后,右击“详细资料”-->"添加/删除数据库“

  c) 在”数据库专家“窗口中,展开”项目数据“(代替以前的OleDb),展开“ADO.Net数据集”--"DataSet1“,选择”Stores“表。

  d) 将”nusers"表添加到“选定的表”中,点击“OK”


如图:


出现创建导航,选择默认即可,确定后出现如下图:


一步步创建,如图:


其中,分组和记录选定可不用选择字段,直接点击完成即可。如图:



5 在aspx页面中拖放一个CrystalReportViewer控件同时将其与前面的rpt文件建立联系。如图:




在其xxx.cs文件中书写代码。

代码如下:

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;


namespace push
{
    public partial class _Default : System.Web.UI.Page
    {

      //建立数据库连接字段
       static  string constr = "Data Source=PPL;Initial Catalog=testdemo;User ID=saData Source=PPL;Initial Catalog=testdemo;User ID=sa;password=sa";


        SqlConnection con = new SqlConnection(constr);


        SqlDataAdapter da;

        //刚才创建的数据集
        DataSet1 ds = new DataSet1();


        protected void Page_Load(object sender, EventArgs e)
        {
            da = new SqlDataAdapter("select * from nusers",con);
            da.Fill(ds, "nusers");
            CrystalReport1 cry = new CrystalReport1();
            cry.SetDataSource(ds);

            //跟页面的控件相互绑定
            CrystalReportViewer1.ReportSource = cry;
        }
    }
}


注意:fill中的表名必须和设计文件中的表名相同!
da.Fill(data);
rd.SetDataSource(data);
则不能正确展示报表的。

当然也可以使用这种方式!
da.Fill(data);
rd.SetDataSource(data.Tables[0]);


6在浏览器中运行显示。如图:



成功,今天的学习就到此吧。此方法不是最优的,只供学习入门使用,算是抛砖引玉吧。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值