博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

水晶报表-入门

Posted on 2011-01-23 20:42  Adam哥  阅读(597)  评论(1编辑  收藏  举报

水晶报表有pull及push两种模式,本文采用web工程中的push模式;

报表模拟产品定单,涉及到Product,ProductOrder,Client三张表。

1.创建一个设计时的dataset,在Database Expert中建立表之前的链接关系,如下图:

2.创建一个.rpt文件并指向我们前面创建的dataset,名为PullCrystalReport3.rpt 如下图:



3.在.aspx页面上放置Crystal Report Viewer控件

 

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Pull3.aspx.cs" Inherits="Pull3" %>

<%@ Register Assembly="CrystalDecisions.Web, Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"
    Namespace="CrystalDecisions.Web" TagPrefix="CR" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <CR:CrystalReportViewer ID="CrystalReportViewer1" runat="server" AutoDataBind="true" />
    </div>
    </form>
</body>
</html>


4.在code behind page中,加入如下代码:

 

 

   DataSet ds = new DataSet();
        SqlDataAdapter da = new SqlDataAdapter();

        string connectionStr = "Data Source=.;Initial Catalog=CrystalReport;Persist Security Info=True;User ID=sa;Password=111";
        SqlConnection connection = new SqlConnection(connectionStr);
        //设置数据源
        da = new SqlDataAdapter("select * from Client", connection);
        da.Fill(ds, "Client");

        da = new SqlDataAdapter("select * from Product", connection);
        da.Fill(ds, "Product");

        da = new SqlDataAdapter("select * from ProductOrder", connection);
        da.Fill(ds, "ProductOrder");

        //设置报表文档
        string reportPath = Server.MapPath("~/PullCrystalReport3.rpt");
        ReportDocument rpt = new ReportDocument();
        rpt.Load(reportPath);
        rpt.SetDataSource(ds);

        //为CrystalReportViewer指定数据源
        CrystalReportViewer1.ReportSource = rpt;

5.最终效果如下:

 

 

 

 

counter