现在的位置: 首页 > 综合 > 正文

—(一)水晶报表(CrystalReports)的简单应用(配置及发布)

2013年06月09日 ⁄ 综合 ⁄ 共 3849字 ⁄ 字号 评论关闭

u     Visual studio 2008 自带水晶报表10

u     asp.net网站中的简单应用

u     本次示例目的只是让刚接触水晶报表的朋友掌握其应用,因此示例以简单,简洁,清晰为主,没有连接后台数据库。

      Visual studio 2008新建asp.net网站CrystalReportsDemo如图:

 

 

      右击项目——>添加引用:

 

      添加一个实体类DemoModel.cs

      本网站没有采用任何开发模式,所以类代码应该放到asp.net文件夹App_Code里,可以先在项目里新建此文件夹,也可以在添加类时根据系统提示新建:

 

      DemoModel.cs的内容如下:

using System;

using System.Data;

using System.Configuration;

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;

 

/// <summary>

///DemoModel 一个实体对象

/// </summary>

public class DemoModel

{

       public DemoModel()

       {      }

    public DemoModel(string id,string name)

    {

        this.id = id;

        this.name = name;

    }

    private string id;//编码

 

    public string Id

    {

        get { return id; }

        set { id = value; }

    }

    private string name;//名称

 

    public string Name

    {

        get { return name; }

        set { name = value; }

    }

 

}

 

      右击项目——>添加新项——>Crystal报表

命名为:CrystalReport.rpt 确定后会自动弹出以下提示:

创建新的Crystal Report 文档有三种单选,选择专家有三种:

 

 

      可以选择空报表然后在打开的报表中右键——>报表专家(效果一样),默认使用报表向导,选择专家为标准(一般就会用到),点击确定

 

      项目数据——>.Net对象

看到刚才添加的实体对象DemoModel.cs当然这只是数据源的一种

注:上面这个实体类和水晶报表文件属同一程序集可以找到,当网站采用N层模式开发时,实体类另为一程序集,在这里就不能这样找到了,可以采取别的数据源

      选中DemoModel 添加到右侧如下图:

 

 

      点击下一步对报表具体要显示的字段进行设置

 

这里自己定义报表格式,直接点击完成

 

      左侧可以看到上面有报表头,页眉,详细资料,报表尾,页脚这些都为设计报表格式提供方便,在相应区域点击右键可以对其进行设置,当会应用水晶报表之后可以尝试,在这里我们只对详细资料区,进行简单设置

从右侧,字段资源管理器

数据库字段,找到刚才添加的数据源DemoModel,可以看到对象的属性,将要显示的字段拖到左侧 详细资料区如图:

 

      当然这里的显示的样式可以自己定义,大家可以尝试,右键有很多操作

注:此报表并未涉及到变量,所以至此,报表设计完毕,保存

关闭报表窗口,这时项目目录如图:

 

      下面在页面Default.aspx中显示刚刚设计的水晶报表

      从工具箱报表一栏中拖一个可以显示水晶报表的控件

CrystalReportViewer其它工作都可以不做,

Default.aspx页面内的代码如下:

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

<%@ 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>

      Default.aspx.cs页面后置类的内容如下:

using System;

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;

 

//引入命名空间

//用到List,并且有泛型

using System.Collections;

using System.Collections.Generic;

using CrystalDecisions.Shared;

using CrystalDecisions.CrystalReports.Engine;

 

public partial class _Default : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

        //创建报表文档

        ReportDocument myReport = new ReportDocument();

        //取到报表文件物理路径

        string reportPath = Server.MapPath("~/CrystalReport.rpt");

        //加载报表文件

        myReport.Load(reportPath);

        //***************************************************************

        /*由于没有连接数据库,所以我们为了显示效果来自己添加一个数据源

         在报表中我们用到了实体对象,在这里我们自己手动加入以下几个对象

         并装入一个List集合中,当然以后要是连接数据库也是主要修改数据源

         其它不用太大改动*/

        DemoModel dm1 = new DemoModel("10001","demo1");

        DemoModel dm2 = new DemoModel("10002", "demo2");

        DemoModel dm3 = new DemoModel("10003", "demo3");

        DemoModel dm4 = new DemoModel("10004", "demo4");

        List<DemoModel> dmList = new List<DemoModel>();

        dmList.Add(dm1);

        dmList.Add(dm2);

        dmList.Add(dm3);

        dmList.Add(dm4);

        //至此数据源对象添加完毕

        //*****************************************************************

 

        //为新的报表文档设置数据源

        myReport.SetDataSource(dmList);

        //将创建的新的报表文档绑定

        this.CrystalReportViewer1.ReportSource = myReport;

        this.CrystalReportViewer1.DataBind();

    }

}

 

抱歉!评论已关闭.