水晶报表知识汇总

上传人:xzh****18 文档编号:34264427 上传时间:2018-02-22 格式:DOCX 页数:7 大小:23.95KB
返回 下载 相关 举报
水晶报表知识汇总_第1页
第1页 / 共7页
水晶报表知识汇总_第2页
第2页 / 共7页
水晶报表知识汇总_第3页
第3页 / 共7页
水晶报表知识汇总_第4页
第4页 / 共7页
水晶报表知识汇总_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《水晶报表知识汇总》由会员分享,可在线阅读,更多相关《水晶报表知识汇总(7页珍藏版)》请在金锄头文库上搜索。

1、Crystal 水晶报表基础知识汇总( 一)制作 B/S 的朋友肯定对 Crystal Report 绝不陌生 功能强大,方便 我在网上查找了许多关于Crystal Report 的资料 对其做了整理、调试 在自己学习的同时,也希望拿出来与大家分享 不足之处请多指教一、Crystal 报表的建立水晶报表在应用时分两种方法,分别是拉模式(PULL)、推模式(PUSH) 拉模式:在水晶报表生成时的数据源是从水晶报表文件中的 SQL 语句从数据库中提取的,在编程时不用重写 SQL 语句,但要加上登录信息 推模式:在水晶报表生成时的数据源,是用编程时重写水晶报表中 SQL 语句而生成的 dataset

2、 对像 也就是说,推模式是用 dataset 组装水晶报表 水晶报表组件介绍:水晶报表在 VS2005 中有两种组件:WEB 项目中分别是 CrystalReportSource,CrystalReportViewer FORM 项目里是分别是 CrystalReport,CrystalReportViewer CrystalReportSource,crystalReport 是水晶报表的数据提供者;CrystalReportViewer 是水晶报表的浏览器 另外还要介绍一下水的报表的文件是以 rpt 为扩展名的文件,该文件可以用 VS2005 生成 WINFORM 中的建立:1 首先建立一

3、个新的项目工程,在项目中添加一个 Crystal 报表 在报表的创建向导中我们创建一个新的OLE DB(ADO)连接,以便于我们对 SQL 数据库中表的连接 2 在弹出的连接类型窗口内,选择 Microsoft OLE DB Provider for SQL Server 一项,以确立报表的数据连接为 SQL 服务类 3 在连接信息当中选择所需使用的服务器名,并输入相应用户 ID 和密码,选择好报表所要连接的数据库后,新的数据库连接便建立完成 此时,我们可以从报表数据连接窗口中看到我们所创建的报表,并选择需要的表,进行数据连接 4 此后,我们可以根据报表向导进行表间关联、排序索引设置、;样式选

4、择等表的初始化设置 完成Crystal 报表与 SQL 服务器内数据连接以后,我们可以在报表中预览所创建的报表样 5 对 Crystal 报表进行保存后,在 WINFORM 的窗口中建立 CrystalReportViewer 控件,生成水晶报表的预览窗口 在建立中,我们可以根据需要对该控件的添加项进行筛选,包括显示工具栏、显示组树、显示状态栏三项 6 在 WINFORM 窗口中添加 ReportDocument 控件,并为该控件选择一个需要进行类型化的 Report 表单 WEBFORM 中的建立:建立方法与 WINFORM 方式基本相同,但不需要建立 ReportDocument 在建立过

5、程中一定注意,在.aspx 设计器中建立 CrystalReportViewer 与 CrystalReportsource 两个控件,前者用作水晶报表的预览,后者起到报表与预览连接的作用,负责建立 CrystalReportViewer 与 Crystal 报表间的连接 二、 报表数据的连接拉模式(PULL):WINFORM 中建立连接:方式一:如果该页面只调用固定的一个 Crystal 报表,可以直接在 CrystalReportViewer 中进行选择报表,将Crystal 报表与其进行绑定 方式二:如果页面需根据具体要求,调用不同的报表进行显示,那么我们就需要通过对报表的连接的设置来完

6、成这一功能 程序如下:/CrystalReport1.rpt 是水晶报表文件的名称;CrystalReport11 是从工具箱加到页面上的CrystalDocumentcrystalReport11.Load(Application.StartupPath + CrystalReport1.rpt);/运用 CrystalDocument 读取所需 Crystal 表单路径;crystalReport11.SetDatabaseLogon(sa, , BENQ-JAY, Userdatabase);/进行 CrystalDocument 连接服务器的设置,其中第一参数:用户名;第二参数:密码;

7、第三参数:服务器名;第四参数:数据库名crystalReportViewer1.ReportSource = crystalReport11;/将 CrystalReportViewer 的报表源指向 CrystalDocumentWEBFORM 中建立连接:方式一:在 CrystalReportSource 中直接对表单源进行配置,选择需要宣示的表单 在 CrystalReportViewer 中将报表源指定为 CrystalReportSource,即可在该网页中生成指定报表的水晶报表 方式二:通过程序进行具体配置,将所需 Crystal 报表与预览页面进行连接 实现报表的灵活性选择 程序

8、如下:/ CrystalReport.rpt 是水晶报表文件的名称;CrystalReportSource1 是从工具箱加到页面上的水晶报表数据源对像 CrystalReportSource1.ReportDocument.Load(Server.MapPath(CrystalReport.rpt);/读取 Crystal 表单所在路径,将其与 CrystalReportSource 进行绑定CrystalReportSource1.ReportDocument.SetDatabaseLogon(sa, , BENQ-JAY, UserDatabase);/进行数据库连接,参数一:用户名;参数

9、二:密码;参数三:服务器名;参数四:数据库名CrystalReportSource1.DataBind();/对 CrystalReportSource 进行数据绑定CrystalReportViewer1.ReportSource = CrystalReportSource1;/将预览源指定为 CrystalReportSourceCrystalReportViewer1.DataBind();/对 CrystalReportViewer 进行数据绑定推模式(PUSH):在推模式下,必须建立 DataSet 数据集,用来进行数据源填充 在推模式中编程组装的 DataSet 里的SQL 语句中

10、的字段要与水晶报表里的 SQL 语句字段一致 WINFORM 中建立连接:程序如下:string sql = select * from UserInfor;string conn = server=BENQ-JAY;Database=UserDatabase;uid=Sa;Pwd=;DataSet ds = new DataSet();SqlConnection con1 = new SqlConnection(conn); SqlCommand cmd1 = new SqlCommand(sql, con1);SqlDataAdapter sqlad = new SqlDataAdapte

11、r();sqlad.SelectCommand = cmd1;/获得一个 TRANSACT-SQL 存储过程,用于在数据源中选择记录sqlad.Fill(ds, sql);/填充 SQL 命令所指定的行crystalReport11.Load(Application.StartupPath + CrystalReport1.rpt);crystalReport11.SetDataSource(ds.Tablessql);crystalReportViewer1.ReportSource = crystalReport11;WEBFORM 中建立连接:程序如下:string sql = sele

12、ct * from UserInfor;string con1 = server=BENQ-JAY;Database=UserDatabase;uid=sa;pwd=;DataSet ds = new DataSet();SqlConnection con = new SqlConnection(con1);SqlCommand com = new SqlCommand(sql, con);SqlDataAdapter sqlad = new SqlDataAdapter();sqlad.SelectCommand = com;sqlad.Fill(ds, sql);CrystalReport

13、Source1.ReportDocument.Load(Server.MapPath(CrystalReport.rpt);CrystalReportSource1.ReportDocument.SetDataSource(ds.Tablessql);CrystalReportSource1.DataBind();CrystalReportViewer1.ReportSource = CrystalReportSource1;CrystalReportViewer1.DataBind();三、 报表打印水晶报表的 CrystalReportViewer 中默认配备的工具栏可实现打印功能,但其功

14、能比较单一,无法进行打印机选择。我们可以用代码设置的方法进行 Crystal 表单的打印功能。WINFORM 中的打印:代码如下:private void print_Click(object sender, EventArgs e)tryCrystalDecisions.CrystalReports.Engine.ReportDocument rd = new CrystalDecisions.CrystalReports.Engine.ReportDocument();/加载表格的打印属性rd.Load(E:Projectstest1test1CrystalReport1.rpt);/设定

15、表格路径rd.PrintOptions.PrinterName = printerList.Text.ToString();/添加打印机rd.PrintToPrinter(1, true, 0, 0);/设置打印参数catch (Exception ex)MessageBox.Show(ex.Message.ToString();private void Form1_Load(object sender, EventArgs e)tryPrintDocument prtdoc = new PrintDocument();string strDefaultPrinter = prtdoc.Pri

16、nterSettings.PrinterName;/获取默认的打印机名foreach (String strPrinter in PrinterSettings.InstalledPrinters)/在列表框中列出所有的打印机,printerList.Items.Add(strPrinter);if (strPrinter = strDefaultPrinter)/把默认打印机设为缺省值printerList.SelectedIndex = printerList.Items.IndexOf(strPrinter);crystalReport11.Load(Application.StartupPath + CrystalReport1.rpt);/设置报表路径crystalReport11.SetDatabaseLogon

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 模板/表格

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号