CrystalReport水晶报表详细教程

合集下载

水晶报表的使用

水晶报表的使用

3.3 Pull模式的使用
首先创建rpt文件,并使用水晶报表设计接 口设置一些必须的数据连接。 拖放一个 CrystalReportViewer控件至 aspx页面,设置它的属性指定我们上一步 创建的.rpt文件。 在代码中调用DataBind方法。
创建 .rpt 文件:
1)
2) 3) 4) 5)
使用Pull模式导出报表
private void btnOutput_Click(object sender, System.EventArgs e) { CrystalReport1 myReport = new CrystalReport1(); CrystalDecisions.Shared.DiskFileDestinationOptions DiskOpts = new CrystalDecisions.Shared.DiskFileDestinationOptions(); myReport.ExportOptions.ExportDestinationType = CrystalDecisions.Shared.ExportDestinationType.DiskFile; myReport.ExportOptions.ExportFormatType = CrystalDecisions.Shared.ExportFormatType.PortableDoc Format; DiskOpts.DiskFileName = "c:\\Output.pdf"; myReport.ExportOptions.DestinationOptions = DiskOpts; myReport.Export(); }
6)
7) 8)
在右击“解决方案游览器”,在弹出的菜单中选择“添加” --“添加新项”-->“Crystal Report” 在“Crystal Report 库”中选择“作为空白报表”单选按 钮,最后单击“确定”。 出现水晶报表设计器。 右击报表中的“详细资料区”,选择“数据库”->“添加/ 删除数据库..." 在弹出的“数据库专家”中,扩展“OLE DB(ADO)”选项, 此时会弹出另外一个“OLE DB(ADO)”窗口。 在 "OLE DB (ADO)" 弹出窗口中,选择 "Microsoft OLE DB Provider for SQL Server" 然后 "Next" 指定连接的信息(选择Pubs库) 单击“下一步”,最后单击“完成”按钮。

水晶报表实验

水晶报表实验
• DataSet,同时将它传送至报表。在这种情况下, 通
四、 • 过使用连接共享以及限制记录集合的大小,可以使 实验作业 用
• 报表性能最大化。
5
三、实验内容及步骤
一、 实验目的

3.2 Pull模式的使用
• 首先创建rpt文件,并使用水晶报表设 二、 计接口设置一些必须的数据连接。
实验环境
• 拖放一个CrystalReportViewer控件至 三、 aspx 页面,设置它的属性指定我们上 实验步骤 一步创建的.rpt文件。
实验目的

新建Windows项目
二、 • 添加CrystalReportViewer 控件
• 实验环境 添加“选择报表”按钮
• 添加按钮响应事件
三、
实验步骤
四、 实验作业
3
三、实验内容及步骤
一、 • 实验目的 •
• • 二、 实验环境 • •
三、 • 实验步骤

• 四、 • 实验作业
2Web窗体中水晶报表的使用 结构 – 客户端: 客户端仅需要一个可以访问嵌入aspx页面报表的游览器就可以了
10
三、实验内容及步骤
一、 实验目的

3.3 使用Push模式
• 设计一个DataSet
二、 • 创建一个.rpt文件同时将其指定给上一步建 实验环境 立的DataSet。
• 在aspx页面中拖放一个CrystalReportViewer
三、 实验步骤
控件同时将其与前面的rpt文件建立联系。
• 在代码中访问数据库并把数据存入DataSet
四、 • 调用DataBind方法。
实验作业
11
三、实验内容及步骤

C#.NET下使用水晶报表

C#.NET下使用水晶报表

1。

第一步是添加新项CrystalReport12。

在CrystalReport1.rpt面页右键选择:”数据库” ”添加/删除数据库”出现下面对话框:然后点开OLE DB(ADO)的加号,将弹出选择数据库的对话框其中”项目数据”里面的”当前连接”显示的就是OLE DB(ADO)的连接,这样就可以将表添加到右边的”选定的表”中了(切记:不要既从”OLE DB”中选表或命令又从”当前连接”中选,如果你用了数据集,也是一样的道理,否则全提示出”登陆失败”的错误!)3。

字段资料管理器里面”数据库字段”里把字段直接拖到CrystalReport.rpt里面了.布置好布局.4。

回到WebForm1.aspx页面,选择控件CrystalReportViewer将其放到页面上。

5。

代码using CrystalDecisions.Shared;using CrystalDecisions.CrystalReports.Engine;在WebForm1.aspx.cs的Form_Load里面添加代码:TableLogOnInfo logOnInfo = new TableLogOnInfo();ReportDocument rpdMy0= new ReportDocument();logOnInfo.ConnectionInfo.ServerName = "NNN";logOnInfo.ConnectionInfo.Password="dong";logOnInfo.ConnectionInfo.DatabaseName="Lab";erID = "sa";String path = Server.MapPath("CrystalReport2.rpt");rpdMy0.Load(path);rpdMy0.Database.Tables[0].ApplyLogOnInfo(logOnInfo);CrystalReportViewer1.ReportSource = rpdMy0;其中:TableLogOnInfo类是:提供属性,以便检索和设置表连接选项.它有一个连接的属性ConnectionInfo,用来设置与数据库的连接.如上面的ServerName等.生成一个报表文档对象将前面我们做好的那个CrystalReport1.rpt赋给它.在这里要注意的是Database属性!然后把报表对象做为CrystalReportViewer1的数据源.或者,获得数据库的方法改为直接从数据库获得DataSetusing System.Data.SqlClient;using System.Collections.Specialized;string strConn=System.Configuration.ConfigurationSettings. AppSettings["DB"].ToString();using (SqlConnection conn = new SqlConnection(strConn)) {SqlDataAdapter da = new SqlDataAdapter(strSQL,conn); //strSQL是SQL语言"select * from dbo.table1"DataSet ds=new DataSet();da.Fill( ds);CrystalReport1 cr1 = new CrystalReport1();cr1.SetDataSource( ds);CrystalReportViewer1.ReportSource = cr1;}using CrystalDecisions.Shared;using CrystalDecisions.CrystalReports.Engine;在WebForm1.aspx.cs的Form_Load里面添加代码:TableLogOnInfo logOnInfo = new TableLogOnInfo();ReportDocument rpdMy0= new ReportDocument();logOnInfo.ConnectionInfo.ServerName = "NNN";logOnInfo.ConnectionInfo.Password="dong";logOnInfo.ConnectionInfo.DatabaseName="Lab";erID = "sa";String path = Server.MapPath("CrystalReport2.rpt");rpdMy0.Load(path);rpdMy0.Database.Tables[0].ApplyLogOnInfo(logOnInfo);CrystalReportViewer1.ReportSource = rpdMy0;其中:TableLogOnInfo类是:提供属性,以便检索和设置表连接选项.它有一个连接的属性ConnectionInfo,用来设置与数据库的连接.如上面的ServerName等.生成一个报表文档对象将前面我们做好的那个CrystalReport1.rpt赋给它.在这里要注意的是Database属性!然后把报表对象做为CrystalReportViewer1的数据源.或者,获得数据库的方法改为直接从数据库获得DataSetusing System.Data.SqlClient;using System.Collections.Specialized;string strConn=System.Configuration.ConfigurationSettings. AppSettings["DB"].ToString();using (SqlConnection conn = new SqlConnection(strConn)) {SqlDataAdapter da = new SqlDataAdapter(strSQL,conn); //strSQL是SQL语言"select * from dbo.table1"DataSet ds=new DataSet();da.Fill( ds);CrystalReport1 cr1 = new CrystalReport1();cr1.SetDataSource( ds);CrystalReportViewer1.ReportSource = cr1;}using CrystalDecisions.Shared;using CrystalDecisions.CrystalReports.Engine;在WebForm1.aspx.cs的Form_Load里面添加代码:TableLogOnInfo logOnInfo = new TableLogOnInfo();ReportDocument rpdMy0= new ReportDocument();logOnInfo.ConnectionInfo.ServerName = "NNN";logOnInfo.ConnectionInfo.Password="dong";logOnInfo.ConnectionInfo.DatabaseName="Lab";erID = "sa";String path = Server.MapPath("CrystalReport2.rpt");rpdMy0.Load(path);rpdMy0.Database.Tables[0].ApplyLogOnInfo(logOnInfo);CrystalReportViewer1.ReportSource = rpdMy0;其中:TableLogOnInfo类是:提供属性,以便检索和设置表连接选项.它有一个连接的属性ConnectionInfo,用来设置与数据库的连接.如上面的ServerName等.生成一个报表文档对象将前面我们做好的那个CrystalReport1.rpt赋给它.在这里要注意的是Database属性!然后把报表对象做为CrystalReportViewer1的数据源.或者,获得数据库的方法改为直接从数据库获得DataSetusing System.Data.SqlClient;using System.Collections.Specialized;string strConn=System.Configuration.ConfigurationSettings. AppSettings["DB"].ToString();using (SqlConnection conn = new SqlConnection(strConn)) {SqlDataAdapter da = new SqlDataAdapter(strSQL,conn);//strSQL是SQL语言"select * from dbo.table1"DataSet ds=new DataSet();da.Fill( ds);CrystalReport1 cr1 = new CrystalReport1(); cr1.SetDataSource( ds);CrystalReportViewer1.ReportSource = cr1;}。

Crystal Report操作说明

Crystal Report操作说明

a. Report Header:此區內容只會顯示在報表第一頁最上面,一般都設為隱藏(Hide),隱藏方式為在Report Header按下滑鼠右鍵選擇[Hide(Drill-Down OK)]Select Data Source視窗後,點選[Browse]按鈕,畫面會出現視窗,此時選擇TTX檔案點選滑鼠右鍵會出現功能表,選擇[New]欄位輸入該參數的名稱後點選[OK]按鈕,此時Field Explorer新增的參數,如下圖此時將此參數拖拉到要放置的位址,即完成此參數的新增,稍後會說明如何透過程式傳選擇要新增的欄位拖曳到Detail 欄位內,即完成報表欄位新增Group的欄位及排序方式,之後按確定,個區塊。

Group Header內可放置GroupGroup Footer內可放置Group結束時所需顯示的資料,如小計Subtotal,Grandtotal,Summary名稱後,按確定後Subtotalubtotal 自動新增到因為是作小計的功能,所以只能選擇資料型態為Number按確定後Subtotalubtotal 自動新增到主要功能為依照欄位值及Group作資料總計、判斷最大值及最小值、統計個數等,增Group名稱後,按確定後Subtotalubtotal 自動新增到的功能主要為資料分開產生但是須顯示到同一報表上或處理時所使用,操作方如欲將入現有報表,則點選[Choose a report],然後點選[Browse]立新報表,則點選[Create a subreport],然後輸入Report Name,點選,此時畫面出現[Subreport Export]視窗,如下圖[Database]欄位,選擇要加入subreport的TTX,然後按[Add]新增。

新增完後,進行下一步,如下圖選擇要在subreport顯示的欄位,按下[Add]後新增即可,完成後按[OK]crystal report ActiveX元件:點選功能表[專案]-[設定引用項目],將[Crystal Report 8。

WinForm中使用CrystalReport水晶报表——基础,分组统计,自定义数据源

WinForm中使用CrystalReport水晶报表——基础,分组统计,自定义数据源

WinForm中使⽤CrystalReport⽔晶报表——基础,分组统计,⾃定义数据源开篇本篇⽂章主要是帮助刚开始接触CrystalReport报表的新⼿提供⼀个循序渐进的教程。

该教程主要分为三个部分1)CrystalReport的基本使⽤⽅法;2)使⽤CrystalReport对数据进⾏分组求和;3)CrystalReport如何使⽤⾃定义的数据源(如内存中的DataTable表)三个⽅⾯来写。

相信看懂了这个教程之后,对于⾃⼰项⽬中的实现报表这⼀功能,应该就能轻松的应对了。

⼀ CrystalReport模板的制作及显⽰A模板的制作1、右键【项⽬属性】添加⼀个⽔晶报表(在vs中需要安装CrystalReport模块,不同vs版本下载不同的CrystalReport版本:CrystalReport下载链接:)2、添加报表的设计界⾯如下:⼀个报表包括(报表头,页眉,详细资料,报表尾,页眉)5个基本部分。

3、现在我们需要给新建的报表添加⼀个数据源,右键左边的【数据库字段】选择相应的数据源,进⾏绑定。

我这⾥选择的是sqlserver数据库。

4、输⼊数据库的登录信息,然后选择需要绑定的数据库表,除了绑定数据表之外,还可以绑定sql语句查询的结果,以及存储过程和视图,下⾯给出绑定数据库表格,和绑定sql查询。

1)绑定数据库表格2)点击连接下⾯的【添加命令】绑定sql语句。

5、绑定数据库之后在报表左侧的【字段管理器】中就会出现该表以及sql查询结果的的相应表头字段。

6、把相应的字段在报表视图中进⾏布局。

到此⽔晶报表的模板已经做好了。

注意:页眉中的userName,courseName,score是可以更改。

B模板的显⽰1、⾸先在窗体上拖⼀个CrystalReportView控件作为显⽰报表模板。

2、在form_load事件⾥⾯写如下代码:CrystalReport1 cr = new CrystalReport1();//实例化⼀个报表模板this.crystalReportViewer1.ReportSource = cr;//为报表显⽰控件设置数据源3、运⾏报表设计点丑,但是你可以根基⾃⼰的风格进⾏排版设计,如字体,⼤⼩,颜⾊等啦。

水晶报表CryStalReport简单应用精选全文

水晶报表CryStalReport简单应用精选全文

可编辑修改精选全文完整版水晶报表CryStalReport使用教程(动态数据绑定)
第一步:添加水晶报表报表
1、右击鼠标,选择水晶报表
2、选择作为空白报表
第二步:添加数据集DataSet 1、右击鼠标,选择数据集
2、单击工具箱,拖拽一个DataTable到右边
3、根据数据表设计好DataTable
第三步:设计报表
1、从工具箱拖拽一个文本对象到页眉,并输入文字
2、选择字段资源管理器,右击数据库字段,选择数据库专家
3、从我的连接中选择MYDataSet到右边的选定的表
4、从左边的数据库字段中拖拽一些需要的字段到右边详细资料
5、展开特殊字段,拖拽一个第N页共M页,到页脚
第四步:添加页面
在页面中添加一个CryStalReportViewer控件
第五步、双击页面,编写数据绑定代码
protected void Page_Load(object sender, EventArgs e)
{
BLL.QueryAllStuService Qas = new BLL.QueryAllStuService();
MyCrystalReport Mcr = new MyCrystalReport();
Mcr.SetDataSource(Qas.QueryAllStudents());
CrystalReportViewer1.ReportSource = Mcr;
}
单击F5,运行效果如下:。

CrystalReport水晶报表详细教程

CrystalReport水晶报表详细教程
23
从“生成”菜单中选择“生成解决方案” 为该项目生成一个数据集对象 注意:生成的数据集对象不包含实际的数据,只包含对数据库结构的描述
17
水晶报表应用程序示例 8-4
向该窗体添加水晶报表项。选择“Crystal Report 库”窗口中的默认项 可用于指定一个或多个字段来汇总特定组
在“标准报表专家”窗口中展开“项目数据”文件夹 展开 数据集, 并选择 DataSet 对象 选择 Book 表,单击“插入表”。在“字段”选项卡中添加所有列
11
使用水晶报表专家 4-2
选择水晶报表
12
使用水晶报表专家 4-3
扩展 OLE DB(ADO) 部分
用于 SQL Server 的 OLE DB 提供程序
13
使用水晶报表专家 4-4
可以将表的所有字段或指定字段 添加到报表中。
选择所需的表并将其插 入到报表中。
14
水晶报表应用程序示例 8-1
22
总结
水晶报表是用于创建报表的标准工具 水晶报表的优点包括: 运行时自定义 报表查看器与其他控件之间的交互 报表作为 Web 服务 开发 Windows 应用程序时,可以使用 CrystalReportViewer控件将报表绑定到 WinForms窗体上 数据集设计器用于创建只包含数据结构而不包 含实际数据的数据集对象 水晶报表中的选择公式可用于计算字段和汇总,确定如何 显示报表的输出结果
7
水晶报表的功能
运行时自定义 报表查看器与其他 控件之间的交互
水晶报表
借助交互式界面更 加容易地创建报表
报表作为Web服务
8
水晶报表查看器
拖放
9
CrystalReportViewer 的属性、方法和事件

水晶报表 Crystal Reports(课堂PPT)

水晶报表 Crystal Reports(课堂PPT)
16
以上报表在BI中实现的基本步骤
(1)新建报表 (2)画表样 (3)取指标 (4)设浮动表元或者固定表元 (5)定义报表参数 和过滤条件 (6)表头表尾 (7)计算和保存
17
– Pull 模式(拉模式):
被请求时,水晶报表直接根据指定的驱动连接数据库然后组装这些 数据,这种方式不需要编写任何代码。
– Push 模式(推模式):
开发者自己编写代码连接数据并组装DataSet,同时将它传送至报表。 在这种情况下,通过使用连接共享以及限制记录集合的大小,可以最 大化使用报表的性能。
群件应用软件如Lotus Notes, Microsoft Exchange 与 Novell
GroupWise
SAP: BW, Info Sets, Tables, and Business Objects Universes
通过网络服务ODBC, JDBC 或者 OLAP可访问的任意数据源。
8
水晶报表的优点
水晶报表有下面一些主要的优点: 快速的报表开发; 能够导出成为复杂的交互性图表; 可以与其它控件一起在WinForm和WebForm中使用; 能够动态地将报表导出成为.pdf,.doc,xls,html,rtf等多种格式;
9
水晶报表的执行模式
水晶报表取数据可以使用下面的方法实现:
利用水晶报表可以创建交互式的优质报表 不仅能为 WinForms 和 WebForms 创建报表,还能将报表作为Web 服
务存放在 Web 服务器上 “水晶报表设计器”界面用于创建并格式化报表,大大减少代码编写

3
水晶报表的基本结构
水晶报表的基本结构主要由水晶报表引擎(Crystal Report Engine (CREngine.dll))和水晶报表设计器(Crystal Report Designer (CRDesigner.dll))共同构成。

Crystal报表设计以及公式详细

Crystal报表设计以及公式详细
基础报表设计培训 报表设计进阶
报表设计练习
COPYRIGHT © 2007 BUSINESS OBJECTS S.A. ALL RIGHTS RESERVED.
基础报表培训
规划报表 创建报表 组织报表数据 格式化报表
创建公式
创建参数 应用报表节 直观显示数据 警报
COPYRIGHT © 2007 BUSINESS OBJECTS S.A. ALL RIGHTS RESERVED.
报表分析方案整体架构
销售信息
数据整合*
“ETL” Extract –Transform - Load Rapid Mart
数据仓库/ 数据集市/ ODS
信息展现*
绩效管理(EPM)
决策者
财务信息
随机查询(ad*hoc)
管理者
多维分析(OLAP)
分析门户 分析员
业务员

库存信息
Data Integration
COPYRIGHT © 2007 BUSINESS OBJECTS S.A. ALL RIGHTS RESERVED.
企业需要什么样的报表?
联通多种数据源
-对数据源的广泛支持
把数据转化为形色丰富、易交互的报告
-方便易用,功能强大的报表设计器
以安全可靠的方式满足组织内外大量多 样的信息需求
-安全稳定,易于管理的发布平台
详细资料
报表页脚 页脚
所有符合条件的数据,一笔笔地呈现
每一页都会出现的最上方和最下方
适合放置一些每页都需要出现的信息
COPYRIGHT © 2007 BUSINESS OBJECTS S.A. ALL RIGHTS RESERVED.
创建报表-练习

水晶报表初级使用——直接与数据库连接

水晶报表初级使用——直接与数据库连接

水晶报表初级使用——直接与数据库连接
1、使用步骤
添加报表控件,在工具箱中,拖拽CrystalReportViewer到Default.aspx中。

如下图。

选择数据源,选择数据表源的下拉列表框,在选择新建报表源...,如下图。

新建报表源,当点击新建报表源,是出现对话框,如下图。

给报表控件指定名称,并为报表控件指定报表文件。

由于不存在报表文件,需要新建报表文件。

点击下拉列表,选择新建报表。

出现如下对话框。

创建新报表,给新报表命名。

确定,再确定
出现的对话框,使用报表向导,使用标准。

确定,出现如下对话框。

选择数据源,如下图。

出现如下对话框。

选择如下数据源,如图。

下一步,出现对话框,选择服务器,选择数据库,按情况勾选集成安全项,如下图。

注意:需确保服务器的服务已经打开。

查看方法:开始》所有程序》Microsoft SQL Server2008》配置工具》SQL Server 配置管理器,进入界面,如下图。

查看红框部分状态。

出现对话框,添加表,如下图。

点击下一步,出现对话框,选择要显示的字段,此处全选,如下图。

下一步,出现分组依据对话框,忽略,点击下一步,再点下一步,点击完成。

进入界面,如下图。

编辑数据表的显示样式。

忽略。

点击主报表预览。

如下图
保存,浏览网页如下图,在Toolbar工具条中,可实现报表的导出和打印功能。

同时可不显示工具条,将True改为Faulse设置如下图。

VB水晶报表使用方法

VB水晶报表使用方法

集成水晶报表的方法Crystal Reports是非微软的第三方工具,用于处理数据报表,帮助用户分析和解释重要信息。

使用Crystal Reports可以方便地创建你所能想象的任何报表。

Visual 中集成的Crystal Reports 9(简化版本)赋予.NET平台创建交互式的、高质量展示内容的能力,您可以在Web平台和Windows平台上呈现报表,甚至将Crystal报表作为报表Web服务在Web服务器上发布。

介绍Visual 集成Crystal Reports的资料真是少的可怜,好东东当然不敢独享,所以写下本文,水平有限,还望各位大虾指教。

说了这么多,是不是感觉到.NET的无所不能,如果你正在寻找企业报表开发的新大陆,那你可要打起精神,睁大眼睛继续读下去啦!我们用一个简单的实例来说明在Visual 中怎样玩转Crystal Reports。

(本程序代码已在Visual 简体中文版调试通过。

)实现功能:点击生成报表按钮可根据用户输入的客户ID号生成相应报表(输入0显示所有订单记录),并在CrystalReportViewer控件中预览。

须注意的重点:1、怎样在运行时将Crystal报表与后台数据源连接,即安全数据连接。

(运行时动态连接数据库可灵活的设置数据环境及避免Crystl Reports弹出数据库登陆对话框。

)2、怎样让Crystal报表与界面控件交互首先在MS-SQL Server 2000中建立一名为"MRP"的实例数据库,其中有"客户"和"订单"两张表。

订单表的结构:客户表与订单表可通过ID字段建立一对多关系。

(建库细节请参阅有关书籍)然后,我们就可以在Crystal Report Designer中设计和修改报表(Crystal Report Designer已集成在Visual Studio .NET开发环境内),启动方法如下:1、在Visual 解决方案资源管理器中,右击您的项目以显示快捷菜单。

C# 水晶报表详细讲解 代码讲解

C# 水晶报表详细讲解 代码讲解

NET水晶报表首先要从概念入手,水晶报表(Crystal Report)是业内最专业、功能最强的报表系统,它除了强大的报表功能外,最大的优势是实现了与绝大多数流行开发工具的集成和接口。

1、.NET水晶报表的好处1)利用水晶报表可以进行数值求平均值,画图等2)利用水晶报表可以把文件导出不同的格式(word等)2、.NET水晶报表的两种格式1)pull模式,不利用DataSet,直接从数据库中取出数据2) push模式,使用DataSet,利用它进行数据的加载和处理等3. .NET水晶报表使用的库1)水晶报表的引擎(CREnging.dll),作用:合并数据,装换格式2)水晶报表设计器(CRDesigner.dll),作用:设计标题,插入数据等3)水晶报表查看控件(CRWebFormViewer.DLL)4)需要引入的命名空间ing CrystalDecisions.CrystalReports.Engine;ing CrystalDecisions.Shared;4、Pull模式下使用水晶报表1)创建rpt文件2)拖放CrystalReportViewer3)绑定5、读取.NET水晶报表文件3.private void ReadCRV(cryatalReportViewer crv)4. {5. openFileDialog dlg=new OpenFileDialog();6.dlg.Title="打开水晶报表文件";7.dlg.Filter="水晶报表文件(*.rpt)|*.rpt|所有文件|*.*";8. if(dlg.showDialog()==DialogResult.OK)9. {10.crv.ReportSource=dlg.FileName;11. }12. }6. B/S下读取报表的文件13.private void ReadCRV(cryatalReportViewer crv,File file)14. {15. string strName=file.PostedFile.FileName;16. if(strName.Trim()!="")17. {18.crv.ReportSource=strName19. Session["fileName"]=strName;20. }21. }在B/S中要防止数据源的丢失22.priavte void Page_Load(object sender,System.EventArgs e)23. {24. if(Session["fileName"]!=null)25. {26.crv.ReportSource=Session["fileName"].ToString();27. }28. }7. 假如直接从数据库中读取数据采用PULL模式可能出现错误(登录的用户名和密码不对)29.private void ReadCRV(CrystalReportViewer crv,CrystalReport cr)30. {31. ReportDocument reportDoc=new ReportDocument();32. reportDoc.Load(Server.MapPath(cr));//要加载的rpt文件的名字33. //解决登录的问题34. TableLogOnInfo logonInfo = new TableLogOnInfo();35. foreach(Table tb in ReportDoc.Database.Tables)36. {37.logonInfo=tb.LogOnInfo;38.logonInfo.ConnectionInfo.ServerName="(loacl)";39.logonInfo.ConnectionInfo.DatabaseName="Pubs";erId="sa";41.logonInfo.ConnectionInfo.Password="";42. tb.ApplyLogOnInfo(logonInfo);43. }44.crv.ReportSource=reportDoc;45. }8. 采用Push模式,直接在数据源读取46.private void BindReport(CrystalReportViewer crv)47. {48. string strProvider="Server=(local);DataBase=pubs;uid=sa;pwd=";49. CrystalReport cr=new CrystalReport();50. DataSet ds=new DataSet();51. SqlConnection conn=new SqlConnection(strProvider);52. conn.open();53. string strSql="select * from jobs";54. SqlDataAdapter dap=new SqlDataAdapter(strSql,conn);55. adp.Fill(ds,"jobs");56. cr.SetDataSource(ds);57.cr crv.ReportSource=cr;58. }9. 导出水晶报表的文件59.private void ExportCrv(CrystalReport cr)60. {61. DiskFileDestionOptions dOpt=new DiskFileDestionOptions();62.cr.ExportOptions.ExportDestinationType=ExportDestinationType.DiskFile();63.cr.ExportOptions.ExportFormatType= ExportFormatType.PortableDocFormat;64.dOpt.DiskFileName="C:\output.pdf";65.cr.ExportOptions.DestinationOptions=dOpt;66. cr.Export();67.68. }69. private void ExportCrv(CrystalReport cr,string strType,string strPath)70. {71. DiskFileDestionOptions dOpt=new DiskFileDestionOptions();72.cr.ExportOptions.ExportDestinationType=ExportDestinationType.DiskFile();73. switch(strType)74. {75. case "RTF":76.cr.ExportOptions.ExportFormatType=ExportFormatType.RichText;77.dOpt.DiskFileName=strPath;78. break;79. case "PDF":80.cr.ExportOptions.ExportFormatType=ExportFormatType.PortableDocFormat;81.dOpt.DiskFileName=strPath;82. break;83. case "DOC":84.cr.ExportOptions.ExportFormatType=ExportFormatType.WordForWindows;85.dOpt.DiskFileName=strPath;86. break;87. case "XLS":88.cr.ExportOptions.ExportFormatType=ExportFormatType.Excel;89.dOpt.DiskFileName=strPath;90. break;91. default;92. break;93.94. }95.cr.ExportOptions.DestinationOptions=dOpt;96. cr.Export();97.98. }10 B/S下水晶报表的打印99.priavte void PrintCRV(CrystalReport cr)100. {101. string strPrinterName=@"printName";102. PageMargins margins=cr.PrintOptions.PageMargins; 103.margins.bottomMargin = 250;104.margins.leftMargin = 350;105.margins.rightMargin = 350;106.margins.topMargin = 450;107. cr.PrintOptions.ApplyPageMargins(margins);108.cr.PrintOptions.printerName=strPrinterName;109. cr.PrintToPrinter(1,false,0,0)//参数设置为0,表示打印所用页110. }。

VisualStudio2008&2010 CrystalReports(水晶报表)快速入门

VisualStudio2008&2010 CrystalReports(水晶报表)快速入门

Visual Studio 2008/2010 水晶报表快速入门先新建一个Web项目: CrystalWebApp为项目添加新项: CrystalReport1.rpt在弹出的对话框,选择作为空白报表。

用向导当然更方便,但在这里,白手起家或许能更好地理解。

在工具箱选择 Text Object,拖到报表头。

写些字,设置字体之类的。

在属性选项卡设置它的名字为 txtTitle 以供将来程序访问。

水晶报表对于程序员来说其实跟 Repeater 控件是很相似的。

于是需要数据和字段名。

在Repeater 控件中你可以很随意地指定要绑定的字段名。

在程序还没有真正运行之前,这个字段名可以没有任何表的字段名跟它匹配,也可以没有任何类的属性名跟它匹配。

但在水晶报表中,字段名在设计阶段就必须是真实存在的。

还能稍感安慰的是,水晶报表一旦设计好之后,就能像 Repeater 控件那样绑定任意类型的对像。

而不必是设计时指定字段来源的表或类。

所以我们现在要创造些真实存在的字段名……create table TabTest(UserIDint,UserNamenvarchar(50),Age int,Birthday datetime)你可以用 Access 或者 Excel 来创造真实存在的字段名,但我这里是使用 SQL Server。

在 "字段资源管理器" 的 "数据库字段" 上按右键,选择 "数据库专家..."。

在弹出的对话框中,创建新连接==>OLE DB (ADO)(Access 或者 Excel 应点 "数据库文件" 前的 "+" 号)。

在弹出的对话框,选择 "SQL Native Client" 作为提供程序。

按提示一步步地做,直到连上数据库。

选择表 TabTest,把它弄到右边的框中。

水晶报表制作说明

水晶报表制作说明

BS报表制作向导一、制作报表样式1.新建水晶报表样式打开Visual Studio或水晶报表工具,点击菜单条中的文件—新建项目,在弹出的页面中选择其他语言-Visual J#-Crystal Reports应用程序修改名称和位置后,点击确定按钮,再在弹出的页面中选择作为空白报表,再点击确定按钮;如果已有一个水晶报表,要在现有项中再新增一个水晶报表样式,可以在解决方案资源管理器中在解决方案子主目录下,右键-添加新项,弹出以下页面,选择Crystal报表即可水晶报表工具Crystal Reports2008制作报表:工具栏文件->新建->空白报表/标准报表/交叉报表->数据库专家2.将报表数据源绑定数据库在显示的页面中,单击鼠标右键选择数据库-数据库专家在创建新连接中,点击OLE DB(ADO),弹出页面,提供程序中选择Microsoft OLE DB Provide for SQL Server,再点击下一步按钮,在弹出的页面中输入内容后,点击下一步按钮在弹出的页面中点击添加命令,输入SQL查询—报表所需字段(也可以是视图或存储过程),再点击确定按钮。

3.制作水晶报表A.工具箱--在左边工具箱中,可以选择工具画报表,文本对象(文本框及内容的输入),线条对象(画线),框对象(表格外面的框)水晶报表工具Crystal Reports2008:工具栏插入->文本对象/线/框B.字段--在字段中可以直接将要显示在报表中的字段拖放到报表中去C.合计的显示—选中要合计的字段,如金额,点击右键,插入-汇总在弹出的页面中,选择要汇总的字段和方式(求和,差,平均~~)点击确定后自动生成一个汇总字段,将该字段拖放到合计金额的位置即可水晶报表工具Crystal Reports2008:在“公式字段”新建“合计”,汇总字段为CalFee,拖动到页脚D.合计金额小写转换成大写—在右边字段中,选择公式字段,右键-新增(名为test),点击使用专家按钮,在弹出的页面中,选择报表自定义函数,再点击右键-新建,在弹出的页面中输入自定义函数有的名称(AmountToWord2),点击使用编辑器在下面的输入框中,输入以下函数(语法选择Basic语法)选择之前添加的公式字段test,在下面的输入框中输入以下内容(调用上面的函数)(语法选择Basic语法)Function CNMoney(ls As Number) As StringDim dx_sz As StringDim dx_dw As StringDim str_int As StringDim str_dec As StringDim dx_str As StringDim fu As StringDim a As StringDim b As StringDim c As StringDim d As StringDim b2 As StringDim num_int As NumberDim num_dec As NumberDim len_int As NumberDim i As NumberDim a_int As NumberDim pp As Numberdx_sz = "零壹贰叁肆伍陆柒捌玖"dx_dw = "万仟佰拾亿仟佰拾万仟佰拾圆"If ls = 0 ThenCNMoney = "零圆整"Exit FunctionEnd IfIf ls < 0 Thenls = Abs(ls) --返回绝对值fu = "负"Elsefu = ""End Ifdx_str = CStr(ls) --返回表达式,该表达式已被转换为String 子类型的V ariant--Dim MyDouble, MyString--MyDouble = 437.324 - ' MyDouble 是双精度值。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
水晶报表
.NET 中,System.Drawing.Printing 命名空间提供以下用 于打印的类:
PrintDocument PrintController PrintEventArgs PrintPageEventArgs PrinterSettings PageSettings .NET 提供两个控件 PrintDocument 和 PrintDialog,用于 在应用程序中实现打印功能。 .NET 提供两个控件 PrintPreviewControl 和 PrintPreviewDialog,用于预览要打印的文档并将设置应 用到此文档。 .NET提供了方便地创建、安装和注册Windows服务的方 案,可重写OnStart、OnStop方法来定制服务内容 Windows 服务需要使用 installutil.exe 工具安装在需要运 行该服务的特定计算机上
部门:20 薪金:10000
姓 名 : Jack 姓名: Mark Lee
Turner
职位: 经理
职位: 行政人员 部门: 30
部门: 10
薪金: 12000
薪金: 3200
姓名: Chan
Cho 职位: 销售员 部门: 40 薪金: 7600
姓 名 : David 姓 名 : Susan 姓 名 : Scott 姓 名 : Adam
能将报表作为Web 服务存放在 Web 服务器上 “水晶报表设计器”界面用于创建并格式化报表,
大大减少代码编写量
水晶报表的功能
运行时自定义
报表查看器与其他 控件之间的交互
水晶报表
借助交互式界面更 加容易地创建报表
报表作为Web服务
水晶报表查看器
拖放
CrystalReportViewer 的属性、方法和事件
使用水晶报表专家 4-2
选择水晶报表
使用水晶报表专家 4-3
用于 SQL Server 的 OLE DB 提供程序
扩展 OLE DB(ADO) 部分
使用水晶报表专家 4-4
可以将表的所有字段或指定字段 添加到报表中。
选择所需的表并将其插 入到报表中。
水晶报表应用程序示例 8-1
水晶报表支持 数据集。 可以使用各种数据源创建 数据集。 使用 数据集创建报表需遵循以下步骤。
从“生成”菜单中选择“生成解决方案” 为该项目生成一个数据集对象 注意:生成的数据集对象不包含实际的数据,只包含对数据库结构的描述
水晶报表应用程序示例 8-4
向该窗体添加水晶报表项。选择“Crystal Report 库”窗口中的默认项 可用于指定一个或多个字段来汇总特定组
在“标准报表专家”窗口中展开“项目数据”文件夹 展开 数据集, 并选择 DataSet 对象
Blake
Jones
William
Johns
职位: 销售员 职位: 行政人员 职位: 销售员 职位: 分析员
部门: 40
部门: 10
部门: 40
部门: 20
薪金: 6500
薪金: 4500
薪金: 8500
薪金: 9500
需要手动计算每个部门的总薪金
水晶报表简介 4-3
姓名
职位
部门
薪金
Jack Turner
行政人员
10
3200
Susan Jones
行政人员
10
4500
部门 10 的总薪金是 7700
Allen John Adam Johns
分析员
20
10000
分有析员条理的表2示0 数据记9录500
部门 20 的总薪金是 1更950容0 易汇总所需的信息
Mark Lee
经理
30
12000
部门 30 的总薪金是 12000
使用水晶报表专家 4-1
可帮助用户创建多种报表、绘制各种图形、设置报表的整体 格式、连接数据库,以及根据用户的选择指定数据库中的记 录等。
创建窗体后,在添加新项中添加“Crystal Report”,将自动 启动水晶报表设计器,进入“标准报表专家”中。
“标准报表专家”可帮助定义报表的数据源、选择要使用的数 据记录并对其进行分组,还可以格式化报表对象和布局。
生成一个 数据集 对象。 连接至 数据集 对象。 数据集设计器用来创建只包含数据结构而不包含实际数
据的 DataSet 对象。 要在报表上显示实际数据,可将数据库中的数据传递至
对象模型中的 DataSet 对象中。 将这个已填入数据的 DataSet 传递至报表引擎。 最后,将报表对象绑定至 WinForms 中相应水晶报表查看器上。
水晶报表应用程序示例 8-2
新建 Windows 应用程序,从菜单中选择“项目” “新建项目 ”
在“类别”区域中展开“本地项目项”,选择“数据 ”,
从“模板”区域选择“数据集”
使用“服务器资源管理器”窗口创建新的链接 将服务器资源管理器中的 Book 表拖 至“数据集”选项卡
水晶报表应用程序示例 8-3
理解水晶报表的作用和优点 使用水晶报表专家创建水晶报表 在窗体中使用水晶报表和报表绑定
目标
简介 4-1
产品部的薪金详细信息
报表-格式化且 财务部的薪金详细有信息条理的数据记
录表示方式
市场部的薪金详细信息
汇总信息?
按顺序显示信息
水晶: Allen John 职位:分析员
属性
方法
DisplayGroupTree
GetCurrentPageNumber()
DisplayT命oo名lb规ar则:
RefreshReport()
ReportSourc在e CrystalReportViewer控件前加“crv”
事件
HandleException
正确地命名:crvSalesReport 、 crvBalanceSheetReport
Chan Cho
销售员
40
7600
David Blake
销售员
40
6500
Scott William
销售员
40
8500
部门 40 的总薪金是 22700
水晶报表简介 4-4
水晶报表是 Visual Studio 环境(包括 Visual )中用于创建报表的标准工具
利用水晶报表可以创建交互式的优质报表 不仅能为 WinForms 和 WebForms 创建报表,还
相关文档
最新文档