动态生成水晶报表
水晶报表的使用
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库) 单击“下一步”,最后单击“完成”按钮。
水晶报表的基本使用方法
水晶报表的基本使用方法水晶报表是一种数据可视化工具,可以帮助用户更直观、清晰地呈现数据。
使用水晶报表可以轻松创建各种类型的报表,包括数据表格、图表、交叉表等。
本文将介绍水晶报表的基本使用方法。
一、创建报表在水晶报表软件中,可以通过多种方式创建报表。
最常用的方法是使用向导或模板来创建报表。
用户可以根据需要选择不同的报表类型和样式,然后按照向导的指引逐步完成报表的设计和设置。
二、导入数据在创建报表之前,首先需要导入数据。
水晶报表支持多种数据源,包括数据库、Excel表格、文本文件等。
用户可以选择合适的数据源,并根据需要设置数据连接参数。
导入数据后,可以对数据进行预处理,如筛选、排序、分组等操作。
三、设计报表在导入数据后,可以开始设计报表的布局和样式。
水晶报表提供了丰富的设计工具和功能,可以轻松创建各种类型的报表。
用户可以选择合适的数据字段,并根据需要设置字段的显示格式、计算公式等。
此外,还可以添加标题、页眉、页脚等元素,以及设置报表的背景、字体、颜色等样式。
四、创建数据透视表水晶报表还支持创建数据透视表,可以帮助用户更好地分析和汇总数据。
用户可以选择需要分析的字段和计算方式,然后根据需要进行数据透视表的设置和调整。
通过数据透视表,可以快速生成汇总表、交叉表等报表,并进行数据筛选、排序、分组等操作。
五、添加图表水晶报表提供了丰富的图表类型,包括柱状图、折线图、饼图等。
用户可以根据需要选择合适的图表类型,并将数据字段拖拽到图表中进行数据分析和展示。
通过设置图表的样式、颜色、标签等属性,可以使报表更加直观、易于理解。
六、设置报表参数在设计报表过程中,还可以设置报表的参数,以便用户在查看报表时进行灵活的数据筛选和分析。
用户可以添加参数字段,并设置参数的类型、默认值、取值范围等属性。
通过参数设置,可以实现报表的动态筛选和交互式操作。
七、导出报表完成报表设计后,可以将报表导出为不同的格式,如PDF、Excel、Word等。
VS2010中动态创建水晶报表的心得
VS2010中动态创建渴晶报表的心得体会指导老师 吕中华(Y2学术部)作 者 向 根(NET4短训班)半个月之前,老大在班上组织了一个技术委员会帏组,帏组中的每一位成员都被赋予一个技术点,要湂自身在课下努力钻研后,于特定的时间在教室里利用投影设备为班上其他同学做出详细的讲解。
这些技术点,都是我们在B/S项目中所需要用的重要知识点,同时也是现今在工作当中运用的比较广滛的。
与其他成员分到的Lucene检索技术、Log4Net日志记录技术、iTextSharp导出PDF技术、SharpZibLib压缩解压缩不同,我被分到的技术点是:渴晶报表在.NET平台上的使用。
要湂实现的功能是:1.下载安装Crystal Report Designer;2.报表的绘制;3.与ASP集成,动态实现数据库的查询并在渴晶报表中进行显示。
初识渴晶报表之前只是在书上见到过渴晶报表这个词湇,它是内置于VS开发环境中的一种报表设计工具,可帮助程序员在.NET平台上创建高度复杂且专业级的互动式报表。
它协同数据库一起工作,可以帮助用户分析和解释重要的信息,使用渴晶报表既可以创建简单的报表,也可以创建复杂的、专业的报表,它可以从任何数据源生成所需要的报表。
设计好报表后,可以帆其通过多种形式发布,例如word、excel或者web网页等,高级的web渴晶报表还允许工作组中的其他成员在他们自己的web浏览器中查看或者共享报表。
使用Crystal Report还可以在基于GUI设计器中创建复杂而专业的报表,然后帆其链接到几乎所有数据源以及代理数据,例如结果集。
使用GUI中附带的向导,可以方便地进行格式化设置、分组、图标制作和报表。
安装渴晶报表在VS2005和2008的版本中,渴晶报表都是集成在这两个IDE中,在VS2010下,渴晶报表已经不再是VS中的一部分,帽管微软的VS2010中也有自带的报表控件Report View,但是相比渴晶报表中CrystalReportView、CrystalReportDocument,应用范围上还是帏了许多。
VB中如何使用水晶报表
水晶报表(Crystal Report)的业内最专业、功能最强的报表系统,它除了强大的报表功能外,最大的优势是实现了与绝大多数流行开发工具的集成和接口。
在平台做过报表开发的程序员,一定都对水晶报表强大、高效、集成等特性留下了深刻印象。
除了开发新程序外,在工作中我们常需要接触到很多较早的软件系统报表功能升级的需求,如果能结合水晶报表这一强大的工具,往往能事半功倍。
VB是以前流行的数据库开发平台,用其开发的C/S系统在社会上有非常大的保有量,但VB 超弱的报表功能往往让程序员面对客户的升级要求一筹莫展。
本文并不做水晶报表的使用和编程教学,实际上水晶报表本身的使用方法和平台并没有太大的差别,我主要是和大家探讨一下VB和水晶报表的一种较方便的接口方式。
我的开发测试平台是Windows2003 Standard简体中文版、VB6.0+sp5英文版、Crystal 9.0简体中文开发版。
关于在水晶报表中制作报表模板的方法,并非本文的探讨范围,读者可以参考Crystal Report 的帮助文件和官方网站的技术资料。
简单地说,首先要通过水晶报表的数据库引擎手动连接相应的表结构,制作报表模板,并保存为rpt文件,该项操作和利用VB自带的报表工具制作报表大同小异。
用VB调用水晶报表进行报表开发的简单接口方法就是,在水晶报表中用"仅字段定义"来获得字段分布文件,用虚拟的文件创建表字段,用CRAXDRT对象来强制改变数据源(ADO.recordset),其效果相当于在VB中调用了rpt文件。
下面分步骤介绍编程方法。
第一步:在VB工程中Project菜单加入"Add Crystal Report 9",报表名使用默认即可。
这时Form2(Crystal Rerport自动添加的Form,假设名为Form2)被自动分配了如下代码:Option Explicitdim Report as New Cystal1Private Sub Form_Load()Screen.MousePointer = vbHourglass '调用水晶报表时置鼠标为沙漏状CRViewer91.ReportSource = Report '该语句的赋值将在后面被修改CRViewer91.ViewReportScreen.MousePointer = vbDefault '调用水晶报表完成后置鼠标为默认形状End SubPrivate Sub Form_Resize()CRViewer91.Top = 0CRViewer91.Left = 0CRViewer91.Height = ScaleHeightCRViewer91.Width = ScaleWidthEnd Sub第二步:点击Crystal Report设计器的"数据库字段",选定"数据库专家...",然后点"创建新连接",再点"仅字段定义",创建"数据库定义"文件,字段名和宽度和原数据库表保持一致。
使用代码动态设置水晶报表中的文本,字段等对象
如何使用代码动态设置水晶报表中的文本,字段等对象呢?如何使用代码动态设置水晶报表中的文本,字段等对象呢?//VB首先,你必须要声明一个OBJECT变量(eg. TextObject, FieldObject, ......),当然不是一般的对象,而是:Dim xObject As CrystalDecisions.CrystalReports.Engine.FieldObject (字段)Dim xObject As CrystalDecisions.CrystalReports.Engine.TextObject(文本)Dim xObject As CrystalDecisions.CrystalReports.Engine.LineObject(线条)Dim xObject As CrystalDecisions.CrystalReports.Engine.BoxObject(矩形框)......其次,你必须将水晶报表的真实对象赋值给它,例如:xObject = crReport.ReportDefinition.ReportObjects.Item("FieldObjec tName")xObject = crReport.ReportDefinition.ReportObjects.Item("TextObject Name")xObject = crReport.ReportDefinition.ReportObjects.Item("LineObject Name")xObject = crReport.ReportDefinition.ReportObjects.Item("BoxObjectN ame")......然后,你就可以调用它的各种属性和方法了:对于FieldObject,你可以:1.设置数值字段的小数点位数:xObject.FieldFormat.NumericFormat.DecimalPlaces = 42.设置布尔字段的输出类型:xObject.FieldFormat.BooleanFormat.OutputType =CrystalDecision s.Shared.BooleanOutputType.YesOrNo3.设置其他格式如(CommonFormat,DateTimeFormat,DateFormat,TimeForma t)对于TextObject,你可以:1.改变文本:xObject.Text = "嘿嘿"2.改变字体:xObject.ApplyFont(New Font("宋体", 10.0!))3.设置颜色:xObject.Color = Color.Red3.隐藏显示:xObject.ObjectFormat.EnableSuppress = True对于LineObject,你可以:1.设置线条风格:xObject.LineStyle = CrystalDecisions.Shared.LineStyle.DotLi ne2.设置线条颜色:xObject.LineColor = Color.Blue3.设置线条宽度:xObject.LineThickness = 34.设置其他格式(如:位置(top,left,right,bottom),边框等)对于BoxObject,你可以:1.设置填充颜色:xObject.FillColor = Color.Brown2.设置线条风格:xObject.LineStyle = CrystalDecisions.Shared.LineStyle.DotLi ne3.设置线条颜色:xObject.LineColor = Color.Blue4.设置线条宽度:xObject.LineThickness = 35.设置其他格式(如:位置(top,left,right,bottom),边框等)//C#CrystalDecisions.CrystalReports.Engine.TextObject xObject;xObject = (CrystalDecisions.CrystalReports.Engine.TextObject)Cryst alReportSource1.ReportDocument.ReportDefinition.ReportObjects["Text1 "];xObject.Text="条件";。
VB中如何使用水晶报表
水晶报表(Crystal Report)的业内最专业、功能最强的报表系统,它除了强大的报表功能外,最大的优势是实现了与绝大多数流行开发工具的集成和接口。
在平台做过报表开发的程序员,一定都对水晶报表强大、高效、集成等特性留下了深刻印象。
除了开发新程序外,在工作中我们常需要接触到很多较早的软件系统报表功能升级的需求,如果能结合水晶报表这一强大的工具,往往能事半功倍。
VB是以前流行的数据库开发平台,用其开发的C/S系统在社会上有非常大的保有量,但VB 超弱的报表功能往往让程序员面对客户的升级要求一筹莫展。
本文并不做水晶报表的使用和编程教学,实际上水晶报表本身的使用方法和平台并没有太大的差别,我主要是和大家探讨一下VB和水晶报表的一种较方便的接口方式。
我的开发测试平台是Windows2003 Standard简体中文版、VB6.0+sp5英文版、Crystal 9.0简体中文开发版。
关于在水晶报表中制作报表模板的方法,并非本文的探讨范围,读者可以参考Crystal Report 的帮助文件和官方网站的技术资料。
简单地说,首先要通过水晶报表的数据库引擎手动连接相应的表结构,制作报表模板,并保存为rpt文件,该项操作和利用VB自带的报表工具制作报表大同小异。
用VB调用水晶报表进行报表开发的简单接口方法就是,在水晶报表中用"仅字段定义"来获得字段分布文件,用虚拟的文件创建表字段,用CRAXDRT对象来强制改变数据源(ADO.recordset),其效果相当于在VB中调用了rpt文件。
下面分步骤介绍编程方法。
第一步:在VB工程中Project菜单加入"Add Crystal Report 9",报表名使用默认即可。
这时Form2(Crystal Rerport自动添加的Form,假设名为Form2)被自动分配了如下代码:Option Explicitdim Report as New Cystal1Private Sub Form_Load()Screen.MousePointer = vbHourglass '调用水晶报表时置鼠标为沙漏状CRViewer91.ReportSource = Report '该语句的赋值将在后面被修改CRViewer91.ViewReportScreen.MousePointer = vbDefault '调用水晶报表完成后置鼠标为默认形状End SubPrivate Sub Form_Resize()CRViewer91.Top = 0CRViewer91.Left = 0CRViewer91.Height = ScaleHeightCRViewer91.Width = ScaleWidthEnd Sub第二步:点击Crystal Report设计器的"数据库字段",选定"数据库专家...",然后点"创建新连接",再点"仅字段定义",创建"数据库定义"文件,字段名和宽度和原数据库表保持一致。
在VisualBasic.Net中实现微机保护模版及水晶报表的动态生成
图 2 编辑 MP 40 S0 0—10装置方式模版界面 3
电气元件参数数据库将直接被整定计算过程调 用。在数据库服务器上有唯一的电气元件参数数据 库, 是所有电气元件的集合 , 它被所有图纸数据库所
3 1 图纸数 据 库 .
图纸数据库的 目的是为了建立各电气元件间的 拓扑联 系 , 于在 图形 界 面上 显示 电 网结构 。在计 用 算程序中拓扑联 系是通过绘制配置图的操作 自动实 现的, 因此在绘制配置图时将直接对图纸数据库进 行操作 。使用者 每新绘制一张配置图, 计算程序就 将在数据库服务器上 自动建立一个保存此图纸信息 的数据库。图纸数据库包括 以下几个数据表 : 母线 数据表 、 回线数 据表 、 回线 数 据 表 、 本数 据 表 单 双 文 等, 用于记录图形 在图纸上 的起点坐标 、 终点坐标、 在全网数据库中的编号、 文本的内容等等。
括的字段有模版项的索引号、 模版的内容 、 模版所对 应 的装置名称等。利用模版制作的 MP 40 —10 S0 0 3 型线 路保护 模 版界 面如 图 2所 示 。
库和电气元件参数数据 库。此外, 电网中还有多种
微机保护设备 , 本程序为微机保护定值计算提供了
设计模版的功能 , 因此在数 据库服务器上还有微机 保护模版数据库。
维普资讯
20 0 6年第 4期
广西电力
在 Vi a ai. t s l s Ne 中实现 uB c
微机保护模版及水 晶报表 的动态生成
Ac o p ihm e n Dy a i e to f Bo h M i r p o e s r b s d c m ls nto n m c Cr a i n o t c o r c s o - a e Re a i o e to o e nd Cr s a p r n Vi u lBa i . t l y ng Pr t c i n M d la y t lRe o t i s a sc Ne
水晶报表的使用经验和资料总结
水晶报表的使用经验和资料总结资料:中使用水晶报表(上) 2002-9-6 DotNet吧[HTML]在我们对中的水晶报表(Crystal Reports)进行研究之前,我和我朋友对如何将这个复杂的东东加入我们的Web应用有着非常的好奇心。
一周以后,在阅读了大量的“HOWTO”文档之后,我们成功地将一些简单的报告加入到了我们的程序中,并得到了一些小决窍。
这篇文章教你如何在.Net Web应用中使用水晶报表,也可以让你在学习过程中少走一些弯路。
为了得到最好的效果,读者最好需要有一些基础的访问数据库的知识以及使用的开发经验。
简介水晶报表可以由很多的方法得到,其中一个就是使用来创建,它提供了非常丰富模型以使我们能够在运行时操作属性和方法。
如果你正在使用开发.Net程序,那么你就不需要再安装其它软件了,因为他已经内嵌在中了。
优点:水晶报表有下面一些主要的优点:快速的报表开发能够导出成为复杂的交互性图表可以与其它控件一起在WebForm中使用能够动态地将报表导出成为.pdf,.doc,xls,html,rtf等多种格式结构:一些组件组成了水晶报表的二层结构,需要的Web应用有:客户端 :客户端仅需要一个可以访问嵌入aspx页面报表的游览器就可以了服务器 :- 水晶报表引擎(Crystal Report Engine (CREngine.dll))通过它可以完成一些任务,如在报告文件中合并数据,转换报告为其它格式等。
也正是因为报告引擎的作用,才可以将中的水晶报表转换成为普通HTML格式- 水晶报表设计器(Crystal Report Designer (CRDesigner.dll))水晶报表就是在设计器中创建的,在设计器中你可以设计标题,插入数据,公式,图表,子报表等。
- .rpt报表文件执行报表中的第一步就是在水晶报表设计器接口创建此报表,在默认安装中微软已经提供了一些现成的.rpt例子。
- Data Source.rpt文件取得数据库的方法取决于你方法的选择,你能选择让水晶报表自己选择数据而不使用任何代码或者也可以选择手动的组装DataSet,然后再将其传送到报表文件。
水晶报表
水晶报表应用? 水晶报表有下面一些主要的优点:1.快速的报表开发2.能够导出成为复杂的交互性图表3.可以与其它控件一起在WebForm中使用能够动态地将报表导出为pdf,.doc,xls,html,rtf等多种格式.水晶报表中的重要组件:.rpt报表文件在项目中添加crystalreport文件。
创建后在该页面的同一个目录有一个.rpt文件Data Source.rpt文件取得数据库的方法取决于你方法的选择,你能选择让水晶报表自己选择数据而不使用任何代码或者也可以选择手动的组装DataSet,然后再将其传送到报表文件。
水晶报表查看控件(Crystal Report Viewer web form Control (CRWebFormViewer.dll))执行模式Pull 模式:被请求时,水晶报表直接根据指定的驱动连接数据库然后组装这些数据。
1. 显示系统自带的报表文件在CrystalReportViewer1的DataBindings中ReportSource的自定义绑定表达式中格式应该是"F:\\张华杰的文件\\常用文件\\工作文件\\教学资料\\力龙试点班\\STP教学PPT\\第十二讲STP结项管理理论\\程序示例\\CrystalReport\\报表示例\\World Sales Report.rpt" 2. 创建报表文件(.rpt)1) 在右击”解决方案游览器“,在弹出的菜单中选择”添加“--”添加新项“-->”Crystal Report”2) 在”Crystal Report 库”中选择”作为空白报表“单选按钮,最后单击“确定“。
3) 这里将弹出水晶报表设计器。
4) 右击报表中的”详细资料区”,选择“数据库”->“添加/删除数据库..."5) 在弹出的”数据库专家“中,扩展”OLE DB(ADO)“选项,此时会弹出另外一个”OLE DB(ADO)“窗口。
水晶报表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,运行效果如下:。
VC实现水晶报表对数据源的动态绑定和历史数据显示查询
VC实现水晶报表对数据源的动态绑定和历史数据显示查询孙洪伟1 罗杰2(1、武汉理工大学自动化学院,武汉市,430070;2、武汉理工大学信息工程学院,武汉市,430070)摘要:为了对在线钢板的温度数据进行实时检测和存储,以VC++6.0作为平台,建立监控点和PC机之间的串口通信,运用ADO 技术将数据写入Access数据库。
在PC端显示时,采用SQL语句和水晶报表[1]自带的公式语句进行查询,将存储的数据以数据图标的形式进行回放。
而传统的VC平台下对水晶报表的使用大多是绑定单一的数据源,这对多数据库的应用来说是不可行的。
所以,本文基于在线钢板温度建工系统,阐述了如何在VC下实现对水晶报表的动态绑定数据源和历史数据的显示查询。
关键字:VC;水晶报表;数据库;动态绑定中图分类号:TP29文献标识码:AThe vc carries out crystal statement's logarithms to bind to settle according to the dynamic state ofsource with history data to show a searchSUN Hongwei1 LUO Jie2(1、The School of Automation of Wuhan University of Technology;2、The School of Information Engineering of Wuhan University ofTechnology)Abstract: For the sake of to the examination for temperature data to carry on solid of on-line steel plate and saving, with the VC++6.0 as a terrace, the establishment supervision orders with the string of the of PC machine correspondence, the usage ADO technique writes in the data into Access database. When the PC carries to show, the adoption SQL language sentence and crystal statement carry on a search from the formula language sentence taking and carry on a saving data back to put with the data diagram object form .But the VC terrace bottom of tradition to the usage of crystal statement mostly is bind to settle single data source, this says being not viable to the application of many databases. So, this text set up work system according to the on-line steel plate temperature and elaborated how to carry out to the dynamic state of crystal statement and bind predestination according to the source and the history data's showing search under the VC.Key words: VC;crystal statement;Database; The dynamic state binds to settle1 引言在各种各样的监控系统中,PC机往往作为系统监测管理人员查看现场设备状态和数据的主要设备。
复杂水晶报表示例
某高校学生成绩单案例◆本节内容包括:⏹打印某高校学生成绩单案例简介⏹打印某高校学生成绩单实验步骤⏹打印某高校学生成绩单(动态数据)案例6-1-1 案例学习:打印某高校学生成绩单案例某高校标准的学生成绩单的纸质报表样式如图6-1所示。
该纸质报表是一种典型的汇总统计型报表,具有典型的报表页眉,页脚及详细资料显示区域,同时在页脚必须实现对学生成绩的综合成绩统计工作。
因此,掌握该类型报表的设计工作,对一般复杂类型的水晶报表就可以完全设计出来了。
图6-1 学生成绩单纸质报表样式◆实验步骤1:建立一个空的rpt文件,首先进行整个报表的纸张大小设置,这一点对于后期打印报表和报表布局非常重要。
根据办公室人员介绍,该报表的打印纸张必须是B5型打印纸。
向有关人员要来成绩单电子文档,通过Word软件打开文件后,查看该Word文档的页面设置如图6-2所示。
图6-2 电子Word文档的页面设置参数配置从Word文档的页面设置参数信息可以得出,纸质大小为16开,上下边距2.54厘米,左右边距3.17厘米。
这些参数将为水晶报表的格式化定制提供标准的设计参数。
实验步骤2:回到新建立的rpt文件,用鼠标右键单击报表界面,在弹出的对话框中选择当前报表的打印机设置选项,将纸张大小设置成为B5纸,纵向。
如图6-3所示。
图6-3 水晶报表的打印设置◆∙实验步骤3:再用鼠标右键单击报表界面,在弹出的对话框中选择当前报表的页面设置选项,按照WORD文档页边距参数进行配置。
如图6-4所示。
图6-4 水晶报表的页边距设置◆∙实验步骤4:设置报表页眉,该处文本仅仅在第一页头部出现。
从报表的工具箱中选择文本对象,拖到报表页眉处,在报表页眉处键入字样后,点击右键选择设置对象格式。
依次将报表页眉文字进行与纸质报表对应文字字体格式的设置,最终形成的样式如图6-5所示。
图6-5 设置水晶报表的报表页眉文字格式实验步骤5:设计页眉部分,该部分文本将在每页的头部处出现。
[精编]水晶报表-SAPCrystalReports的报表工具你了解吗?
水晶报表- SAP Crystal ReportsSAP金牌服务商北京奥维奥解析水晶报表- SAP Crystal Reports 水晶报表----SAP Crystal Reports水晶报表(CrystalReports)是目前国际上功能最为强大、最流行的报表软件。
作为报表行业的标准,CrystalReports具有以下功能:与企业任何数据源连接、建立业务逻辑的丰富功能、复杂的报表格式和结构、高精度的网络输出和打印输出。
水晶报表(CrystalReports)作为全球通用的报表工具,已经被360家IT厂商OEM到自己的产品中,水晶报表(CrystalReports)可帮助您快速创建灵活、特性丰富的报表,并将它们集成到Web和Windows 应用程序中。
它使您能够访问和格式化数据,利用全面的一套软件开发工具包(SDK)将报表嵌入到Java、.NET和COM应用程序中。
水晶报表(CrystalReports)的强大功能表现在:与企业任何数据源连接、建立业务逻辑的丰富功能、复杂的报表格式和结构、高精度的网络输出和打印输出等方面。
1. 水晶报表SAP Crystal Reports一次设计,任意实施创建结构内容的关键是设计出一个单一的可以满足各种不同用户需要的内容。
因此就需要与企业广泛的数据资源相连接(通常要将来自不同资源的数据放入到一个报表中),并以此为基础为用户提供一个信息概览。
同时,创建业务逻辑、复杂的格式控制和针对不同用户的个性化的内容的创建还需要用到各种灵活的工具2.水晶报表SAP Crystal Reports拥有世界标准标准的工具的价值就在于它强化了产品本身的可用性。
这些标准包括与工业标准有关的任何增值应用:大量的资源、大量的知识储备、与其它企业级软件供应商的合作和集成、易用的咨询和培训、第三方的书籍资料和文件等等。
标准工具对于企业应用的成功起着很大的作用,特别是在技术支持和服务方面。
水晶报表简单制作步骤
为什么水晶报表那么麻烦,每做一张报表都要选表,画线画格子,有没有一种方法可以一劳永逸?做一个模板,然后用不同的表都能用?还有就是能不能动态选择列,而且选择列后能报表能自动适用这个变化?甚至有些人也因为放弃了水晶报表,实际上这些都是水晶报表可以做到的。
在这里,我来讲解一下原理和实现。
希望该文章,能基本上解决这个问题。
当然,这个也不是万能的,也有其适用环境。
本文开发环境:VS2005 / CR XI R2 for .Net第一步:新建一个C#的水晶报表的WinForm空白项目。
在弹出报表数据源选择框的时候,不要选择任何任何数据源,直接点确定,创建一个空白报表。
第二步:项目中添加一个Dataset1.xsd,手工建立一个DataTable,命名为B igTable。
建立6个字段,全部为String型。
为什么用6个呢?这个数字6的确立,是根据你的实际需要,这个表的列的数目,需要大于等于你所需要操作的事实表的最大列数。
用为什么用String型呢?我们知道基本上所有的基础数据类型都可以转换为String,这样我们的这个表基本上可以容纳所有的数据类型。
好了,在报表中添加这个B igtable.将6个字段拖到详细资料节。
对齐。
()注意!不要使用框和线来画格子,这里用的是字段边框,初次操作可以暂时不用,我后面会专门讲一下这个格线的处理。
好了,这样我们的万能模板就做成了。
很简单,是吗?呵呵。
第三步:在w inform上拖上一个combox,一个button,用默认名称接口。
combox1用来选表的名称。
这样界面也完成了。
第四步:实现原理上面的几步下来,有经验的朋友基本上看出来我们是要用PUSH模式来实现了。
既然我们已经在报表里用到了BigTable,那么我们要传递给报表的数据,也就要整形成B igTable的样子。
也就是说,只要能把来源数据表的数据,整形成B igTable的样子,就能用这一个模板显示出来。
而不用管来源表从哪里来,表名是什么,有几个字段(但是字段数目需要小于等于6),字段名是什么,有多少数据。
【推荐下载】C# 用vs2008连接SQL数据库做动态水晶报表
C# 用vs2008 连接SQL 数据库做动态水晶报表2015/10/29 0 博主是个还在上大学的新手,如果有什么说错的地方请务必帮我指出来,谢谢!想要完成一个能够动态改变其中数据的水晶报表,可以通过创建一个数据的中转站来存储和输出数据的方式。
借由这个中转站,我们可以通过为它动态输入数据,然后再将数据导出到水晶报表,来达到得到有动态数据的水晶报表的目的。
仅在vs2008 中,很多它自带的应用也可以达到中转站的作用,比如数组,数据集等。
博主最近刚在学SQL 因此尝试了用VS 连接数据库来做水晶报表。
1.首先,博主在SQL 中创建了名为xxs 的数据库,然后再在数据库xxs 中创建了一张名为xxs_1 的表格,同时在其中建立了名为ques 的列。
2.然后回到vs2008,创建windows 窗体应用程序(博主是为了给数据库录入数据才用窗体的,网友有其他方法就随意了。
)为程序写入代码:1 SqlConnection conn2 = new SqlConnection(); 2 conn2.ConnectionString = “server=.;database=xxs;uid=sa;pwd=123”;3 conn2.Open();4 SqlCommand cmd2 = newSqlCommand(); 5 cmd2.Connection = conn2; 6 mandType = CommandType.Text; 7 string sql2 = “insert into xxs_1(ques) values(@ques)”;8 SqlParameter[] parameters2 = new SqlParameter[] 9 { 10 new SqlParameter(“@ques”, f)12 };13 mandText = sql2;14cmd2.Parameters.AddRange(parameters2);15cmd2.ExecuteNonQuery();16 conn2.Close();17 cmd2.Dispose(); 其中conn2.ConnectionString 是SQL 数据库的路径,字符串sql2 是将要在SQL 中执行的SQL 语句,字符串f 是要为“列ques”添加的数据。
水晶报表制作说明
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:安装和启动水晶报表软件首先,您需要安装水晶报表软件。
访问SAP官网下载并安装最新版本的水晶报表软件。
步骤2:连接到数据源打开水晶报表软件后,选择“文件”菜单中的“数据集”选项。
然后选择您要使用的数据源类型(如数据库、Excel 文件等),并创建一个数据集连接。
根据您选择的数据源类型,您可能需要提供相关的连接信息和凭据(例如数据库服务器名称、数据库名称、用户名和密码等)。
步骤3:创建报表一旦成功连接到数据源,您就可以开始创建报表了。
首先,选择“文件”菜单中的“新建”选项,然后选择报表类型(如表格、柱状图、折线图等)。
接下来,从左侧的报表工具栏中选择适当的工具来设计和配置报表布局。
您可以添加和编辑标题、页眉、页脚、数据字段等。
步骤4:配置报表数据在创建报表布局之后,您需要配置报表数据。
从左侧的报表工具栏中选择“数据”选项卡,并选择要显示在报表中的数据字段。
您还可以对数据进行排序、筛选、分组等操作,以进一步定义报表的显示方式。
步骤5:设置报表样式报表的样式设置对于提高可视化效果非常重要。
您可以在报表工具栏中选择“样式”选项卡来为报表选择合适的颜色、字体、边框等样式。
步骤6:预览和保存报表在完成报表设计后,您可以使用预览功能来查看报表的效果。
选择“文件”菜单中的“预览”选项,在预览模式下查看报表。
如果满意报表的效果,选择“文件”菜单中的“保存”选项,将报表保存到指定的位置。
以上就是一个简单的水晶报表教程,希望对您有所帮助。
请注意,水晶报表是一种复杂的工具,还有许多高级功能可以探索和学习。
您可以参考水晶报表的官方文档和教程,深入了解和使用更多功能。
运用水晶报表制作学生成绩动态趋势图
运用水晶报表制作学生成绩动态趋势图作者:周强来源:《中国教育信息化·基础教育》2011年第10期摘要:文章介绍了用Visual Studio 2005自带的Crystal Report(水晶报表)制作学生成绩动态趋势图的过程和方法,文中使用为开发语言,sql 2000为后台数据库,文章内容为作者设计的学生成绩分析管理系统的一个模块的内容。
关键词:学生成绩;Crystal Report;趋势图中图分类号:G434文献标识码:B 文章编号:1673-8454(2011)20-0063-02一、在XML架构中添加element水晶报表的常规数据源是数据集,但数据集中table默认字段为字符型,不可以更改字段的数据类型,而水晶报表图表中用到的字段一般为数值型,因XML架构中element可以改变字段类型,所以此处选择用XML架构作为水晶报表数据源。
具体方法是:在当前项目中添加新建项,出现的模版对话框中选择XML架构,新建element,这里element名称为xs,名称需与水晶报表数据源dataset中表名一致,添加两个字段:考试名称 string,名次 int。
二、动态更新报表数据源表为了便于对学生成绩进行分析、管理,将学生各科成绩录入或导入到成绩数据库中,通过查询、插入语句将数据库中各成绩表中某学生的考试名称、名次插入到xsb表中,xsb表(考试名称 char,名次 integer)作为水晶报表的趋势图数据源表。
在实际软件设计中,为便于查看,笔者使用treeview控件建立班级、学生的树型二级目录,选中学生快速查询学生的动态趋势。
三、创建水晶报表1.新建空表在当前项目中添加新建项,出现的模版对话框中选择Crystal 报表,报表名称为cryxsqs,在Crystal reports库对话框中选择“作为空白报表(B)”。
2.设置字段在字段资源管理器中选择“数据库字段”,右击选择“数据库专家”,创建新连接,在文件路径中选择步骤一中创建的XML架构文件,选择其中的element xs,这时数据库字段中出现报表中所需的字段名称。
水晶报表不用数据集的动态加载图片
水晶报表一般情况下都是先生成数据集(后缀名是.xsd:方法是在资源管理器上右击添加——>添加新相——>选择数据集)。
但有时候,在水晶报表的数据库专家(方法是:在水晶报表中——>右击——>数据库——>数据库专家)上去添加不上去,或者需要添加数据库名称,用户和密码(这是最烦人的)。
所以,我们想,可不可以不添加数据集,就可以向水晶报表添加动态的字段?试了很多的方法,最后找到了一个方法:1.现在自己的项目中添加一个类(在这我添加了一个类,叫Class1,其中有个字段path,print1,print2)添加完类Class1后,重新生成项目(一定要重新生成,否则在之后的数据库专家中就看不见你要的Class1了)2.添加一个数据集(后缀名为.xsd)如下图(2-1)(2-1)3.添加水晶报表3.1在资源管理中右击——>添加——>添加新项如下图(3-1),选择水晶报3.2添加水晶报表后,出现如下图(3-2)的结果(3-2)3.3当单击确定后,出现如下图(3-3)(3-3)3.4在图(3-3)中右击,结果如下图(3-4)(3-4)3.5 导入数据库如图(3-5)注意:当单击“>>”时,会弹出个框,“请选择文件”中找到刚才添加的数据集(DataSet1.xsd)文件。
单击确定(3-5)3.6 添加数据字段,在水晶报表的右边有个“字段资源管理器”如图(3-6)(3-6)3.7 把字段拖拽到水晶报表中如图(3-7),并保存水晶报表(3-7)4.1添加一个窗体Form2 如图(4-1),并添加控件CrystalReportViewer1,pageSetupDialog1,printDialog1,printDocument1(显示水晶报表,分页,打印)(4-1)4.2 在Form1窗体中添加一个Button1,双击后修改代码如图(4-2)4.3 返回Form2,添加方法如图(4-3)///主要的方法(因为图片放不下了,改用代码现敲了)public List<Class1> getList(){List<Class1> lisapp = new List<Class1>();try{DataTable dt1 = getcheckreport();if (dt1.Rows.Count > 0){string path1 = "";string path2 = "";for (int i = 0; i < dt1.Rows.Count; i++){Class1c = new Class1();c.Path = dt1.Rows[i]["path"].ToString();if (c.Path == @"D:\1.jpg"){path1 = @"D:\1.jpg";}else if (c.Path == @"D:\2.jpg"){path2 = @"D:\2.jpg";}if (path1 != "" && path2 != "") {Changtoprint(ref c, path1, path2);}lisapp.Add(c);}}}catch{ }return lisapp;}最终的结果如图。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
这两天学习如何生成动态水晶报表,看了网上的一些资料,觉得讲得都不是很详细。
今天晚上做一个小的实例,算是对这两天学习的总结吧。
先让我们来看一下现实现的步骤:一、新建一个项目:二、向项目中添加Crystal 报表和DataSet 数据集,报表使用专家向导,在DataSet 数据集中添加一个表,为表添加八列,都使用默认名。
三、为CrystalReport1 设置数据库字段与参数字段。
四:实现代码:using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;using CrystalDecisions.CrystalReports.Engine;using CrystalDecisions.ReportSource;using CrystalDecisions.Shared;using CrystalDecisions.Windows.Forms;/**//**//**//// <summary>/// 动态生成水晶报表////// 王稳嵩////// 2007-10-23/// </summary>namespace WindowsApplication4......{public partial class Form1 : Form......{CrystalReport1 CrystalReport11;ParameterFields paramFields;//定义一个参数字段集对象ParameterField paramField; //定义一个参数字段列表对象ParameterDiscreteValue paramDiscreteValue; //定义离散值参数对象DataSet1 ds1;SqlConnection conn = new SqlConnection("server=(local);Integrated Security = SSPI; database = Northwind");public Form1()......{InitializeComponent();}private void Form1_Load(object sender, EventArgs e)......{this.cmbSqlstring.Items.Add("select orderid,customerid from orders");this.cmbSqlstring.Items.Add("select * from Orders");this.cmbSqlstring.Items.Add("select * from Products");this.cmbSqlstring.Items.Add("等等");}private void butQuery_Click(object sender, EventArgs e)......{if (this.cmbSqlstring.Text != "")......{if (this.cmbSqlstring.Text == "等等")......{MessageBox.Show("兄弟您可真幽默,没有这样的sql语句吧");return;}this.dataGridView1.Columns.Clear();try......{SqlDataAdapter da = new SqlDataAdapter(this.cmbSqlstring.Text.Trim(), conn);ds1 = new DataSet1();da.Fill(ds1, "DataTable1");for (int i = 1; i < 9; i++)......{ds1.Tables[0].Columns.Remove("Column" + i.ToString());//删除DataSet1数据集中的预定义表DataTable1 中预定义的8列columns1 ……;}this.dataGridView1.DataSource = ds1.Tables[0];}catch (SqlException sqlEX)......{MessageBox.Show(sqlEX.Message);}catch (Exception Ex)......{MessageBox.Show(Ex.Message);}}else......{MessageBox.Show("sql语句不能为空");}}private void butPrint_Click(object sender, EventArgs e)......{try......{if (this.dataGridView1.DataSource != null)......{paramFields = new ParameterFields();if (this.ds1.Tables[0].Columns.Count >= 8)......{//查询结果中表的列数大于等于八列时for (int i =, 1; i < 9; i++)......{paramField = new ParameterField(); = "col" + i.ToString(); //设置对象参数字段对象名paramDiscreteValue = new ParameterDiscreteValue();paramDiscreteValue.Value = ds1.Tables[0].Columns[i - 1].ColumnName;//设置对象paramDiscreteValue的值,报表预览中指定的列名ds1.Tables[0].Columns[i - 1].ColumnName = "Column" + i.ToString(); //修改ds1 中DataTable1 中的列名paramField.CurrentValues.Add(paramDiscreteValue); //添加paramDiscreteValue到paramfield实例中paramFields.Add(paramField); //添加到参数字段集中}}else......{//查询结果中表的列数小于八时for (int i = 1; i < this.ds1.Tables[0].Columns.Count + 1; i++)......{paramField = new ParameterField(); = "col" + i.ToString();paramDiscreteValue = new ParameterDiscreteValue();paramDiscreteValue.Value = ds1.Tables[0].Columns[i - 1].ColumnName;ds1.Tables[0].Columns[i - 1].ColumnName = "Column" + i.ToString();paramField.CurrentValues.Add(paramDiscreteValue);paramFields.Add(paramField);}// 为因查询表列数小于八,以CrystalReport1中设定的八个参数字段不能完匹配,所以要为没有匹配的参数字段赋空值for (int i = this.ds1.Tables[0].Columns.Count + 1; i < 9; i++)......{paramField = new ParameterField(); = "col" + i.ToString();paramDiscreteValue = new ParameterDiscreteValue();paramDiscreteValue.Value = "";paramField.CurrentValues.Add(paramDiscreteValue);paramFields.Add(paramField);}}CrystalReport11 = new CrystalReport1();CrystalReport11.SetDataSource(ds1); //为CrystalReport11设置数据源crystalReportViewer1.ParameterFieldInfo = paramFields; //获取或设置参数字段集合。
crystalReportViewer1.ReportSource = CrystalReport11;}else......{MessageBox.Show("还没查询出数据");}}catch (Exception Ex)......{MessageBox.Show(Ex.Message);}}}}五:效果总结:首先建立一个数据集模板,然后建立一个水晶报表,将数据集模板与水晶报表的数据库字段建立连接,再为水晶报表设计打印模式,利用参数字段改变打打印时的列名,最后为水晶报表填充数据源。
要注意的是当我们为数据集定义了一个模板之后,在使用数据适配器填充数据的时,不为数据集新增了一个表,所以在填充数据的时候一定要指定要填充的模板表名,而且要删除原来的定义的模板列。
本例中最重要的是用到了:ParameterFields//包含报表中的每个参数字段的ParameterField 对象。
ParameterField //提供属性,以便检索和设置参数字段的选项和值。
ParameterDiscreteValue //提供属性,以便检索和设置离散值参数。
利用这三个类为先前设置的报表模板中改变参数字段的属性。
比如可以预先设计不同列数量的水晶报表模板,这样可以在打印不同列数时列宽合适分配。
还有因为我也是刚刚学习水晶报表,所以还不是很理解 2005 提供的报表模型,所以希望还能和大家一起学习。