水晶报表打印设置
水晶报表的基本使用方法
水晶报表的基本使用方法水晶报表是一种用于数据分析和可视化的工具,它可以帮助用户更好地理解和展示数据。
在使用水晶报表时,我们需要掌握一些基本的使用方法,以便能够灵活运用它的功能。
下面将介绍水晶报表的基本使用方法。
我们需要了解水晶报表的界面。
水晶报表的界面通常由菜单栏、工具栏、报表区域和数据源区域组成。
菜单栏包含了各种功能选项,可以通过点击菜单栏上的选项来进行相应的操作。
工具栏中则提供了一些常用的工具按钮,方便我们快速进行操作。
报表区域是我们设计和展示报表的主要区域,我们可以在这里对报表进行编辑和预览。
数据源区域则是用于连接数据源和导入数据的区域。
在开始设计报表之前,我们首先需要连接数据源。
水晶报表支持多种数据源的连接,包括数据库、Excel文件、文本文件等。
我们可以通过点击数据源区域中的相应按钮来选择并连接数据源。
连接成功后,我们就可以在数据源区域中看到已连接的数据表。
接下来,我们可以开始设计报表了。
水晶报表提供了丰富的报表设计功能,可以满足各种需求。
我们可以通过拖拽字段到报表区域来选择需要展示的数据,并可以对数据进行排序、筛选、分组等操作。
在报表区域中,我们可以选择不同的报表类型,如表格、柱状图、折线图等,来展示数据。
我们还可以对报表进行样式设置,如调整字体、颜色、边框等,以使报表更加美观。
除了基本的报表设计功能,水晶报表还提供了一些高级功能,如参数设置、公式计算、数据透视等。
参数设置可以让用户在使用报表时输入参数,以实现动态查询和筛选数据的目的。
公式计算可以用于对数据进行复杂的计算和分析。
数据透视可以帮助我们对大量数据进行汇总和分析,以便更好地理解数据。
在设计完报表后,我们可以对报表进行预览和输出。
水晶报表可以生成多种输出格式,如PDF、Excel、HTML等,我们可以根据需要选择相应的输出格式。
在预览报表时,我们可以查看报表的实际效果,并可以进行调整和修改。
在输出报表时,我们可以选择输出的范围和文件名,并可以设置一些输出选项,如是否包含页眉页脚、是否自动换页等。
水晶报表打印设置
水晶报表打印设置
水晶报表打印设置
最近都反应进行打印的时候,每次需要手工选择打印机和纸张大小,操作比较麻烦,现在提供一种解决方案,具体操作如下:
1、确保安装成功。
2、删除系统的默认的打印机。
开始——〉打印机和传真——〉,找到系统打印机。
打印机的名字是:Microsoft XPS Document Writer,找到删除。
3、设置默认打印机的打印纸张规格。
一、开始——〉打印机和传真——〉,找到默认的打印机。
右击选择打印首选项。
二、弹出界面如图:
然后选择右下角的【高级】。
三、打开高级界面,在纸张规格一栏选择【PSD】然后点击确认。
设置好这些之后,再打印票据的报表时就会默认【默认打印机】和【PSD】了。
补充说明:
1、实施的时候一定要注意票据打印纸的规格是宽:22cm,高:9.31cm。
2、开发人员在开发报表的时候,一定要注意选择打印的规格,是A4还是其他。
水晶报表教程
水晶报表是一个功能壮大的报表工具,此刻已经被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, T3FROM T Where T1=''{?parm}''” parm就是参数名以下例子中所用到的水晶报表文件中利用的SQL语句是“Select T1, T2, T3 FROM T Where T1=''{?parm}''” parm确实是参数名。
水晶报表使用简单教程
6. 在报表设计器中调整需要显示的字段的位置、宽度等。
7. 在窗口中添加代码。
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim oRpt As New CrystalReport1()
2. 展开“ 数据集”文件夹。
3. 选择所需数据集对象。
例如,如果当时使用的是从项目“WindowsApplication1”的架构文件“Dataset1.xsd”中生成的数据集对象,则应该选择“WindowsApplication1.Dataset1”。
4. 选择要向报表中添加的表,和使用其他数据源一样。
5. 单击“保存 Dataset1.xsd”来保存“Dataset1.xsd”文件。
6. 在“生成”菜单上,单击“生成”为项目生成数据集对象。
数据集对象提供数据的描述,从它可以向 Crystal report 添加表。使用 Crystal Report Designer 中的“数据库专家”从 数据集对象添加表。
水晶报表使用简单教程
分类: 数据库开发技术
水晶报表使用简单教程[@more@]水晶报表是一个优秀的报表开发工具,本人在开发通用管理系统的时候,所有报表都使用水晶报表,其简单、易用和强大的功能令笔者倍加喜爱,现将水晶报表使用手记呈现给大家。
一、在使用自带的水晶报表时,请注册,否则只能使用30次
daDetails.Fill(dsdataSet, "Order Details")
'使用“报表引擎”对象模型将填充的数据集,传递给报表
2019-1-17水晶报表技巧总结【二】
2019-1-17⽔晶报表技巧总结【⼆】第⼀条:⽔晶报表分组分页且每页最多显⽰N条记录要求:1、详细节最多5条记录(不能超过5条);2、⽆论前⼀组是否满5条记录,每个新组都要另起⼀页3、可以显⽰组内分页的情况,即:显⽰⼀个组被分为⼏页并且当前是第⼏页我们知道每页最多显⽰N条的控制⽅法,打开节专家,在详细节后⾯新建页公式编辑:RecordNumber mod N = 0RecordNumber即记录数,⽆论分组与否,是⾃动随记录递增的,所以在这⾥,我们不能⽤RecordNumber,⽽应该是在每个新组前要重置这个RecordNumber,⽤这个重置的RecordNumber来取模控制每页最多显⽰5条记录,于是我们很⾃然就想到了运⾏总计字段,由它来帮我们重置RecordNumber,这样我们应该就很明朗了,接下来让我们⼀起去设计模板:报表按ID分组就不⽤再提及了吧?(右击报表空⽩处->插⼊->组)⾸先新建⼀>运⾏总计字段汇总字段:XXX(最好选择的字段和分组字段不同)汇总类型:计数求值:对于每个记录重置:组更改时设计好后把,字段放到【详细资料】中,根据需要可以抑制显⽰。
点击节专家,【详细资料】-->【在后⾯也新建页】勾上-->设置公式:字段是刚刚建⽴的【运⾏总计字段】{#RTotal0} mod 10=0针对需求2,与需求1同理,只不过此时我们是在#组尾(组页脚)节在后⾯页新建页的公式编辑:Not OnLastRecordOnLastRecord意指最后⼀条记录,Not OnLastRecord⾃然是⾮最后⼀条记录,在这⾥就是指⾮最后⼀条记录时就在后⾯页新建页,最后⼀条记录时就不⽤再新建页了。
若不⽤该公式控制的话,报表的最后⼀页总是空⽩页(没有详细节数据)需求3:组内分页及显⽰页码新建⼀个【公式字段】公式设置如下:记录的组记录总数:count(⼀个报表参数,分组参数);前者最好是运⾏总计的字段。
一、经典水晶报表设计三则之分栏
一、经典水晶报表设计三则之“分栏”借助"多列格式化"功能实现。
1. 启用"多列格式化"功能。
(1) 进入“节专家”对话框,并在“节”当选择“详细资料”。
(2) 在"公用"选项卡选中“多列格式化”,现在会出现“布局”选项卡。
2. 调整布局,实现分栏效果。
要想分两栏,调整“详细资料大小”的宽度,确保宽度的两倍小于去除页边距后的页面宽度,才能一行显示两行记录。
要想分三栏,调整“详细资料大小”的宽度,确保宽度的三倍小于去除页边距后的页面宽度,才能一行显示三行记录。
依次类推,实现其它栏数的分栏。
参考:“布局”选项卡(节专家)介绍当选定详细信息部分且选中“公用”选项卡上的“多列格式化”框后,出现“布局”选项卡。
使用“布局”选项卡以多列格式设置报表。
即,不是一直沿着页面向下打印数据,而是能够设置多列以使数据在列之间流动。
还能够在页面上按先行后列的方式打印数据,即先打印每列中的第一个记录,然后打印每列中的第二个记录,然后打印第三个记录,依此类推。
该对话框分为四个更小的框。
详细资料大小该框使您能够指定一个详细资料的尺寸(高度和宽度)。
肯定所希望的每一个详细资料的宽度(基于字符数、字体大小,等等)并在“宽度”编辑框中输入该值。
确定所希望的每个详细资料的高度(基于详细资料内的行数、字体大小等)并在“高度”编辑框中输入该值。
一、载入报表时报错千辛万苦,总算作完了程序,报表在开发机械上测试一切正常,做安装项目,生成后兴冲冲的拿到客户机上去实验,晕,载入报表时却报错(如图1),怎么会???仔细检查了程序代码,实在没有任何错误,看来问题出在报表发布上了。
图1通过一番苦苦寻觅,总算找到了问题所在。
原来环境下发布项目时水晶报表需要包括以下三种组件:报表(*.rpt)模块(*.msm)运行库(*.msm)这些模块文件是在C:\Program Files\Common Files\Merge Modules\ 目录里面,别急,让我慢慢跟您说。
水晶报表讲义
水晶报表讲义[键入文字]水晶报表课程讲义苏州工业园区博思企业管理咨询有限公司1 / 58[键入文字]第一章水晶报表的作用 ..................................................................... ............................... 4 第二章做一个简单的报表 ..................................................................... .............................. 4 第三章报表打印位置与打印机设置 ..................................................................... ................ 6 1、报表打印位置 ..................................................................... ............................................ 6 2、打印机设置 ..................................................................... ................................................ 7 第四章数据库专家 ..................................................................... ............................................ 7 第五章报表中字段 ..................................................................... ............................................ 7 1、数据库字段 ..................................................................... ................................................ 7 2、公式字段 ..................................................................... .................................................... 8 3、sql表达式字段 ..................................................................... .......................................... 8 4、参数字段 ..................................................................... .................................................... 8 5、运行总计字段 ..................................................................... .......................................... 10 6、特殊字段 ..................................................................... .................................................. 11 7、文本字段 ..................................................................... .................................................. 11 8、图片字段 ..................................................................... .................................................. 12 第六章排序、分组、过滤 ..................................................................... .............................. 14 1、排序 ..................................................................... .......................................................... 14 2、分组 ..................................................................... .......................................................... 15 3、过滤 ..................................................................... .......................................................... 16 第七章多节报表 ..................................................................... .............................................. 17 1、防止可变长度的对象相互覆盖 ..................................................................... .............. 17 2、当字段为空时消除空白行 ..................................................................... ...................... 18 3、在特定情况下添加空白行 ..................................................................... ...................... 19 4、使对象延续到后续节 ..................................................................... .............................. 21 第八章图表 ..................................................................... ...................................................... 21 1、图表类型 ..................................................................... .................................................. 21 2、使用数据库中字段绘制图表 ..................................................................... .................. 28 3、使用汇总或小计字段上绘制图表 ..................................................................... .......... 34 4、在交叉表中绘制图表 ..................................................................... .............................. 38 第九章 OLE对象 ..................................................................... .. (38)2 / 58[键入文字]1、插入静态OLE对象 ..................................................................... .................................. 39 2、插入嵌入对象 ..................................................................... .......................................... 39 3、插入链接对象 ..................................................................... .......................................... 40 第十章交叉表 ..................................................................... .................................................. 41 1、交叉表示例 ..................................................................... .............................................. 41 2、在交叉表中插入图表 ..................................................................... .............................. 43 第十一章报表警报 ..................................................................... .......................................... 46 第十二章公式 ..................................................................... .................................................. 47 1、公式的用途 ..................................................................... .............................................. 48 2、公式的创建 ..................................................................... .............................................. 48 第十三章自定义函数 ........................................................................................................... 50 1、自定义函数的使用 ..................................................................... .................................. 50 第十四章子报表 ..................................................................... .............................................. 53 1、子报表与主报表之间的区别 ..................................................................... .................. 53 2、何时使用子报表 ..................................................................... ...................................... 53 3、将不相关的报表组合到单个报表中 ..................................................................... ...... 54 4、一对多查询 ..................................................................... .............................................. 55 5、协调无法链接的数据 ..................................................................... .............................. 57 6、在单个报表中显示相同数据的不同视图 ...................................................................583 / 58[键入文字]第一章水晶报表的作用一、创建所能想象的任何报表Crystal Reports 几乎可以从任何数据源生成您需要的报表。
CrystalReport水晶报表详细教程
将服务器资源管理器中的 Book 表拖 至“数据集”选项卡
16
水晶报表应用程序示例 8-3
从“生成”菜单中选择“生成解决方案” 为该项目生成一个数据集对象 注意:生成的数据集对象不包含实际的数据,只包含对数据库结构的描述
17
水晶报表应用程序示例 8-4
Chan Cho
销售员
40
7600
David Blake
销售员
40
6500
Scott William
销售员
40
8500
部门 40 的总薪金是 22700
6
水晶报表简介 4-4
水晶报表是 Visual Studio 环境(包括 Visual )中用于创建报表的标准工具
利用水晶报表可以创建交互式的优质报表 不仅能为 WinForms 和 WebForms 创建报表,还
行政人员
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
Blake
Jones
William
Johns
职位: 销售员
职位: 行政人员 职位: 销售员 职位: 分析员
部门: 40
部门: 10
部门: 40
一、经典水晶报表设计三则之“分栏”
/net
要查找有关其它支持选项、产品升级以及补充产品的信息,请访问
https://
感谢您选择 CR for the .NET Platform 。
Business Objects
访问。分析。报告。共享。
3.在 Crystal Report 库中,选择下列选项之一:
使用报表专家 —指导您完成报表的创建过程,并将您的选择添加到 Crystal Report Designer。
作为空白报表 —打开 Crystal Report Designer。
来自于现有的报表— 创建新报表,它与指定的另一报表设计相同。
'将该参数添加到参数字段集合。
paramFields.Add(paramField)
'第二个参数为区域值。paramField变量
'被设置为新值,这样,以前的设置就不会被覆盖。
paramField = New ParameterField()
'设置参数字段的名称,它必须
'和报表中的参数相符。
paramField.ParameterFieldName = "客户ID"
确定所希望的每个详细资料的高度基于详细资料内的行数字体大小等并在高度编一载入报表时报错千辛万苦总算作完了程序报表在开发机器上测试一切正常做安装项目生成后兴冲冲的拿到客户机上去试验晕载入报表时却报错如图1怎么会仔细检查了程序代码实在没有任何错误经过一番苦苦寻觅总算找到了问题所在
一、经典水晶报表设计三则之“分栏”
图5
3、重新生成安装项目,没问题,只是生成的安装程序一下子大了七、八兆。
二、系统注册
报表在部分Win98的客户端可以载入,在部分Win98的客户端载入报表时却提示"Load ReportFailed"(如图6),可恶,居然还出错,怎么回事?
水晶报表操作步骤
●新建一个项目:文件>>>>新建>>>>项目>>>Windows窗体引用程序●建报表1.右键添加“新建项”,选择“Crystal报表”(后缀名为.rpt)添加报表以后,项目下的引用会出现以下关于报表本身自带的数据集:2.选择“作为空白报表”3报表的大小在Crystal Reports(R) >>> 设计>>>打印机设置>>>大小4可以用线条对象,框对象画表格,用文本对象添加显示的文本5以下这些字段都可往报表里直接拖拽也可点击右键“插入“点击“主报表预览“效果:页眉:时一张表的表头详细资料:是要显示的数据(如果要打印预览的话,可以把所有的字段都放到详细资料里) 美化表格1.按住“Ctrl”键+鼠标左键点击文本对象右键“设置多个对象的格式”文本在表格里对齐方式:选中文本对象右键“设置多个对象的格式”>>> “共用”>>> 水平对齐方式:默认,左,居中,右,两端对齐。
文本四周添加边框:选中文本对象右键“设置多个对象的格式”>>>“边框”:无,单线,双线,短划线,点线。
调整文本字体:选中文本对象右键“设置多个对象的格式”>>> “字体“:段落:选中文本对象右键“设置多个对象的格式”>>> “段落“超级链接:选中文本对象右键“设置多个对象的格式”>>> “超级链接“1.右键添加“新建项”,选择“程序集”(后缀名为.xsd)2.工具箱>>>>数据集:拖拽一个DataTable 右键添加“列”注意:表名与sql查出来的表名取名要一致。
每一列的值跟数据库里字段的类型一致(点击“每一列“属性里的DataType)报表里进行汇总只能针对数字类型加载数据集1.右键“数据库字段”>>>“数据库专家”>>>“数据集”:把需要的数据源选中后点击“”如果添加了新的字段后选中“数据库字段”右键点击“验证数据库”即可刷新新的字段。
c#水晶报表使用说明
c#⽔晶报表使⽤说明⽔晶报表介绍⽔晶报表是 vs 早期版本⾃带的⼀款报表控件。
vs2017不⾃带⽔晶报表,需要⾃⾏安装。
虽然⽔晶报表是收费控件,但是微软已经付过钱了,所以vs⾃带的⽔晶报表可以直接使⽤。
如果项⽬是 .net 4.0 以上版本,需要修改 App.config ⽂件。
因为⽔晶报表的 .net 版本可能低于 .net 4.0在软件发布的时候需要把对应的config⽂件⼀起发布,否则也⽆法使⽤⽔晶报表<startup useLegacyV2RuntimeActivationPolicy="true"> //在这⼀⾏加⼊ useLegacyV2RuntimeActivationPolicy="true"<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/></startup>在解决⽅案资源管理器中添加数据集DataSet1.xsd,在数据集中添加 DataTable.新建 Crystal Reports ⽂件在解决⽅案资源管理器中新建 Crystal Reports ⽂件: CrystalReport1.rpt 。
添加后左侧会出现 “字段资源管理器” 。
如果不⼩⼼关掉字段资源管理器,可以在 “视图” “其它窗⼝” “⽂档⼤纲” 将其调出。
vs的⼯具箱中也会出现相应的控件。
可以将⽂本对象添加到报表中。
⽂本对象常⽤属性:CanGrow (可以⾃动换⾏) HorAlignment (居中,靠左,靠右)。
在数据库字段右键选择数据库专家。
添加项⽬数据中的 DataTable1在 “组名字段” 右键插⼊组。
选择 DataTable1 中的字段,排序⽅式选择按原始顺序(⽔晶报表的排序⽅式不实⽤,⼀般在设置 DataTable 时⾃⾏排序)。
水晶报表的5种格式
水晶报表的5种表格设计模式概述与国外不同,国内的报表多以表格为主,所以用水晶报表实现表格虽然不太方便,但必须面对!组成表格的框线分为上框线、下框线、左框线、右框线、内部横框线、内部竖框线六种,而上框线、下框线、内部横框线又属于横框线,左框线、右框线、内部竖框线又属于竖框线。
在水晶报表里可以通过线、框、对象边框来实现,且听我慢慢道来……目录一、准线协助1. 对象未动,准线先行。
2. 使用准线对齐表格的框线。
3. 使用准线对齐行、列。
4. 使用准线定位行、列。
5. 使用准线调整列宽和行高。
二、多节框1. 绘制表格的外部框线。
2. 绘制表格的内部横框线。
3. 绘制表格的内部竖框线。
三、节内线1. 将表格的标题行和数据行分离,分别绘制表格框线。
2. 绘制标题行部分的表格框线。
3. 绘制数据行部分的表格框线。
四、多节定位1. 防止可变长度的对象相互覆盖。
2. 防止数据库字段和下框线相互覆盖。
五、对象边框1. 用对象边框模拟表格的框线。
2. 将表格的标题行和数据行分离,并用对象边框模拟表格框线。
3. 用文本对象的边框模拟标题行部分的表格框线。
4. 用数据库字段的边框模拟数据行部分的表格框线。
一、准线协助1. 对象未动,准线先行。
准线是一些非打印线条,可以将其放在"设计"选项卡和"预览"选项卡上的任何位置以帮助对齐。
它们具有对齐属性,使对象自动与其对齐。
对齐功能不仅使您能够轻松加精确地对齐报表对象,而且还可以同时对多个对象重新定位并调整大小。
(1) 显示、插入、移动和删除准线①显示准线选择"视图"菜单上的"准线"命令。
使用"设计"命令可以在"设计"选项卡中显示或隐藏准线。
使用"预览"命令可以在"预览"选项卡中显示或隐藏准线。
注意:在"预览"选项卡上,必须选择一个对象才能看到准线。
管理信息化中水晶报表的打印与精确打印的实现
管理信息化中水晶报表的打印与精确打印的实现作者:艾灵仙来源:《中国管理信息化》2009年第04期[摘要]在管理信息化中,虽然说是“无纸信息化”时代,但是实际上在很多场合离不开纸质的打印或精确打印。
本文主要论述用Visual Studio 2008在.NET网页中如何添加Microsoft SQL Server数据库和报表源,如何创建报表文件,如何通过添加按钮控件及相关代码实现B/S 架构下水晶报表的打印与精确打印。
[关键词]管理信息化;水晶报表;打印;精确打印[中图分类号]F232[文献标识码]A[文章编号]1673-0194(2009)04-0012-02随着计算机技术的发展与普及,越来越多的单位或部门已基本实现无纸管理信息化,但是在一些场合现在还不能完全无纸化,还要将计算机处理结果以报表形式通过打印机输出到纸上,如公司产品销售的发票打印、企业资格证等。
在B/S架构中,常规的打印方法是使用浏览器文件菜单中的“打印”。
使用这种方法打印虽然简单,但打印出来的页面会出现你所不希望出现的页眉、页脚、页码及背景等,还会出现版面不美、布局不好的现象,而且无法实现精确打印。
本文以技术为基础论述如何使用VS 2008实现B/S架构下的网页内容的打印与精确打印。
一、用VS 2008创建Microsoft SQL Server数据库1. 打开VS 2008,新建一个Web窗体项目。
2. 在“视图”菜单中选择“服务器资源管理器”或者使用热键Ctrl+Alt+S将“服务器资源管理器”打开,见图1。
3. 在窗口的左边栏,用鼠标右键单击“数据连接”,在弹出的浮动菜单中选择“创建新的SQL Server数据库”,则有新窗口弹出,在该窗口中选择“服务器名”,如“47012CAAD3A04CE\SQLEXPRESS”(如果“服务”中的SQL Server Browser没有开启,则找不到服务器名),再填上“新数据库名称”,如“library”。
CS水晶报表与打印实用学习教案
正文应包括达到该报表目的所需的全部数据。还应包括所确定的不同用户所需的全部 数据。这一步骤要求考虑可用的数据库表。在创建报表时,Crystal Reports允许您组合 来自不同数据库的数据,从而使工作具有很大的灵活性。
第3页/共20页
中国(zhōnɡ ɡuó)铁道出版社
中国(zhōnɡ ɡuó)铁道出版社 第八页,共20页。
10.3 NET下水晶(shuǐjīng)报表 传递数据
10.3.2 推模式
与拉模式最大的区别是使用推模式时需要开 发人员编写代码以连接到数据库,执行SQL
命令以创建与报表中的字段匹配的记录集或
数据集,并且将产生的数据传递给报表。该
方法要求将数据库连接的操作置入应用程序
➢ Crystal Reports 能够用多彩的、易读的图表显示汇总的数据。本节介绍如何创建图表以及如何 在报表中使用图表,使得报表数据更有意义并且更易于理解。不但可以从大量图表布局和类 型中选择,而且能够深化以查看图形汇总的详细资料并格式化图表对象。
➢ 条形图
➢ 大多数条形图(也称作柱形图)显示或比较多个(duō ɡè)数据组。两种有用的条形图是并排条 形图和堆积条形图。
中国(zhōnɡ ɡuó)铁道出版社
第10页/共20页
第十一页,共20页。
10.3 NET下水晶(shuǐjīng)报表 传递数据
中出现的字段时,根据 默认,活动表中每个记录的字段值都将打印。 在许多情况下,可能不想包括所有值,而只 想包括这些值的子集。例如,可能只想包括:
中国(zhōnɡ ɡuó)铁道出版社
第5页/共20页
第六页,共20页。
10.2 报表(bàobiǎo)设计概念
C#、水晶报表和报表打印设置相关的综合
获取宾馆的身份证读卡器读取的信息,然后用报表打印出来,双击左边的列表里面的客户名字,在右边显示信息,然后可以打印出来,点击“获取最新客人信息”按钮会获得最新登记的客人信息。
用到的技术:水晶报表(通过数据库推送数据生成新的报表类容)访问ACCSEE数据库C#winForm编程C#访问ACCESS数据库、动态生成水晶报表、C#和水晶报表、水晶报表打印纸张设置、C#获取系统默认打印机的选定纸张所用软件:ACCESS2007VS2010水晶报表2008整个C#项目主要文件如下图:crystalReport1.rpt为报表模板文件dataset1.xsd为数据集框架,有个自定义的数据表,包含报表模板文件(crystalReport1.rpt)里面用的一些字段,用SQL语句向其中填充数据,然后附加给报表,生成报表XMLFile.xml为添加的一个xml配置文件,里面保存的有ACCESS数据库的访问密码信息,在随时手动更改using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Data.OleDb;using CrystalDecisions.ReportSource;using CrystalDecisions.CrystalReports.Engine;using System.Drawing.Printing;using System.Xml;namespace getPeopleInfo{public partial class Form1 : Form{public Form1(string str1){InitializeComponent();GetConnectString = str1;}private string connectString;protected string GetConnectString{get { return connectString; }set { connectString = value; }}OleDbConnection localConnectStr = new OleDbConnection(); //定义针对access数据库的的OleDb类型的连接对象ReportDocument myreport = new ReportDocument();DataSet1 datasetForRpt = new DataSet1(); //DataSet1是一个数据库集模型,这里创建一个它的实例引用,专门用于给水晶报表推送数据的DataSet datasetForCustList = new DataSet(); //定义客人列表数据集string rptPathString = AppDomain.CurrentDomain.BaseDirectory + "CrystalReport1.rpt"; //当把报表模型文件放在debug文件里面的时候用此语句获取报表的完整路径private void Form1_Load(object sender, EventArgs e){localConnectStr.ConnectionString = GetConnectString;myreport.Load(rptPathString); //加载报表myreport.SetDataSource(datasetForRpt); //设置报表数据源Printbutton.Enabled = false; //打印按钮暂时不可用,因为报表还没显示出数据}private void newCustPrint_Click(object sender, EventArgs e) //双击listBox框里面的选项事件{datasetForRpt.Clear(); //清除报表数据集中的数据OleDbDataAdapter dataAdapterGetCusList = new OleDbDataAdapter("SELECT top 1 姓名,性别,民族,出生,公民身份号码,住址,CStr(读取时间) as 读取时间FROM 身份证信息order by 读取时间desc ", localConnectStr);dataAdapterGetCusList.Fill(datasetForRpt, "DataTable1");myreport.SetDataSource(datasetForRpt);PrintDialog pd1 = new PrintDialog();int rawkind = pd1.PrinterSettings.DefaultPageSettings.PaperSize.RawKind;myreport.PrintOptions.PaperSize = (CrystalDecisions.Shared.PaperSize)rawkind;//把枚举数值转换为纸张类型//myreport.PrintOptions.PaperSize = CrystalDecisions.Shared.PaperSize.DefaultPaperSize;this.crystalReportViewer1.ReportSource = myreport;Printbutton.Enabled = true;}private void buttonGetCustList_Click(object sender, EventArgs e){listBoxCustomers.Items.Clear(); //清除列表里面已经有的项,防止重复显示datasetForCustList.Clear(); //清空内存中的客人列表数据集中的数据,防止重复添加OleDbDataAdapter dataAdapterGetnewCus = new OleDbDataAdapter("SELECT 姓名,公民身份号码,CStr(读取时间) as 读取时间FROM 身份证信息where 读取时间>#"+dateTimePicker_begin.Value.ToShortDateString()+" 00:00:00# and 读取时间<#"+dateTimePicker_end.Value.ToShortDateString()+" 23:59:59# order by 读取时间", localConnectStr);dataAdapterGetnewCus.Fill(datasetForCustList);foreach (DataRow dr in datasetForCustList.Tables[0].Rows){listBoxCustomers.Items.Add(dr[0].ToString() + " " + dr[1].ToString() + " " +dr[2].ToString());listBoxCustomers.Items.Add("\r\n"); //添加回车换行符}}private void listBoxCustomers_DoubleClick(object sender, EventArgs e){if (listBoxCustomers.Items.Count>0&&(listBoxCustomers.SelectedIndex>=0)&&(listBoxCustomers.SelectedItem.ToString()!="\r\n")){datasetForRpt.Clear();string[] sArray = listBoxCustomers.SelectedItem.ToString().Split(' ');OleDbDataAdapter dataAdapterGetCusList = new OleDbDataAdapter("SELECT distinct 姓名,性别,民族,出生,公民身份号码,住址,CStr(读取时间) as 读取时间FROM 身份证信息where 姓名='"+sArray[0]+"' and 公民身份号码='"+sArray[2]+"' and CStr(读取时间)='"+sArray[4]+" "+sArray[5]+"'", localConnectStr);//OleDbDataAdapter dataAdapterGetCusList = new OleDbDataAdapter("SELECT distinct 姓名,性别,民族,出生,公民身份号码,住址,读取时间FROM 身份证信息where 姓名='" + sArray[0] + "' and 公民身份号码='" + sArray[2] + "' and 读取时间=Cdate('" + sArray[4] + " " + sArray[5] + "')", localConnectStr); 用CDate函数也行dataAdapterGetCusList.Fill(datasetForRpt, "DataTable1");myreport.SetDataSource(datasetForRpt);PrintDialog pd1 = new PrintDialog();int rawkind = pd1.PrinterSettings.DefaultPageSettings.PaperSize.RawKind; //获取打印机首选项中的打印纸张类型的枚举数值myreport.PrintOptions.PaperSize = (CrystalDecisions.Shared.PaperSize)rawkind; //把枚举数值转换为纸张类型,并设置报表的打印纸张类型为系统默认打印机首选项中设置的打印纸张类型//myreport.PrintOptions.PaperSize = CrystalDecisions.Shared.PaperSize.DefaultPaperSize;//上面一句设置报表的打印纸张类型为系统默认打印机驱动中的默认打印纸张类型,打印机驱动中的默认纸张类型和打印首选项中的纸张类型也许不一样,不用这句this.crystalReportViewer1.ReportSource = myreport; // 生成报表Printbutton.Enabled = true;}}private void buttonPrint_Click(object sender, EventArgs e){myreport.PrintToPrinter(1, false, 0, 0);}private void SearchCustbutton_Click(object sender, EventArgs e){string inputName = textBoxCustName.Text.Replace(" ","");if (inputName.Count() > 1){listBoxCustomers.Items.Clear(); //清除列表里面已经有的项,防止重复显示datasetForCustList.Clear(); //清空内存中的客人列表数据集中的数据,防止重复添加OleDbDataAdapter dataAdapterGetnewCus = new OleDbDataAdapter("SELECT 姓名,公民身份号码,CStr(读取时间) as 读取时间FROM 身份证信息where 姓名like '%"+ inputName +"%' or 公民身份号码='" +inputName+ "'", localConnectStr);dataAdapterGetnewCus.Fill(datasetForCustList);foreach (DataRow dr in datasetForCustList.Tables[0].Rows){listBoxCustomers.Items.Add(dr[0].ToString() + " " + dr[1].ToString() + " " + dr[2].ToString());listBoxCustomers.Items.Add("\r\n"); //添加回车换行符}}else{MessageBox.Show("请输入正确的查询信息!");}}}}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
水晶报表打印设置
最近都反应进行打印的时候,每次需要手工选择打印机和纸张大小,操作比较麻烦,现在提供一种解决方案,具体操作如下:
1、确保安装成功。
2、删除系统的默认的打印机。
开始——〉打印机和传真——〉,找到系统打印机。
打印机的名字是:Microsoft XPS Document Writer,找到删除。
3、设置默认打印机的打印纸张规格。
一、开始——〉打印机和传真——〉,找到默认的打印机。
右击选择打印首选项。
二、弹出界面如图:
然后选择右下角的【高级】。
三、打开高级界面,在纸张规格一栏选择【PSD】然后点击确认。
设置好这些之后,再打印票据的报表时就会默认【默认打印机】和【PSD】了。
补充说明:
1、实施的时候一定要注意票据打印纸的规格是宽:22cm,高:9.31cm。
2、开发人员在开发报表的时候,一定要注意选择打印的规格,是A4还是其他。