




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
水晶报表是一个功能强大的报表工具,现在已经被Microsoft Visual Studio 2005(下文以VS2005简称)集成在一起。喜欢水晶报表的朋友可以方便使用了。我把水晶报表在vs2005的使用方法总结一下,供大家参考。首先介绍一下我用的软件环境:Microsoft Visual Studio 2005;Microsoft SQL Server 2005【数据用例】服务器:SQLEXPRESS数据库名:Test数据库表:T【说明】水晶报表在应用时分两种方法,分别是拉模式(PULL)、推模式(PUSH)。拉模式:在水晶报表生成时的 数据源是从水晶报表文件中的SQL语句从数据库中提取的,在编程时不用重写SQL语句,但要加上登录信息(具体方法,后面介绍)。推模式:在水晶报表生成 时的数据源,是用编程时重写水晶报表中SQL语句而生成的dataset对像。也就是说,推模式是用dataset组装水晶报表。水晶报表组件介绍。水晶报表在VS2005中有两种组件,在WEB项目是分别是CrystalReportSource,CrystalReportViewer。在FORM项目里是分别是crystalReport,CrystalReportViewer。CrystalReportSource,crystalReport是水晶报表的数据提供者;CrystalReportViewer是水晶报表的浏览器。另外还要介绍一下水的报表的文件是以rpt为扩展名的文件,该文件可以用VS2005生成。下面分别介绍具体操作方法:拉模式(PULL):在拉模式中如要在水晶报表中的SQL语句加上条件参数时要用?参数名方式给出。例:“Select T1, T2, T3 FROM T Where T1=?parm” parm就是参数名以下例子中所用到的水晶报表文件中使用的SQL语句是“Select T1, T2, T3 FROM T Where T1=?parm” parm就是参数名。【WEB方式下】using CrystalDecisions.Shared;using CrystalDecisions.CrystalReports.Engine; / /功能:拉模式提取水晶报表 /个人主页:/ / / / protected void Button_pull_Click(object sender, EventArgs e)/ CrystalReport.rpt是水晶报表文件的名称;CrystalReportSource1是从工具箱加到页面上的水晶报表数据源对像。 CrystalReportSource1.ReportDocument.Load(Server.MapPath(CrystalReport.rpt);/ SetDatabaseLogon 拉模式中必须用这个方法来设置登录信息,参数一:用户名;参数二:密码;参数三:服务器;参数四:数据库名 CrystalReportSource1.ReportDocument.SetDatabaseLogon(sa, 123456, SYWZSWLSQLEXPRESS, Test);/给水晶报表传参数,参数一:是参数名,参数二:参数值; CrystalReportSource1.ReportDocument.SetParameterValue(Title, 这是一个测试报表); CrystalReportSource1.ReportDocument.SetParameterValue(Parm, 1);/绑定水晶报表数据源。 CrystalReportSource1.DataBind();/ CrystalReportViewer1是水晶报表浏览器,下面是给该浏览器赋上对像 CrystalReportViewer1.ReportSource = CrystalReportSource1; CrystalReportViewer1.DataBind(); 【FORM方式下】/在 FORM方式下代码同WEB方式,用crystalReport控件换掉了CrystalReportSource;用 crystalReportViewer换掉了CrystalReportViewer;这两个控件都可以在工具箱里找到。同时在编程时去掉 DataBind()方法。 private void Form1_Load(object sender, EventArgs e) crystalReport1.Load(Application.StartupPath + CrystalReport.rpt); crystalReport1.SetDatabaseLogon(sa, 123456, SYWZSWLSQLEXPRESS, Test); crystalReport1.SetParameterValue(Title, 这是一个测试报表); crystalReport1.SetParameterValue(Parm, 1); crystalReportViewer1.ReportSource = crystalReport1; 推模式(PUSH):在推模式中编程组装的Dataset里的SQL语句中的字段要与水晶报表里的SQL语句字段一致。简单的说,推模式中的水晶报表是个模板,把在设计器里报表的格式设好后,再组装DataSet就可以生成报表了。【WEB方式下】using CrystalDecisions.Shared;using CrystalDecisions.CrystalReports.Engine;using System.Data.SqlClient; protected void Button_push_Click(object sender, EventArgs e) string sql = Select T1, T2, T3 FROM T where T1=a; string DBConfig_sql=DataSource=SYWZSWLSQLEXPRESS;Initial Catalog=Test;User ID=sa;Password=123456; DataSet ds = new DataSet(); SqlConnection sqlCon = new SqlConnection(DBConfig_sql); SqlCommand sqlCmd = new SqlCommand(sql, sqlCon); SqlDataAdapter sqlAd = new SqlDataAdapter(); sqlAd.SelectCommand = sqlCmd; sqlAd.Fill(ds, sql); CrystalReportSource1.ReportDocument.Load(Server.MapPath(CrystalReport.rpt); /注意此处必需指明Dataset中的表的名称,否则会提示“您请求的报表需要更多信息.”CrystalReportSource1.ReportDocument.SetDataSource(ds.Tablessql);/?中的参数可以不用赋值,即使赋了值也不起作用。 / CrystalReportSource1.ReportDocument.ParameterFieldsParm.CurrentValues.AddValue(1234567); CrystalReportSource1.ReportDocument.ParameterFieldsTitle.CurrentValues.AddValue(这时推模式的报表样例!); CrystalReportSource1.DataBind(); CrystalReportViewer1.ReportSource = CrystalReportSource1; CrystalReportViewer1.DataBind(); 【FORM方式下】private void Form1_Load(object sender, EventArgs e) /推模式 string sql = Select T1, T2, T3 FROM T where T1=a; string DBConfig_sql = Data Source=SYWZSWLSQLEXPRESS;Initial Catalog=Test;User ID=sa;Password=123456; DataSet ds = new DataSet(); SqlConnection sqlCon = new SqlConnection(DBConfig_sql); SqlCommand sqlCmd = new SqlCommand(sql, sqlCon); SqlDataAdapter sqlAd = new SqlDataAdapter(); sqlAd.SelectCommand = sqlCmd; sqlAd.Fill(ds, sql); crystalReport1.Load(Application.StartupPath + CrystalReport.rpt); crystalReport1.SetDataSource(ds.Tablessql);/?中的参数可以不用赋值,即使赋了值也不起作用。 / CrystalReportSource1.ReportDocument.ParameterFieldsParm.CurrentValues.AddValue(1234567); crystalReport1.ParameterFieldsTitle.CurrentValues.AddValue(这时推模式的报表样例!); crystalReportViewer1.ReportSource = crystalReport1;-水晶报表编程使用方法1.怎么让组页眉,在同一组中每一页都显示 插入组的时候,在公用选项页面选中“在每个页面上重复组页眉”2.如何向 CrystalReportViewer 和 ReportDocument 传递参数 一、CrystalReportViewer 通过 CrystalReportViewer.ParameterFieldInfo 属性 1、crystalreportviewer 成员 公共实例属性 ParameterFieldInfo(从 CrystalReportViewerbase 继承) ParameterFields。获取或设置参数字段集合。 二、reportdocument 通过 ReportDocument.DataDefinition.ParameterFields 属性 1、reportdocument 成员 公共实例属性 DataDefinition DataDefinition。获取 DataDefinition 对象。 2、datadefinition 成员 公共实例属性 ParameterFields ParameterFieldDefinitions。获取 ParameterFieldDefinitions 集合。 三、参数字段运行时自定义(crystalreportviewer) 参考: 设置参数 | Windows 窗体查看器的绑定选项 | Web 窗体查看器的绑定选项 可支持用户在 Crystal 报表中通过参数进行输入。这种参数有多种用途。例如: 使参数基于数据库字段并允许用户指定该字段的值,以便对报表中的数据进行筛选。 使用参数字段将条件格式应用于报表。 使用参数字段来定义排序顺序。 下列示例说明如何在运行时通过代码设置参数字段值。此例解释了如何设置两个不同的参数:第一个是多值离散参数,第二个是区域值参数。在运行时修改参数字段c#/ 声明将参数传递给/查看器控件所需的变量。ParameterFields paramFields = new ParameterFields ();ParameterField paramField = new ParameterField ();ParameterDiscreteValue discreteVal = new ParameterDiscreteValue ();ParameterRangeValue rangeVal = new ParameterRangeValue ();/ 第一个参数是具有多个值的离散参数。/ 设置参数字段的名称,它必须/和报表中的参数相符。paramField.ParameterFieldName = 客户姓名;/ 设置第一个离散值并将其传递给该参数。discreteVal.Value = AIC Childrens;paramField.CurrentValues.Add (discreteVal);/ 设置第二个离散值并将其传递给该参数。/ discreteVal 变量被设置为新值,这样,以前的设置/就不会被覆盖。discreteVal = new ParameterDiscreteValue ();discreteVal.Value = Aruba Sport;paramField.CurrentValues.Add (discreteVal);/ 将该参数添加到参数字段集合。paramFields.Add (paramField);/ 第二个参数为区域值。paramField 变量/被设置为新值,这样,以前的设置就不会被覆盖。paramField = new ParameterField ();/ 设置参数字段的名称,它必须/和报表中的参数相符。paramField.ParameterFieldName = 客户 ID;/ 设置范围的开始值和结束值并将该范围传递给/该参数。rangeVal.StartValue = 42;rangeVal.EndValue = 72;paramField.CurrentValues.Add (rangeVal);/ 将第二个参数添加到参数字段集合。paramFields.Add (paramField);/ 将参数字段集合放入查看器控件。crystalReportViewer1.ParameterFieldInfo = paramFields;更多资料请查看:/develop/2005-4-8/12305/default.aspx3.设置Crystal Report Viewer 的外观 设置 Crystal Report Viewer 的属性: BestFitPage 布尔值。获取或设置页面视图是大小合适还是用滚动条进行裁剪。 这个地方设为false后,设置Crystal Report Viewer 的宽度就可以去除滚动条了。 说明 :目前有两种情况,其中在从 Web 窗体查看器进行打印时会出现问题: BestFitPage属性为默认值“真”(即,没有垂直或水平滚动条),但PageZoomFactor大于 100。 BestFitPage 设置为“假”,Web 窗体查看器的高度小于报表页的高度(即,有垂直滚动条),而查看器的宽度大于或等于报表页的宽度(即,没有水平滚动条)。 配合设置 Width、Height 来实现无空白和无滚动条的显示! DisplayGroupTree 布尔值。获取或设置树视图是可见还是隐藏。 DisplayPage 布尔值。获取或设置工具栏是可见还是隐藏。 DisplayToolbar 布尔值。获取或设置工具栏上的转到页按钮是可见还是隐藏。 PageZoomFactor Int32。获取或设置报表的缩放因数。 SeparatePages 布尔值。获取或设置报表页是分开还是连接。 PageToTreeRatio Float64。设置组树与报表视图之间的大小比例。4.控制工具栏的按钮: 设置 Crystal Report Viewer 的属性: HasGotoPageButton 布尔值。获取或设置转到页按钮的可见性。 HasLevelUpButton 布尔值。获取或设置工具栏上的转到上一页按钮是可见还是隐藏。 HasPageNavigationButtons 布尔值。获取或设置工具栏上的页面导航按钮是可见还是隐藏。 HasRefreshButton 布尔值。获取或设置工具栏上的刷新按钮是可见还是隐藏。 HasSearchButton 布尔值。获取或设置工具栏上的搜索按钮是可见还是隐藏。 HasZoomFactorList 布尔值。获取或设置工具栏上的缩放因数列表是可见还是隐藏。5.在 Web 页面里的布局: 在“设计视图”,修改 CrystalReportViewer 的 Width、Height 属性。 切换到窗体的“HTML 视图”,修改 style 属性。6.除水晶报表的的公司LOGO 将 Crystal 公司的Logo 文件替换或删除 (1)如果是用 VS.NET 里自带的水晶报表C:Program FilesMicrosoft Visual Studio .NETCrystal ReportsViewersimagesToolBarlogo.gif (2)如果是用水晶报表 9.2C:Program FilesCommon FilesCrystal Decisions2.0crystalreportviewersimagestoolbarcrlogo.gif7.替换水晶报表里的各种图标和图片 (1)如果是用 VS.NET 里自带的水晶报表C:Program FilesMicrosoft Visual Studio .NETCrystal ReportsViewersimages (2)如果是用水晶报表 9.2C:Program FilesCommon FilesCrystal Decisions2.0crystalreportviewersimages8.关于打印的时候安装插件: 在 Crystal Reports 的更新版本中,您可以使用新的 CrystalReportViewer.PrintMode 属性来指定打印模式。其中包含两个选择项:ActiveX 和 PDF。 当属性设置为PrintMode.PDF 时,报表会在WEB服务器上导出为PDF,然后以数据流传送到浏览器,使用者可以利用选项,直接打印到打印机。这个选项是跨平台相容的。当属性设置为PrintMode.ActiveX时,ActiveX 打印控制项允许使用者将报表直接打印到本地打印机先下载/CRforVS2005/PrintControl.cab,放到自已的服务器上。若要在 Crystal Reports for Visual Studio 2005 网站显示 cab 包,需将下列 xml 语句加入网站的 web.config 文件
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 金提取炉项目可行性研究报告
- 第四单元 多姿多彩的乐音世界 第8课时音乐知识《室内乐》教学设计-2025-2026学年湘艺版(2024)初中音乐八年级上册
- 废旧塑料家具再生项目可行性研究报告
- DB65T 4136-2018 多浪羊两年三产繁殖技术规程
- 人力资源管理竞业限制协议3篇
- 合同标准版3篇
- Gerstmann综合征护理查房
- 四川省绵阳市涪城区2025届九年级下学期中考一模生物试卷(含答案)
- 河南省九师联盟2025-2026学年高三上学期开学考试数学试题含答案
- 部门用车安全培训课件
- 课堂高效学习的主阵地 教学设计-2023-2024学年高中上学期主题班会
- 2025年放射工作人员培训考试试题(附答案)
- 电力运行维护管理办法
- 高考熟词生义解密(复习讲义)-2026年高考英语一轮复习(北京专用)挖空版
- 2025年甘肃省高考政治真题卷含答案解析
- 2025年北京市中考英语试卷(含答案与解析)
- 浙江名校协作体(G12)2025年9月2026届高三返校联考英语(含答案)
- 2025年环保法律法规基础知识考试卷及答案
- 2026届新人教版高考物理一轮复习讲义:静电场及其应用(含答案)
- 专职安全生产管理人员综合类C证习题(含答案)
- 2025年市场监管总局机关公开遴选公务员面试模拟题及答案
评论
0/150
提交评论