Crystal Report制作

2023-11-22 18:50
文章标签 制作 report crystal

本文主要是介绍Crystal Report制作,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文主要划分为以下六部分:

一、Crystal Report for .NET 的功能

二、Crystal Report总体结构

三、报表数据访问执行模式

四、报表类型

五、Crystal Report 设计器的布局

六、Crystal Report 的具体实例

 

最近项目接近尾声,应要求总结了一下,为了对在.net环境下开发报表的程序员新手一些帮助,同时也为给新人培训做一次文档准备。

    相信在大部分的应用程序中报表都是程序员头疼的问题。但是在.net环境下包含了功能强大的报表工具: Crystal Report。它能很好的与数据库交互,做出各种漂亮的报表和分析图表.它能良好地替开发人员排忧解难。如下图:

 

    从1993年开始,Crystal Report 就是Visual Studio 套件中的一部分。目前实际上已成为

Visual Studio.NET 中的报表标准,在Windows 报表编写领域中居于领先地位,推动着Web报表的未来发展。最新的Visual Studio.NET 以集成开发环境(IDE)中整和了Crystal Report9.0,从而增强了Visual Studio.NET 的开发功能, Crystal Report 为开发人员提供了尽可能的API。

一、Crystal Report for .NET 的功能

通过将Crystal Report 的报表处理功能整和到自己的数据库应用程序中,Windows应用程序和Web开发人员可以节省开发时间来满足用户的需求。Crystal Report 支持大多数流行的开发语言,可以方便的在任何应用程序中添加报表。

    具体来说,Crystal Report的功能有以下几点:

 1、全面的数据库访问:

  Crystal Report 中包括了超过35中数据源驱动,可以访问一种XML、企业和关系型数据库。

2、广泛的设计格式与设计:

  通过Crystal Report,用户可以将数据库转换为高度交互性内容。可以从100多中格式选项中进行选择、包括参数、映射、交叉表和超级链接、用以强化报表的冲击力。

3、强大的图表设计功能:

  Crystal Report 可以在报表中包含多彩的、易读的图表(提供了非常丰富的报表类型,如:条形图、折线图、面积图、饼图、甘特图、股票图等)。

4、灵活的应用集成技术:

  Crystal Report 带有灵活的Java、COM和.NET SDK,以及可内嵌的Report Application Server,可将报表与企业Web应用紧密地集成在一起。通过使用Crystal Report 的"零"客户端浏览器控制,能够为最终端拥护提供丰富的报表交互、创建和修改功能。

5、强大的报表导出:

  Crystal Reprort 的所有的报表都可以导出多种不同的格式:包括XML、PDF、HTML、和Microsoft Excel。

二、Crystal Report总体结构

展示报表具有两层结构的Crystal Report需要:

界面:

界面仅需使用Winform窗体或者Web程序中使用浏览器。

后台:

1、Crystal Report Engine (CREngine.dll)

将数据与报表文件合并、将数据输出为不同的格式,将Crystal Report转为传到.aspx页中的简洁明了的HTML.

2、Crystal Report Designer (CRDesigner.dll)

使用Crystal Report Designer可以制作报表,可以设计标题、插入数据、公式、表格、次级报告等。

3、The .rpt Report file

将一份报表应用到你的应用程序中的第一步是使用Crystal Report Designer创建报表。但是如果已经有了一些现成的样本,你现在就可以用它。

4、The Data Source

.rpt文件获取数据的方式取决于你所选用的方法。你可以选择制作Crystal Report以获取数据而无须手工写任何代码,也可以选择绑定你的dataset并将其传入报表文件。

5、Crystal Report Viewer

Crystal Report Viewer是一个能够插入页中的容器(.net中习惯称为控件)。

三、报表数据访问执行模式

1、拉模型 Pull Model

在拉模型中,驱动程序将连接到数据库并根据需要将数据“拉”进来。使用这种模型时,与数据库的连接和为了获取数据而执行的 SQL 命令都同时由 Crystal Reports 本身处理,不需要开发人员编写代码。如果在运行时无须编写任何特殊代码,则使用拉模型。

2、推模型 Push Model

相反,推模型需要开发人员编写代码以连接到数据库,执行 SQL 命令以创建与报表中的字段匹配的记录集或数据集,并且将该对象传递给报表。该方法使您可以将连接共享置入应用程序中,并在 Crystal Reports 收到数据之前先将数据筛选出来。

四、报表类型

Crystal Report Designer可以是独立于解决方案的报表外,也可是装载包含于解决方案方案之中的报表。

1、Strongly-typed Report :

当在方案中加入一个报表时,该报表就成为一个Strongly-typed Report。在这种情况下,你可以直接创建报表实例(可以减少若干代码),可以将其隐藏。当然你可以点击Solution Explorer中的”show all files”来显示它。

2、Un-Typed Report :

不包含在方案中的报表即Un-Typed Report。在这种情况下,必须创建一个Crystal Report Engine的''Report Document''对象并将报表手工装载进去。

五、Crystal Report 设计器的布局

首先,在Visual Studio.NET 的一个工程中添加一个向 Windows 或 Web 窗体发布数据的 Crystal 报表文件:

 

添加成功之后,打开该报表:

 

从上图可以看到设计器的完整布局。

1、字段资源管理器:

 列出该报表所有的字段,如:使用的数据库字段、参数字段、公式字段等。可以在此修改和删除字段对象。

2、主报表窗口:

 用来在报表窗口中显示主报表。对于包含子报表的报表,有主报表窗口和对每个的深化(通过双击)的子报表有一个

 子报表窗口。可以通过右击报表窗口的任何空白位置来启动报表快捷菜单。

3、水晶报表主工具栏:

 包括记录选择、分类和文本对象格式化图标。可以对整个工具栏移动或改变大小。

4、水晶报表插入工具栏:

 可以插入汇总字段、组、子报表、图表和图片的图标。也可以在Crystal Report工具栏中单击鼠标来选择"插入"。

六、Crystal Report 的具体实例

本部分的例子分成两部分:Windows应用程序中的Crystal Report开发;Web应用程序中的Crystal Report开发应用。并且在两种环境下分别介绍拉模型与推模型的例子。

在本部分例子中使用的软件环境:Microsoft Visual Studio 2005;Microsoft SQL Server 2005。数据例子如下:服务器:cotton-b数据库名:lhcy数据库表:ProjectStage

数据表结构:

 

数据:

 

主要功能为统计项目阶段工时数。

1、 如何设计报表文件模版。

1)       增加一个结果集 DataSet1.xsd,并增加表

 

2)       首先在增加一个报表文件 rpt文件

 

3)       使用报表专家,在"项目数据"中选择"ADO。NET数据集",插入"ProjectStage"表,在字段选择器上选择要在报表上

 

4)       选择要分组的字段依据

 

5)       选择展示的图表和显示的主题信息

 

最终生成的结果如下。

 

2、Windows应用程序中的Crystal Report开发

   

2.1 拉模型 pull model 的demo

在拉模式中如要在水晶报表中的SQL语句加上条件参数时要用{?参数名}方式给出。

例:“SELECT ProjectID, Manhours FROM ProjectStage Where ProjectID ={?parm}” parm就是参数名.

        private void Form1_Load(object sender, EventArgs e)

        {

            ReportDocument rpt=new ReportDocument();

            rpt.Load(Application.StartupPath + "CrystalReport.rpt");

//SetDatabaseLogon 拉模式中必须用这个方法来设置登录信息,参数一:用户//名;参数二:密码;参数三:服务器;参数四:数据库名

            rpt.SetDatabaseLogon("sa","123456", "cotton-b", "lhcy");

// 给水晶报表传参数,参数一:是参数名,参数二:参数值;

            rpt.SetParameterValue("Parm", 1);

            rpt.SetParameterValue("Title", "拉模型demo");

            // CrystalReportViewer1是水晶报表浏览器,下面是给该浏览器赋上对像

            crystalReportViewer1.ReportSource = rpt;

        }

 

2.2推模型 push model的demo

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

        private void Form1_Load(object sender, EventArgs e)

        {

            CrystalReport1 report = new CrystalReport1();

            string sDBConnetction = "Data Source=cotton-b;Initial Catalog=lhcy;Persist Security Info=True;User ID=sa;Password=123456";

            DataSet1 ds = new DataSet1();

            SqlConnection conn = new SqlConnection(sDBConnetction);

            SqlDataAdapter adapterProjectStage = new SqlDataAdapter

        ("select * from ProjectStage where ProjectID=2", conn);

            adapterProjectStage.Fill(ds, "ProjectStage");

            report.SetDataSource(ds);

report.SetParameterValue("Title", "推模型demo");

            crystalReportViewer1.ReportSource = report;

        }

 

3、Web应用程序中的Crystal Report开发

3.1 拉模型 pull model 的demo

与Winform应用程序的拉模型一样,要在水晶报表中的SQL语句加上条件参数时要用{?参数名}方式给出。

例:“SELECT ProjectID, Manhours FROM ProjectStage Where ProjectID ={?parm}” parm就是参数名.

 

protected void Test_pullmodel (object sender, EventArgs e)

{

// CrystalReport.rpt是水晶报表文件的名称;CrystalReportSource1是从工具箱加到页面上的水晶报表数据源对像。

        CrystalReportSource1.ReportDocument.Load(Server.MapPath("CrystalReport.rpt"));

// SetDatabaseLogon 拉模式中必须用这个方法来设置登录信息,参数一:用户名;参数二:密码;参数三:服务器;参数四:数据库名

CrystalReportSource1.ReportDocument.SetDatabaseLogon("sa","123456", "cotton-b", "lhcy");

//给水晶报表传参数,参数一:是参数名,参数二:参数值;

//CrystalReportSource1.ReportDocument.SetParameterValue("Title", "拉模型的demo");

CrystalReportSource1.ReportDocument.SetParameterValue("Parm", 1);

//绑定水晶报表数据源。

 CrystalReportSource1.DataBind();

// CrystalReportViewer1是水晶报表浏览器,下面是给该浏览器赋上对像

 CrystalReportViewer1.ReportSource = CrystalReportSource1;

 CrystalReportViewer1.DataBind();

}

 

3.2推模型 push model的demo

        string sDBConnetction = "Data Source=cotton-b;Initial Catalog=lhcy;Persist Security Info=True;User ID=sa;Password=123456";

        DataSet1 ds = new DataSet1();

        SqlConnection conn = new SqlConnection(sDBConnetction);

        SqlDataAdapter adapterProjectStage = new SqlDataAdapter("select * from ProjectStage where ProjectID=2", conn);

        adapterProjectStage.Fill(ds, "ProjectStage");

CrystalReportSource1.ReportDocument.Load(Server.MapPath("CrystalReport.rpt"));

CrystalReportSource1.ReportDocument.SetDataSource(ds.Tables["ProjectStage"]);

        CrystalReportSource1.DataBind();

        CrystalReportViewer1.ReportSource = CrystalReportSource1;

        CrystalReportViewer1.DataBind();

 

这篇关于Crystal Report制作的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/412184

相关文章

用Unity2D制作一个人物,实现移动、跳起、人物静止和动起来时的动画:中(人物移动、跳起、静止动作)

上回我们学到创建一个地形和一个人物,今天我们实现一下人物实现移动和跳起,依次点击,我们准备创建一个C#文件 创建好我们点击进去,就会跳转到我们的Vision Studio,然后输入这些代码 using UnityEngine;public class Move : MonoBehaviour // 定义一个名为Move的类,继承自MonoBehaviour{private Rigidbo

OpenStack离线Train版安装系列—0制作yum源

本系列文章包含从OpenStack离线源制作到完成OpenStack安装的全部过程。 在本系列教程中使用的OpenStack的安装版本为第20个版本Train(简称T版本),2020年5月13日,OpenStack社区发布了第21个版本Ussuri(简称U版本)。 OpenStack部署系列文章 OpenStack Victoria版 安装部署系列教程 OpenStack Ussuri版

OpenStack镜像制作系列5—Linux镜像

本系列文章主要对如何制作OpenStack镜像的过程进行描述记录 CSDN:OpenStack镜像制作教程指导(全) OpenStack镜像制作系列1—环境准备 OpenStack镜像制作系列2—Windows7镜像 OpenStack镜像制作系列3—Windows10镜像 OpenStack镜像制作系列4—Windows Server2019镜像 OpenStack镜像制作

OpenStack镜像制作系列4—Windows Server2019镜像

本系列文章主要对如何制作OpenStack镜像的过程进行描述记录  CSDN:OpenStack镜像制作教程指导(全) OpenStack镜像制作系列1—环境准备 OpenStack镜像制作系列2—Windows7镜像 OpenStack镜像制作系列3—Windows10镜像 OpenStack镜像制作系列4—Windows Server2019镜像 OpenStack镜像制作系

OpenStack镜像制作系列2—Windows7镜像

本系列文章主要对如何制作OpenStack镜像的过程进行描述记录 CSDN:OpenStack镜像制作教程指导(全) OpenStack镜像制作系列1—环境准备 OpenStack镜像制作系列2—Windows7镜像 OpenStack镜像制作系列3—Windows10镜像 OpenStack镜像制作系列4—Windows Server2019镜像 OpenStack镜像制作系列

OpenStack镜像制作系列1—环境准备

本系列文章主要对如何制作OpenStack镜像的过程进行描述记录 CSDN:OpenStack镜像制作教程指导(全) OpenStack镜像制作系列1—环境准备 OpenStack镜像制作系列2—Windows7镜像 OpenStack镜像制作系列3—Windows10镜像 OpenStack镜像制作系列4—Windows Server2019镜像 OpenStack镜像制作

CSDN:OpenStack镜像制作教程指导(全)

本系列文章主要对如何制作OpenStack镜像的过程进行描述记录,涉及基本环境准备、常见类型操作系统的镜像制作。 让你可以从零开始安装一个操作系统,并支持个性化制作OpenStack镜像。 CSDN:OpenStack镜像制作教程指导(全) OpenStack镜像制作系列1—环境准备 OpenStack镜像制作系列2—Windows7镜像 OpenStack镜像制作系列3—Windows

docker学习系列(四)制作基础的base项目镜像--jdk+tomcat

前面已经完成了docker的安装以及使用,现在我们要将自己的javaweb项目与docker结合 1.1准备jdk+tomcat软件 ​​我下载了apache-tomcat-7.0.68.tar.gz和jdk-7u79-linux-x64.tar.gz,存储于Linux机器的本地目录/usr/ect/wt/下(利用xshell上传)。利用linux命令 tar -zxvf apache-tom

选项卡制作问题--折磨了我一整天,记录下来

看老曹的html+css课程,学习html+css基础,讲到制作选项卡,以京东商城的选项卡为例,效果如下: 看着他做出来很简单,结果自己做花了2个多小时才有个样子,效果是这样的: 内部代码如下 <!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-