vb设计报表的方法

合集下载

在VB中用数据报表设计器创建报表

在VB中用数据报表设计器创建报表

在VB中用数据报表设计器创建报表数据环境设计器(Data Environment designer)与数据报表设计器(Data Report designer)均是Visual Basic 6.0的新增功能,它们的出现大大增强了Visual Basic处理数据的能力。

在以往的Visual Basic版本中,制作报表都是通过第三方产品来完成并通过ActiveX控件输出的。

这两种设计器的出现,使得Visual Basic程序员再也不用考虑选择一个什么样的第三方工具设计报表了,所有的设计全部在Visual Basic内部完成,再加上Visual Basic 6.0新增的开发IIS应用程序和开发DHTML应用程序功能,使得Visual Basic 6.0是一个名副其实的装备齐全的集成开发环境了。

下面我们以一个比较简单的报表为例,详细阐述如何使用数据环境设计器和数据报表设计器来设计一个数据报表。

一、数据环境设计器与数据报表设计器数据环境设计器提供了一个交互式的设计环境。

通过设置Connection对象和Command 对象的属性,可以快速完成到一个数据源的连接。

对于设置好的数据环境设计器,可以将它的对象拖放到表单上或是报表上,它会自动创建并完成数据绑定控件的设置。

数据报表设计器是一个极为灵活的设计报表的工具。

它以数据环境设计器作为数据源,能创建有层次的、汇总若干个关系型数据表数据的复杂报表。

除了像传统的报表设计工具那样能将报表通过打印机输出以外,数据报表设计器还能以HTML或文本文件的格式输出报表。

二、数据环境对象数据环境设计器包含以下几个对象:1. 数据连接(Connection)对象:连接对象表示到一个作为数据源的远端数据库或本地数据库的连接。

在数据环境中必须至少包含一个连接对象,要使用数据环境存取数据,必须首先创建连接对象。

2. 数据命令(Command)对象:命令对象定义了从数据库连接中将取回什么数据的详细信息。

vb报表设计

vb报表设计

第六节报表设计对一个完整的数据库应用程序来说,制作并打印报表是不可缺少的环节。

VB 6.0 提供了DataReport 对象作为数据报表设计器(DamReport designer),DataReport对象除了具有强大的功能外,还提供了简单易操作的界面。

DataReport对象可以从任何数据源包括数据环境创建报表,数据报表设计器可以联机查看、打印格式化报表或将其导出到正文或HTML页中。

一、报表设计器数据报表设计器由DataReport对象、Section对象和DataReport控件组成。

1.DataReport对象DataReport对象与VB的窗体相似,同时具有一个可视的设计器和一个代码模块,可以使用设计器创建报表的布局,也可以在代码模块中添加代码。

在“工程”菜单上,单击“添加DataReport”命令,将数据报表设计器添加到工程中,则出现如图5-6-1所示的DataReport1对象,由“报表标头”、“页标头”、“细节”、“页注脚”和“报表注脚”组成。

图5-6-1·报表标头:指显示在一个报表开始处的文本,例如用来显示报表标题、作者或数据库名。

·页标头:指在每一页顶部出现的信息,例如用来显示每页的报表标题。

·分组标头、注脚:指数据报表中的“重复”部分。

每一个分组标头与一个分组注脚相匹配,用于分组。

·细节:指报表的最内部的“重复”部分(记录),与数据环境中最低层的Command 子对象相关联。

·页注脚:指在每一页底部出现的信息,例如,用来显示页码。

·报表注脚:指报表结束处出现的文本,例如,用来显示摘要信息或一个地址或联系人姓名。

报表注脚出现在最后一个页注脚之前。

2.Section对象数据报表设计器的每一个部分由Section对象表示,如图5-6-1中的Section1~Section5。

设计时,每一个Section由一个窗格表示,可以单击窗格以选择页标头,编程改变其外观和行为,也可以在窗格中放置和定位控件,对Section对象及其属性进行动态重新配置,更改每一个Section对象的布局来设计报表。

通过VBA实现Excel数据报表的制作方法

通过VBA实现Excel数据报表的制作方法

通过VBA实现Excel数据报表的制作方法Excel是一个功能强大的电子表格应用程序,可以用来处理和分析数据。

在Excel中,使用VBA(Visual Basic for Applications)语言可以自动化执行各种任务和操作。

通过VBA,我们可以实现Excel数据报表的制作方法,提高工作效率和准确性。

本文将介绍通过VBA实现Excel数据报表的步骤和技巧。

首先,需要了解VBA编程语言的基本知识。

VBA是一种基于Microsoft Visual Basic的编程语言,可以用于编写Excel宏。

在Excel菜单栏上,选择“开发”选项卡,然后点击“Visual Basic”图标,即可进入VBA编辑器。

在VBA编辑器中,可以编写和编辑宏代码。

接下来,我们将探讨几种常用的VBA编程技巧,以实现Excel数据报表的制作方法。

第一种方法是使用VBA自动创建并格式化表格。

在VBA编辑器中,可以使用Range对象和Cells属性来指定单元格范围和位置。

例如,可以使用Cells(row, column)来指定特定单元格的位置,并使用Range("A1:G10")来指定一个单元格区域。

通过设置单元格的值、字体、颜色等属性,可以实现表格的自动创建和格式化。

第二种方法是使用VBA自动填充数据。

通过循环和条件语句,在VBA中可以自动获取数据源,并将数据填充到指定的单元格中。

例如,可以使用For循环来遍历数据源,并使用If语句来判断数据的条件,然后将符合条件的数据填充到相应的单元格中。

这样可以快速、准确地填充大量数据。

第三种方法是使用VBA自动计算和统计数据。

通过对数据进行加减乘除等运算,并使用函数来进行统计和分析,可以实现数据报表的自动计算。

例如,可以使用Sum函数来计算一列数据的总和,使用Average函数来计算平均值,使用Count函数来统计某个条件下的数据数量等。

通过编写相应的VBA代码,可以根据需要自动计算和统计各种数据指标。

VBA自动化报表的排版和样式设计方法

VBA自动化报表的排版和样式设计方法

VBA自动化报表的排版和样式设计方法在现代商业环境中,报表在决策和分析中扮演着重要角色。

为了提供有效和准确的信息,报表的排版和样式设计至关重要。

VBA(Visual Basic for Applications)是微软Office套件的编程语言,它为自动化报表的排版和样式设计提供了强大的工具。

本文将向您介绍VBA自动化报表的排版和样式设计方法。

1. 排版方法排版是报表设计过程中的关键步骤之一。

通过使用VBA,您可以自动调整报表的布局,使其整齐、易读,并且视觉上吸引人。

下面是一些VBA排版方法的示例:1.1 行高和列宽的调整:使用VBA,您可以准确设置行高和列宽,以适应报表的内容。

通过调整行高和列宽,您可以确保报表中的文本和数据不会显示截断或混乱。

1.2 自动换行:在报表中,文本可能会因为太长而无法在一行中完全显示。

使用VBA的自动换行功能,您可以确保文本在超过单元格宽度时自动换行,并正确显示在连续的行中。

1.3 单元格合并:有时,您可能需要合并单元格以创建更大的标题或合计行。

通过使用VBA,您可以根据特定的条件合并单元格,并创建具有视觉吸引力和易读性的报表。

2. 样式设计方法样式设计是报表中另一个重要的方面。

通过使用VBA,您可以轻松地对文本、数字、背景颜色等元素进行样式设计。

以下是一些VBA样式设计方法的示例:2.1 字体样式:使用VBA,您可以选择并应用报表中的特定字体类型、字号和字形。

通过改变字体样式,您可以突出显示关键信息,提高报表的可读性。

2.2 文本颜色和背景颜色:通过使用VBA,您可以为文本和单元格选择合适的前景色和背景色。

这可以帮助您创建一个具有一致性和专业外观的报表。

2.3 边框和网格线:通过使用VBA,您可以自定义报表中单元格的边框和网格线。

这使您能够突出显示关键数据,并创建清晰的界限。

2.4 数字格式:使用VBA,您可以对报表中的数字进行格式化,如货币、百分比、科学计数法等。

VB中巧用Excel实现报表设计

VB中巧用Excel实现报表设计

VB中巧用Excel实现报表设计摘要:本文结合实例介绍了在VB中利用Excel实现复制报表的设计的方法,该方法把VB强大数据库管理与Excel灵活的报表设计有机结合起来,简化了编程,提高了程序的便利性。

关键词: Visual Basic Excel 报表引言在数据库应用中,数据报表是非常重要的部分,Visual Basic中的数据报表器可以很方便地创建数据报表,但由数据报表器设计的表格样式单一,功能较少。

微软公司的Excel软件想必大家都很熟悉,它那强大的报表设计功能和简单的操作界面,给大家留下了很深的印象。

若能把VB中的数据输出至Excel格式的报表中,使得VB的数据库管理功能与Excel的报表设计功能结合起来,将大大方便普通用户的使用。

本文借助一个实例详细介绍VB中如何利用Excel进行报表设计的方法。

1.Excel对象借助Excel对象,可以很方便地在VB数据库程序中生成Excel报表。

应用程序的最终用户在Excel环境中对报表做进一步的处理,如格式修改、打印预览、打印及保存等。

Excel对象封装了Microsoft Excel的全部对象,我们主要使用其中的五种对象,详细介绍如下。

Application对象:表示Excel应用对象,可以控制Excel应用程序的外观或功能[1],是访问Excel其他对象的切入点。

Workbook对象:表示Excel中的工作簿,即对应一个Excel文件,可以实现对Excel工作簿的各种控制[1]。

Worksheet对象:表示Excel中的工作表,可以实现对Excel工作表的各种控制[1]。

Range对象:表示Excel中的区间,例如可以代表Excel中的某一单元格、某一行、某一列、某一选定区域[1]。

Cells对象:表示Excel中的一个单元格[2],通过该对象读取Excel中的数据或将数据写入Excel中。

2.操作步骤在VB中借助Excel生成报表,需完成如下工作:(1)在Excel中制作报表模板,设计报表标题、表头的样式,包括字体字号、边框等等。

vb报表设计

vb报表设计

VB 报表设计1、 工程->添加Data Report2、 工程->添加Data Environment3、 打开Data Environment (默认名为DataEnvironment1,可以修改),右击->添加连接,默认生成一个连接Connection14、 右击Connection1->选择属性->提供程序->选择Oracle OLE DB5、 连接属性设置如下,并测试连接。

6. 连接成功后,右击Connection1->添加命令,默认生成Command17. 右击Command1->属性,出现如下设置界面,选择数据库对象(表、视图、过程等)8. 建立DataReport 与Data Environment 的关联点击DataReport1,在属性设置中,将DataSource 设置为DataEnvironment1,DataMember为Command1.9. 设置检索结构在DataReport1上单击鼠标右键,选择“检索结构”命令,出现对话框“用新的数据层次代替现在的报表布局吗?” ,单击“是”按钮,将向报表设计器添加新的分组,分组与数据环境中的Command1命令对象有“一对一”的对应关系。

10.设置DataReport1的各个section(标头,细节等)。

在页标头(PageHeader)下,从控件箱中选择RptLabel控件,将Caption属性设置为“****明细”;·从数据环境设计器中将所需显示的字段拖放到细节(***_Detail)其中住院号:住院号。

前一表示标签(固定文本),后一项表示数据源中的字段·设置DataRe port1属性的“GridX”和“GridY”都为5;使用控件箱中的RptLine在分组注脚添加直线。

在页标头标签添加直线;11. 显示数据报表使用程序代码显示数据报表,在“工程资源管理器”窗口,双击“form1”窗体图标,并窗体上放置一个按钮cmdShow。

在VB中用数据报表设计器创建报表

在VB中用数据报表设计器创建报表

在VB中用数据报表设计器创建报表数据环境设计器(Data Environment designer)与数据报表设计器(Data Report designer)均是Visual Basic 6.0的新增功能,它们的出现大大增强了Visual Basic处理数据的能力。

在以往的Visual Basic版本中,制作报表都是通过第三方产品来完成并通过ActiveX控件输出的。

这两种设计器的出现,使得Visual Basic程序员再也不用考虑选择一个什么样的第三方工具设计报表了,所有的设计全部在Visual Basic内部完成,再加上Visual Basic 6.0新增的开发IIS应用程序和开发DHTML应用程序功能,使得Visual Basic 6.0是一个名副其实的装备齐全的集成开发环境了。

下面我们以一个比较简单的报表为例,详细阐述如何使用数据环境设计器和数据报表设计器来设计一个数据报表。

一、数据环境设计器与数据报表设计器数据环境设计器提供了一个交互式的设计环境。

通过设置Connection对象和Command 对象的属性,可以快速完成到一个数据源的连接。

对于设置好的数据环境设计器,可以将它的对象拖放到表单上或是报表上,它会自动创建并完成数据绑定控件的设置。

数据报表设计器是一个极为灵活的设计报表的工具。

它以数据环境设计器作为数据源,能创建有层次的、汇总若干个关系型数据表数据的复杂报表。

除了像传统的报表设计工具那样能将报表通过打印机输出以外,数据报表设计器还能以HTML或文本文件的格式输出报表。

二、数据环境对象数据环境设计器包含以下几个对象:1. 数据连接(Connection)对象:连接对象表示到一个作为数据源的远端数据库或本地数据库的连接。

在数据环境中必须至少包含一个连接对象,要使用数据环境存取数据,必须首先创建连接对象。

2. 数据命令(Command)对象:命令对象定义了从数据库连接中将取回什么数据的详细信息。

VBA编写自动化报表的技巧与实际案例分享

VBA编写自动化报表的技巧与实际案例分享

VBA编写自动化报表的技巧与实际案例分享在当今数字化时代,自动化报表已成为了企业发展和管理的必要工具。

传统手工填写和整理报表的方式已无法满足高效率和准确性的要求。

为此,许多企业都开始利用VBA(Visual Basic for Applications)编程语言来实现自动化报表的生成和分析。

本文将分享一些VBA编写自动化报表的技巧,并通过实际案例来阐述如何应用这些技巧。

一、技巧一:了解报表需求与数据结构在编写自动化报表之前,首先需要清楚地了解报表的需求和数据结构。

要确定报表需要展示的数据类型、数据来源以及报表的布局形式,这将有助于编写代码时更加高效和准确。

同时,需要明确报表的更新频率和数据更新的方式,以便根据需求设定自动更新的规则和条件。

实际案例:某公司需要自动生成每月销售报表,报表需要展示不同产品的销售额、销售量以及市场份额。

需要先确定每个产品的销售数据来源,例如销售系统的数据库。

然后,根据报表需求设计好数据表格的结构,包括产品名称、销售额、销售量和市场份额等字段。

这将为后续的编写代码提供清晰的目标。

二、技巧二:掌握VBA编程基础知识在编写VBA自动化报表时,需要掌握一些基础的VBA 编程知识。

首先,了解VBA的语法和常见的编程概念,如变量、循环、条件判断等。

其次,熟悉Excel的对象模型,了解如何操作和访问Excel中的单元格、工作表和工作簿等。

最后,学会使用VBA的内置函数和方法,以提高编程效率和减少重复代码的编写。

实际案例:在编写自动化销售报表的VBA代码时,可以使用Excel的Workbooks对象来打开和保存工作簿,使用Worksheets对象来访问和修改工作表中的数据。

通过循环遍历产品销售数据表格,并结合条件判断和内置函数,可以自动计算每个产品的销售额、销售量和市场份额,并将结果写入到报表中的相应单元格中。

三、技巧三:利用VBA的宏录制功能VBA的宏录制功能是编写自动化报表的好帮手。

vb表格设计

vb表格设计

vb表格设计竭诚为您提供优质文档/双击可除vb表格设计篇一:Vb6.0调用excel制作任意表格Vb6.0调用excel制作任意表格在Vb中制作报表一般来讲有三种方法:1、直接使用Vb6.0中自带的dataReport来做,这种方法有很大的局限性,对于比较规则的报表,但对于比较复杂的报表,比如说一张报表,上部分是人员的工资,下部分是人员的各日的考勤,使用这种方法就无能为力。

2、使用直接的打印方法,即printer.print,这种方法直接向打印机打印,就象过去使用Foxpro似的,需要进行打印机定位,并且在windows下,不同的字符数字所占的宽度也不相同,所以这种方法使用起来非常麻烦。

3、使用微软的excel。

本文重点讨论用excel来制作报表所涉及的问题。

我们用excel做报表时,不仅是将所要的内容填到excel的工作表中,而且还需要填写公式、定义合适的格式(格线、字体、对齐)等。

excel的每张工作表是由若干行、若干列构成的,行列的交叉形成的小格称作单元格。

我们正好可以用这些现成的单元格来做我们的报表的相应的格。

为了程序简单,可以将报表的模板做好,如表头,相应的行高、列宽、字体、对齐调整好(事实上,这些也可以通过程序来实现,只是麻烦点。

),然后利用Vb程序来操纵excel。

这里我们以sqlseRVeR7.0为后台数据。

首先定义好需要的变量,在Vb6.0的菜单“工程\引用”中确保microsoftexcel8.0objectlibrary(在excel2000中,此处为excel9.0)复选框选中。

再向excel工作表中填入数据:dimVbexcelasexcel.applicationdimxlbookasexcel.workbook定义excel工作簿对象dimxlsheetasexcel.worksheet定义excel工作表对象dimrssalaryasnewadodb.Recordset定义记录集rssalary.opensqlstrsalary,cnstring,adopenstatic,adl ockReadonlyrssalary为已计算好的工资数据记录集。

VB借助EXCEL实现表格设计

VB借助EXCEL实现表格设计

1、定义EXCE寸象变量dim x as excel.application2、VB中,启动EXCELset x=createobject("excel.application")3、新建一个EXCE T L 作簿x.workbooks.add4、选定工作表1set xsheet=xbook.worksheets(1)5、指定单元格,并赋值xsheet.cell(1,1)=ret.fields(0)6 指定EXCE S L 宽xsheet.column(1).columnwidth=107、RANGE函数,选定单元格区域range(cells(1,1),cells(10,20))& 设置EXCEL字体xsheet.range(cells(1,1),cells(10,20))=" 黑体"9、设置EXCE S L 粗体xsheet.range(cells(1,1),cells(10,20)).fontbold=true10、设置EXCEI表格边框xsheet.range(cells(1,1),cells(10,20)).borders.linestyle=xlcontinuous11 、运行时,显示EXCE S L 隐藏EXCELx.visible=true12、保存工作簿xbook save13、退出EXCELx.quit14、交还控制权给EXCELset x=nothing15、打印EXCEL表x.active.window.selectedsheets.printout copies=numcopies16、退出EXCEL寸,不出现保存提示。

x.displayalerts=false17、怎样运用EXCEI公式?x.range("A3").formula= "=max(A1,A2)"18、E XCEL弋码获取技巧打开EXCEL中的工具----宏----录制新宏,然后进行手工操作,结束后把所的宏代码贴进你的VB程序就行。

VB.NET中ReportViewer设计报表

VB.NET中ReportViewer设计报表

中ReportViewer设计报表
这次做收费系统⽤的,⾥⾯涉及到报表的使⽤,.NET中VS⾃带了⼀个控件ReportViewer,⾸次,打开这个控件看着界⾯有点简单,如同窗体⼀样,不过,仔细看过后会觉的功能还是可以的,⽽且操作简便。

1 我们可以从“⼯具箱”⾥找到该控件并添加到窗体上,如下图:
2 添加报表
我们可以在UI层上右键,选“添加”-->"新建项"-->“报表”。

当然还可以在ReportViewer控件右上⾓选择⼩三⾓,⾥⾯有“设计新报表”⼀项,通过报表向导⾃⼰建⽴。

然后,选择“报表”
2 为报表设置数据源
即⼀个DataSet对象,来存储数据库中数据
单击“完成”就完成了数据源配置。

4 代码中创建数据源实例,设置报表的新数据源。

这个数据源的数据可以是通过条件查询得到,⽤于最后显⽰在报表中。

现在,⼀个基本报表就设计完了,它不仅这些应⽤,更多的功能还有待使⽤。

Visual Basic6.0下数据库报表制作技巧

Visual Basic6.0下数据库报表制作技巧

Visual Basic6.0下数据库报表制作技巧在运用Visual Basic编制MIS系统前台程序时,往往会需要处理大量的报表。

而这些报表的制作,在Visual Basic6.0出现之前,要么需要使用Print语句编写大量程序代码,要么选择诸如Seagate等第三方公司所提供的诸如Data Report等软件,而一旦真正使用这些没有本地化的软件或控件,程序员往往会遇到各种各样令人头疼不已的问题——或者是中文字体显示有所限制,或者是报表数据无法动态及时更新,或者所提供的数据处理或统计功能并不怎么适用。

所幸的是,MicroSoft推出的Visual Basic6.0专业版和企业版中包含一个全新的组件——Data Report Designer (DRD),运用这个报表设计器,我们可以将报表与数据环境对象或者是ActiveX数据对象直接关联,使得Visual Basic6.0下的报表设计效率得到空前提高。

下面,就本人在运用DRD进行报表程序设计所获得的心得与大家共同探讨一下。

一将DRD与DED(Data Enviroment Designer)结合。

这是运用DRD解决Visual Basic6.0报表处理最常用的一种方法,在Samples中有一个名为Prjnwind工程就是专门介绍如何使用结合使用DRD和DED的例子程序。

我们可以通过选择新工程中的Data Project类型就可以自动增加一个空的DED和DRD实例到Project explorer中,打开一个空DataReport实例将禁止工具栏中的General 窗体并在工具栏底添加一个DataReort按钮。

如下图:可以看到,DataReport的专用控件——RptLabel、RptTextBox、RptImage、RptLine、RptShape和RptFunction。

除了RptFunction,每个Rpt控件都可以在固有Visual Basic工具面板中找到对应的控件。

VB操作Excel报表(实例、图例、源码、注释)

VB操作Excel报表(实例、图例、源码、注释)

VB操作Excel报表(实例、图例、源码、注释)VB操作Excel报表(实例、图例、源码、注释)用Excel报表非常方便,而用VB操作Excel更能延长VB的功能范围。

对于重复生成的表格更是非常方便。

字体,行高,列宽,合并单元格,排版等功能都有。

供大家学习研究。

VB中使用Excel控件要先引用哦。

要不你错都不知道哪错了。

郁闷吧!一、报表预览如下1、无内容报表如下:2、填表后预览如下:测试内容,随便填的。

二、界面预览如下:打印记录按钮为Command3三、源码如下:Private Sub Command3_Click()声明一个新的Excel对象Set winkexcel = New Excel.Application该对象可见winkexcel.Visible = True选择第一张表为操作表winkexcel.SheetsInNewWorkbook = 1表添加内容Set winkworkbook = winkexcel.Workbooks.Add设置指定单元格行高列宽Set xlsheet = winkworkbook.Worksheets(1)xlsheet.Rows(1).RowHeight = 45xlsheet.Rows(2).RowHeight = 33xlsheet.Rows(3).RowHeight = 33xlsheet.Rows(4).RowHeight = 33xlsheet.Rows(5).RowHeight = 33xlsheet.Rows(6).RowHeight = 300xlsheet.Rows(7).RowHeight = 100xlsheet.Rows(8).RowHeight = 45xlsheet.Rows(9).RowHeight = 45xlsheet.Rows(10).RowHeight = 26xlsheet.Columns(1).ColumnWidth = 14xlsheet.Columns(2).ColumnWidth = 24xlsheet.Columns(3).ColumnWidth = 14xlsheet.Columns(4).ColumnWidth = 24设置表格内容的对齐方式winkexcel.ActiveSheet.Rows.HorizontalAlignment = xlVAlignCenter'水平居中winkexcel.ActiveSheet.Rows.V erticalAlignment = xlV AlignCenter'垂直居中With winkexcel.ActiveSheet.Range("A1:D1")'合并单元格.MergeEnd WithWith winkexcel.ActiveSheet.Range("B6:D6")'合并单元格.MergeEnd WithWith winkexcel.ActiveSheet.Range("B7:D7")'合并单元格.MergeEnd With画边框线,细线,黑。

VB利用DataReport做报表详解

VB利用DataReport做报表详解

首先介绍下DataReport对象几个常用属性是DataSource用于设置个数据源通过该数据源数据使用者被绑定到个数据库; 2是DataMember从DataSource提供几个数据成员中设置个特定数据成员;3是LeftMargin、RightMargin、TopMargin、BottomMargin等用于指定报表左右上下页边距; 4是Sections即DataaReport报表标头、页标头、细节、页脚注、报表脚注5个区域如果加上分组(可以有多层分组)则增加对区域即分组标头、分组脚注其中DataSource般是个数据环境或是ADODB.Connection类型变量而DataMember则对应数据环境中Command或是ADODB.RecordSet类型变量推荐使用数据环境及Command页边界大家肯定都很清楚下面我主要介绍以下Sections这也是DataReport精髓所在Sections是个集合您可以为每个Section指定名称也可以用其缺省索引从上到下依次为1、2…每个Section均有Height和Visible属性您可以在定条件下使个Section不可见在Section中可以放置各种报表Control控件其中RptLabel、RptImage、RptShape和RptLine可以放在任意Section中用于输出各种文字、图形及表格线;RptTextBox只能放在细节中般用于绑定输出DataMemeber提供数据字段;RptFunction只能被放置在分组注脚中,用于输出使用各种内置计算出合计、最大值、最小值、平均值、记数等等上述报表Control控件中常用公共属性有用于控制位置及高度宽度Top、Left、Height、Width和控制可见性Visible;其中RptTextBox还有DataField、DataMember、DataFormat及Font属性;其他属性不再多说然后介绍下我使用经验是对想控制报表Control控件按类型有规律命名; 2是用RptShape矩形框做表格线框比用RptLine画框省事多了只有斜线才使用RptLine; 3是报表标题及报表中表头文字、日期及页码用RptLabel其中Caption属性支持转义%D为长格式日期%d为短格式日期%P为总页数%p为当前页码(注意:D和d,P和p大小写的区别); 4是对固定报表在设计窗口直接将报表Control控件摆放到位对于活报表应首先考虑报表最大情形将足够Control控件分别放置在区别区域位置大小可以不必深究然后在报表输出前用VBA代码对所有Control控件属性进行调整包括位置、高度、宽度、字体、对齐方式、显示格式、可见性等等相应对Section也应根据情况调整其高度和可见性最后用个例子模板来介绍说明其使用思路方法连接数据库With 数据环境.rsCommand名If .State = adStateOpen Then .Close .Source = SQL语句.Open 打开想输出数据库数据项以便输出End WithWith 报表名.DataSource=数据环境.DataMember=Command名这两行也可固定设好而不必每次设置设置页表头部分(RpttLabel…为报表Control控件名).Sections(2).Controls("RptLabelPage").Caption = "共%P页第%p页".Sections(2).Controls("RptLabelDate").Caption = "打印日期:%D".Sections(3).Controls("RptLabel1").Left=……设置细节部分(RptShapeX、RptTextBoxX为报表Control控件名).Sections(3).Controls("RptShape1").Left=….Sections(3).Controls("RptShape1").Top=….Sections(3).Controls("RptShape1").Height=….Sections(3).Controls("RptShape1").Width=….Sections(3).Controls("RptTextBox1").DataMember=Command名.Sections(3).Controls("RptTextBox1").DataField=字段1.Section s(3).Controls("RptTextBox1")=…….Sections(3).Controls("RptShapeN").Visible=False.Sections(3).Controls("RptTextBoxN").Visible=False…. Sections(3).Height=计算出或固定细节高度动态调整报表标题(RptLabelTitle为报表标签Control控件名).Sections(2). Controls("Rpt LabelTitle").Left=…….Sections(2). Controls("RptLabelTitle").Alignment=……调整完毕后.Show 或 .PrReportEnd With这样做优点是报表设计时简单调整方便、随意只需更改点代码而不必为了点点修改而费神在设计窗口调整半天vb6.0 中,用"datareport" 报表控件制作报表,纸张定义 A4 A3 <上一篇 | 下一篇> '在vb6.0中,用"datareport" 报表控件制作报表,当使用报表预览功能时,"datareport"'报表控件将使用"windows系统的当前默认打印机"的打印设置,若该打印设置纸张尺寸(如A4纸)小于"datareport"'报表控件所需纸张尺寸(如A3纸),则"datareport" 报表预览时将会出现"打印纸张尺寸小于报表宽度"错误,'请教如何用代码设置"windows系统的当前默认打印机"的打印机纸张尺寸,而不需用"公共对话框"的打印设置方法?Option ExplicitPublic Enum PrinterOrientationConstantsOrientPortrait = 2OrientLandscape = 1End Enum'Printer.PaperSize = vbPRPSA3Private Type DEVMODEdmDeviceName As String * 32dmSpecVersion As IntegerdmDriverVersion As Integer dmSize As IntegerdmDriverExtra As IntegerdmFields As LongdmOrientation As IntegerdmPaperSize As IntegerdmPaperLength As IntegerdmPaperWidth As IntegerdmScale As IntegerdmCopies As IntegerdmDefaultSource As Integer dmPrintQuality As Integer dmColor As IntegerdmDuplex As IntegerdmYResolution As IntegerdmTTOption As IntegerdmCollate As IntegerdmFormName As String * 32 dmUnusedPadding As Integer dmBitsPerPel As IntegerdmPelsWidth As LongdmPelsHeight As LongdmDisplayFlags As LongdmDisplayFrequency As Long End TypePrivate Type PRINTER_DEFAULTSpDataType As StringpDevMode As LongDesiredAccess As LongEnd TypePrivate Type PRINTER_INFO_2pServerName As LongpPrinterName As LongpShareName As LongpPortName As LongpDriverName As LongpComment As LongpLocation As LongpDevMode As LongpSepFile As LongpPrintProcessor As LongpDataType As LongpParameters As LongpSecurityDescriptor As LongAttributes As LongPriority As LongDefaultPriority As LongStartTime As LongUntilTime As LongStatus As LongcJobs As LongAveragePPM As LongEnd TypePrivate Const DC_PAPERNAMES = 16Private Const DC_PAPERS = 2Private Const DC_PAPERSIZE = 3Private Const DM_IN_BUFFER = 8Private Const DM_OUT_BUFFER = 2Private Const DM_ORIENTATION = &H1Private Const DM_PAPERSIZE = &H2&Private Const DMPAPER_A3 = 8 ' A3 297 x 420 mmPrivate Const DMPAPER_A4 = 9 ' A4 210 x 297 mmPrivate Const PRINTER_ACCESS_ADMINISTER = &H4Private Const PRINTER_ACCESS_USE = &H8Private Const STANDARD_RIGHTS_REQUIRED = &HF0000Private Const PRINTER_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED Or _ PRINTER_ACCESS_ADMINISTER Or PRINTER_ACCESS_USE)Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _(hpvDest As Any, hpvSource As Any, ByVal cbCopy As Long)Private Declare Function OpenPrinter Lib "winspool.drv" Alias _"OpenPrinterA" (ByVal pPrinterName As String, phPrinter As _ Long, pDefault As Any) As LongPrivate Declare Function ClosePrinter Lib "winspool.drv" _(ByVal hPrinter As Long) As LongPrivate Declare Function DocumentProperties Lib "winspool.drv" _Alias "DocumentPropertiesA" (ByVal hWnd As Long, ByVal hPrinter As Long, _ByVal pDeviceName As String, pDevModeOutput As Any, pDevModeInput As Any, _ByVal fMode As Long) As LongPrivate Declare Function GetPrinter Lib "winspool.drv" _Alias "GetPrinterA" (ByVal hPrinter As Long, ByVal Level As Long, _pPrinter As Any, ByVal cbBuf As Long, pcbNeeded As Long) As LongPrivate Declare Function SetPrinter Lib "winspool.drv" _Alias "SetPrinterA" (ByVal hPrinter As Long, ByVal Level As Long, _pPrinter As Any, ByVal Command As Long) As LongPrivate Declare Function DeviceCapabilities Lib "winspool.drv" _Alias "DeviceCapabilitiesA" (ByVal lpDeviceName As String, ByVal lpPort As String, _ByVal iIndex As Long, ByVal lpOutput As String, lpDevMode As DEVMODE) As LongFunction SetDefaultPrinterOrientation(ByVal eOrientation As _PrinterOrientationConstants, ByVal strPaperSize As String) As BooleanDim bDevMode() As ByteDim bPrinterInfo2() As ByteDim hPrinter As LongDim lResult As LongDim nSize As LongDim sPrnName As StringDim dm As DEVMODEDim pd As PRINTER_DEFAULTSDim pi2 As PRINTER_INFO_2' Get device name of default printersPrnName = Printer.DeviceName' PRINTER_ALL_ACCESS required under' NT, because we're going to call' SetPrinterpd.DesiredAccess = PRINTER_ALL_ACCESS' Get a handle to the printer.If OpenPrinter(sPrnName, hPrinter, pd) Then' Get number of bytes requires for' PRINTER_INFO_2 structureCall GetPrinter(hPrinter, 2&, 0&, 0&, nSize)' Create a buffer of the required si zeReDim bPrinterInfo2(1 To nSize) As Byte' Fill buffer with structurelResult = GetPrinter(hPrinter, 2, bPrinterInfo2(1), _nSize, nSize)' Copy fixed portion of structure' into VB Type variableCall CopyMemory(pi2, bPrinterInfo2(1), Len(pi2))' Get number of bytes requires for' DEVMODE structurenSize = DocumentProperties(0&, hPrinter, sPrnName, _ 0&, 0&, 0)' Create a buffer of the required si zeReDim bDevMode(1 To nSize)' If PRINTER_INFO_2 points to a DEVMOD E' structure, copy it into our bufferIf pi2.pDevMode ThenCall CopyMemory(bDevMode(1), ByVal pi2.pDevMode, Len(dm))Else' Otherwise, call DocumentProperties ' to get a DEVMODE structureCall DocumentProperties(0&, hPrinter, sPrnName, _bDevMode(1), 0&, DM_OUT_BUFFER)End If' Copy fixed portion of structure' into VB Type variableCall CopyMemory(dm, bDevMode(1), Len(dm))With dm' Set new orientationSelect Case strPaperSizeCase "A3".dmPaperSize = DMPAPER_A3 Case "A4".dmPaperSize = DMPAPER_A4 End Select.dmOrientation = eOrientation.dmFields = DM_ORIENTATION + DM_PAPERSIZE End With' Copy our Type back into bufferCall CopyMemory(bDevMode(1), dm, Len(dm))' Set new orientationCall DocumentProperties(0&, hPrinter, sPrnName, _ bDevMode(1), bDevMode(1), DM_IN_BUFFER Or _ DM_OUT_BUFFER)' Point PRINTER_INFO_2 at our' modified DEVMODEpi2.pDevMode = VarPtr(bDevMode(1))' Set new orientation system-widelResult = SetPrinter(hPrinter, 2, pi2, 0&)' Clean up and exitCall ClosePrinter(hPrinter)SetDefaultPrinterOrientation = TrueElseSetDefaultPrinterOrientation = FalseEnd IfEnd Function''''----------------------------------''''---njx:窗体调用的代码:打印纸选用:1:纵向 2.横向'''SetDefaultPrinterOrientation 2, "A3"''''-----------------------------------1.报表的概念利用报表可以把数据表中的数据按一定的格式输出到屏幕上或打印到纸上。

VB生成Excel报表

VB生成Excel报表

Visual Basic中制作报表,通常是用数据环境设计器(Data Environment Designer)与数据报表设计器(Data Report Designer),或者使用第三方产品来完成并通过ActiveX控件输出.但对于大多数习惯于Excel报表的用户而言,用以上两种方法生成的报表在格式和功能等方面往往不能满足他们的要求. 由于Visual Basic的可扩展性,使用和融入Office97的特性,包括Excel是相当方便的.Excel可以用作OLE服务器,向外部输出某些属性,方法和事件.Visual Basic可以利用这些功能,实现与Excel的集成.下面,我们来具体阐述一个用VB来创建Excel报表的例子.一.Excel对象微软的Excel对象模型包括了128个不同的对象,从矩形,文本框等简单的对象到透视表,图表等复杂的对象.下面我们简单介绍一下其中最重要,也是用得最多的四个对象.1. Application对象Application对象处于Excel对象层次结构的顶层,表示Excel自身的运行环境.2. Workbook对象Workbook对象直接地处于Application对象的下层,表示一个Excel工作薄文件.3. Worksheet对象Worksheet对象包含于Workbook对象,表示一个Excel工作表.4. Range对象Range对象包含于Worksheet对象,表示Excel工作表中的一个或多个单元格.二.一个实例1.在Excel中做一个模板在用Visual Basic生成Excel报表之前,应先按照用户的要求在Excel中做好一个模板(文件后缀为.xlt).当然,对于那些格式不固定,需要动态生成的报表,也可在程序中控制其格式.本例需要为用户提供一个工程师工作的评价报告,我们所做的模板Engineer.xlt2.在Visual Basic程序中生成Excel报表我们的例子中使用ADO从数据库中获取工程师工作的有关信息,然后按照模板Engineer.xlt的格式将数据写入Excel工作表中.(1)创建一个新的标准EXE工程文件。

VBA中的表单和报表设计和生成技巧详解

VBA中的表单和报表设计和生成技巧详解

VBA中的表单和报表设计和生成技巧详解VBA(Visual Basic for Applications)是一种用于自动化任务和增强功能的编程语言,它广泛应用于Microsoft Office软件中,包括Excel、Word和PowerPoint等。

在VBA中,表单和报表设计和生成是常见的任务,通过使用一些技巧,可以大大提高效率和准确性。

本文将详解VBA中表单和报表设计和生成的技巧,帮助读者更好地应对这一任务。

1. 使用用户表单设计界面在VBA中,我们可以使用用户表单来设计一个交互界面,以便用户输入数据或者进行选择。

设计用户表单有助于提高用户体验,使得数据输入更加方便和直观。

可以使用控件工具箱中的文本框、下拉菜单、按钮等控件来构建用户表单。

通过编写VBA代码,我们可以根据用户的输入和选择,执行相应的操作,如生成报表或进行数据处理。

2. 动态控制表单和报表的生成在VBA中,我们可以根据需要动态生成表单和报表。

通过循环和条件判断等语句,我们可以根据数据的不同生成不同的表单和报表,避免手动一个一个地生成。

这种动态生成的技巧能够大大提高效率,在处理大量数据的情况下尤为重要。

3. 利用模板生成报表VBA中可以使用模板来生成报表,这样可以保证报表的格式和样式的一致性。

我们可以将报表的模板设计好后,保存为一个文件,然后通过VBA代码打开模板文件,并在其基础上填充数据和进行格式调整等操作。

这种方式不仅可以减少反复设计报表的工作量,还能提高报表的可维护性。

4. 自动化数据处理和计算在生成报表的过程中,经常需要对数据进行处理和计算。

VBA 提供了强大的数据处理和计算功能,可以通过编写代码实现自动化。

例如,我们可以使用VBA代码对数据进行筛选、排序、求和等操作,然后将处理后的结果填充到报表中。

这种自动化数据处理和计算的技巧可以帮助我们节省大量的时间和精力。

5. 使用图表提升报表的可视化效果报表中的图表能够更直观地展示数据的关系和趋势。

VB基础教程:第九章第六节报表制作

VB基础教程:第九章第六节报表制作

9.6 报表制作1. 报表的概念 利⽤报表可以把数据表中的数据按⼀定的格式输出到屏幕上或打印到纸上。

2.制作报表的⽅法 在VB6.0中可以利⽤报表设计器来制作报表,从“⼯程”中选择“添加data report”,将报表设计器加⼊到当前⼯程中,报表由5部分组成: 报表标头——每份报表只有⼀个,可以⽤标签建⽴报表名。

页标头——每页有⼀个,即每页的表头,如字段名。

细节——需要输出的具体数据,⼀⾏⼀条记录。

页脚注——每页有⼀个,如页码。

报表脚注——每份报表只有⼀个,可以⽤标签建⽴对本报表的注释、说明。

使⽤报表设计器处理的数据需要利⽤数据环境设计器创建与数据库的连接,从“⼯程”菜单中选择 “添加Data Enviroment”,在连接中选择指定的数据库⽂件,完成与数据库的连接,然后产⽣Command对象连接数据库内的表。

制作报表的步骤: (1)新建⼯程,在窗体上放置两个命令按钮; (2)从“⼯程”菜单中“添加Data Enviroment”,右击Connection1,在属性中选择“Microsoft Jet 4 OLE DB Provider”,在“连接”中指定数据库; (3)再次右击Connection1,选则“添加命令”,创建Command1对象,右击Command1,在属性中设置该对象连接的数据源为需要打印的数据表; (4)在从“⼯程”菜单中“添加Data Report”,在属性窗⼝中设置DataSource为数据环境DataEnviroment1对象,DataMember为Command1对象,即指定数据报表设计器DataReport1的数据来源; (5)将数据环境设计器中Command1对象内的字段拖到数据报表设计器的细节区; (6)利⽤标签控件在报表标头区插⼊报表名,在页标头区设置报表每⼀页顶部的标题; (7)利⽤线条控件在报表内加⼊直线,利⽤图形控件和形状控件加⼊图案或图形; (8)利⽤DataReport1对象的Show⽅法显⽰报表,在窗体Click事件加代码:DataReport1.Show; (9)利⽤预览窗⼝按打印按钮可以打印报表; (10)利⽤预览窗⼝⼯具栏上的导出按钮可以将报表内容输出成⽂本⽂件或Html⽂件;也可以利⽤DataReport1对象的ExportReport⽅法将报表内容输出成⽂本⽂件或Html⽂件。

VB6.0控制EXCEL进行报表设计及打印!

VB6.0控制EXCEL进行报表设计及打印!

VB6.0控制EXCEL进行报表设计及打印!在工控程序的开发中,经常涉及到数据信息的分析、加工,最终还需把统计结果形成各种形式的报表打印输出。

在Visual Basic中制作报表,通常是用数据环境设计器(DataEnvironment Designer)与数据报表设计器(Data Report Designer),或者使用第三方产品来完成。

但对于大多数习惯于Excel报表的用户而言,用以上方法生成的报表在格式和功能等方面往往不能满足他们的要求。

由于Excel具有自己的对象库,在Visual Basic工程中可以加以引用,通过对Excel使用OLE自动化,可以创建一些外观整洁的报表,然后打印输出。

这样实现了Visual Basic应用程序对Excel的控制。

本文将针对一个具体实例,阐述基于VB和EXCEL的报表设计及打印过程。

1)创建Excel对象Excel对象模型包括了128个不同的对象,从矩形、文本框等简单的对象到透视表,图表等复杂的对象。

下面简单介绍一下其中最重要,也是用得最多的五个对象。

(1)Application对象:Application对象处于Excel对象层次结构的顶层,表示 Excel自身的运行环境。

(2)Workbook对象:Workbook对象直接地处于Application 对象的下层,表示一个Excel工作薄文件。

(3)Worksheet对象:Worksheet对象包含于Workbook对象,表示一个Excel工作表。

(4)Range对象:Range对象包含于Worksheet对象,表示Excel工作表中的一个或多个单元格。

(5)Cells对象:Cells对象包含于Worksheet对象,表示Excel 工作表中的一个单元格。

如果要启动一个Excel,使用Workbook和Worksheet对象,下面的代码启动了Excel并创建了一个新的包含一个工作表的工作薄:Dim zsbexcel As Excel.ApplicationSet zsbexcel = New Excel.Applicationzsbexcel.Visible = True如要Excel不可见,可使zsbexcel.Visible = Falsezsbexcel.SheetsInNewWorkbook = 1Set zsbworkbook = zsbexcel.Workbooks.Add2)设置单元格和区域值要设置一张工作表中每个单元格的值,可以使用Worksheet对象的Range属性或Cells属性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

下面举一个示例,其实现的功能是打开一个工作簿。
Function OpenBook(strFilePath As String) As Boolean
' This procedure checks to see if the workbook
' specified in the strFilePath argument is open.
事实上,可以使用VBscript可以将VB与Excel两者连接起来。以下就简要介绍在VB下开发基于Excel的编程思路。
在VB中处理Excel的对象大致分为五个:Application对象、WorkBook对象、WorkSheet对象、Range对象以及Cell对象。它们的功能分别如下:
相对于Data Report控件来说,Crystal Reports控件的功能更加的完善,报表预览,打印,编辑修改等功能都很完善,所以在实际的报表应用设计方案中,使用Crystal Reports的相对较多。然而Crystal Reports控件也有它的局限性,即它不能在运行时创建自定义的窗口。可以使用控件的数据绑定属性来创建数据绑定报表,但是报表本身的格式都是由Crystal Reports控件内部进行处理的。一般说来,Crystal Reports控件不提供在程序中对报表字段级的访问。这一缺陷可以通过设计出足够多的报表来弥补。
Application---------用来指代整个应用程序。
WorkBook----------表示工作簿对象
WorkSheet---------表示工作表对象,注意,一个工作簿可以包含多个工作表,它们就类似于多文档中的框架窗口和里面的单个视图一样。
Range-------------表示工作表中的某个区域范围对象,特殊情况下也可以只代表一个Cell。
Cell---------------表示特定工作表的一个单元格对象。这个对象的使用频率是最高的。
清楚了以上的五个对象的应用范围,那么使用它们就很简单了,不过在使用这些对象之前,首先需要对它们进行声明。方法是在"工程"的"引用"对话框之下选择"Microsoft Excel9.0 Object Library",这样就将整个Excel对象库就引入到程序中来了。
1.3 Data Report控件的打印功能
对于报表的打印可以直接使用Data report自带的打印功能,即可以实现简易的报表打印。不过为了实现比较复杂的打印功能,也可以通过程序控制的方法来进行。这里只是给出一个实现思路:首先需要制作一个按钮控件来显示"打印设置"的窗口,通过这个窗口用户可以设置打印的相关的参数,然后在实现打印的子模块中使用VB内嵌的printer对象来实现真实的打印,该对象能够对打印的当前位置进行定位,而且对打印的字体等参数进行控制,所以结合"打印设置"窗口可以实现类似于word里面的打印功能。
其中Crystal Reports的插件程序可以从Seagate公司的官方网站上下载最新的测试版本。
3.1 Crystal Reports插件程序的使用
选择"外接程序"菜单的"报表设计器"选项,则VB将执行Crystal Reports Pro插件应用程序。在Crystal Reports Pro里选择"新建报表"图标,可以选择8标准模板和一个自定义的模板来开始报表工程。
4.其他方法
除了通过上述的三种方法来实现报表设计以外,当然也可以直接利用Win32 API来进行直接进行设计,这种方式是最为灵活也是最为繁琐的方式,因为所有的编辑、修改、打印等功能都是由程序控制,所以一般情况下不会使用这样的方式来处理,这里就不介绍了。
5.小结
报表设计是程序员经常要遇到的问题,本文主要介绍目前主流的报表设计方案,由于所涉及到的知识点比较多,限于篇幅,在这里只是作了简要的介绍,希望可以起到抛砖引玉的作用。
2.MS Excel
说起报表设计应用程序,无意微软的Excel是一支独秀,MS Excel就是用来进行表格和报表设计用的应用程序,它具有优秀的方格控制和宏代码定制功能。所以如果在设计自己的应用程序的时候能够结合到Excel的话,那么你的应用程序就应该是相当的完善了,因为无论是编辑还是打印功能,Excel都提供了很完美的解决方案,所以你的应用程序所要做的事情就是实现程序和Excel通讯即可。
1. Data Report控件
1.1 Data Report控件使用方法
由于是VB自带的控件,所以使用相对比较方便。使用方法是:首先在"工程"菜单下面选择"添加Data report"选项,这样Data Report控件就选入到了应用程序。
使用Data report的情况大多数采用数据绑定的模式,也就是将此控件与数据库的数据表绑定起来以便可以不用编写代码就轻松完成报表的设计。要使用数据绑定就必须要指定数据源,这里的数据源不是数据控件而是数据环境(Data Environment),选择"工程"菜单下面选择"添加Data Environment"选项就可以将数据环境添加进应用程序中。数据环境有两个重要的属性:Connection 和Command属性,前者是连接指定的数据库,后者连接指定的数据表,一旦这两者都设置成功之后,就可以把数据环境作为数据源了。只需要把Data report的DataSource属性设置为前面的数据环境对象以及把DataMember设置为数据环境对象的Command对象即可。
' Determine the name portion of the strFilePath argument.
strBookName = NameFromPath(strFilePath)
If Len(strBookName) = 0 Then Exit Function
If Workbooks.Count >0 Then
当程序使用Crystal Reports ActiveX控件时,可以通过再设计时设置Crystal对象属性或者再运行时改变对象属性,来建立应用程序和Crystal Reports之间的连接。通过Crystal控件的属性可以指定:
响应应用程序某个事件的输出报表的名字。
报表的目标位置(预览窗口、磁盘文件或者电子邮件等)。
想要打印的份数(如果报表提交给打印机的置信息(如果报表在预览窗口中显示时)。
选择公式信息(如果在报表中限制记录的话)。
排序信息。
其他相关的属性。
这里要注意一点的是,Crystal控件必须在由Crystal Reports Pro创建的报表中使用,而试图在VB应用程序里引用之前,必须首先创建报表。
做为一个优秀的报表软件,水晶报表是实际应用中最多的方案。在这一节里主要介绍一下水晶报表的定制和显示,打印功能的实现。
首先要区分Crystal Reports插件程序和Crystal Reports控件。前者主要用来创建报表模板,后者主要是用来在程序中显示和打印报表,这两者的分工决定了它们程序中的功能的不同。
1.2 Data Report控件界面元素
完成了Data report控件的数据绑定工作之后就可以直接控制报表的制作与显示了。这里首先熟悉一下Data report控件的显示界面:
Data report控件一共有5个区组成,分别是报表头、页面头、细节区、页面注脚和报表注脚。报表头和报表注脚是用分别用于整个报表的最上部和最下部,它们将出现于整个报表的每一页,可以放置一些报表名称,时间之类的固定文本;页面头和页面注脚只能出现在当前页的最上部和最下部,也就是说它只能出现在当前页中,不出现在其他页面中,可以放置随页面变化的一些量比如页码等;而细节区就是用来进行实际显示的区域,它是我们最为关心的区域,通过在此区域内放置显示控件可以控制报表的实际显示输出。这里介绍一下放置文本框控件的使用方法,其实在绑定情况下只需要设置其DataMember和Datafield即可,前者用来指定数据表,可以设置为前面数据环境对象的Command对象,后者是指定数据段,即绑定的数据库的指定字段。这样不需要编写任何代码就可以实现报表的显示工作。
3.2 Crystal Reports控件的背景知识
Crystal Reports Pro还提供一个报表生成模块,该模块可以连接到并访问VB应用程序,VB程序员不需花费大量时间写自己的代码就可再应用程序中添加复杂的报表生成及输出功能。
Crystal Reports引擎是一个动态链接库,它可以使应用程序访问并具有同Crystal Reports 一样强大的报表输出功能。应用程序是通过Crystal Reports ActiveX控件来访问引擎。再编译时应用程序同报表引擎链接,以给应用程序添加了生成报表的功能。
' If it is open, the workbook is activated. If it is
' not open, the procedure opens it.
Dim wkbCurrent As Excel.Workbook
Dim strBookName As String
On Error GoTo OpenBook_Err
Workbooks.Open strBookName
OpenBook = True
OpenBook_End:
Exit Function
OpenBook_Err:
OpenBook = False
Resume OpenBook_End
End function
3.Crystal Reporter(水晶报表)
整个水晶报表的使用跟第一节的Data Report的使用很类似。首先需要给报表选择数据源,(即数据库),然后就可以在报表中添加、删除、修改字段以及为记录分组,可以利用水晶报表创建很多具有自定义风格的报表。由于本身Crystal Reports插件程序就是一个功能强大的报表设计软件,这里就不能一一的讲解了,有兴趣可以参考程序自带的帮助文档。
相关文档
最新文档