基于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)对象:命令对象定义了从数据库连接中将取回什么数据的详细信息。
VC与VBA结合实现复杂报表

摘 要 介绍了在 )* && 中利用 +,-./01 技术调用 )2+ 对象来制作复杂报表的原理, 以及通过 )2+ 完成一个动态报表任务的具 体过程, 并给出了具体的实现方法。 关键词 )* && )2+ +,-./01 3456 复杂报表
%&$’()& "*+,’("$-&. %&,*%-/ !($ !" && $0. !#$
(Z)报表表头
7#(1J&*1’,"G? 7#(1J&O9’&? -1&G? ;&&X-1&G > G,;&&XL91’!"#$%&’( ‘从设置页眉页脚转换到正文 ;&2&#(1"’? 83A&8&Y( (&Y(: > 4射击训练成绩表4 式改为 “标题 H” ;&2&#(1"’? O9+9<+9AB0"+%9( ? 721<’%&’( > G,721<’O9+9<+9AB.&’(&+ ‘表头文字居中 ;&2&#(1"’? 83A&O9+9<+9AB ;&2&#(1"’? 0"’( ? ;1[& > HN ‘回车, 设置下一段落 ‘设置字体为黑体 ‘输出文字 ‘设置字体大小为四号 “黑体” ;&2&#(1"’? 0"’( ? C9%& > ;&2&#(1"’? 83A& 8&Y( (&Y(: > 44 ‘设置表头文字 ‘将表头文字样 (4标题 H4) ;&2&#(1"’? ;(32& > 7#(1J&!"#$%&’( ? ;(32&)
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利用DataReport做报表详解

VB利用DataReport做报表首先介绍一下DataReport对象的几个常用属性。
一是DataSource,用于设置一个数据源,通过该数据源,数据使用者被绑定到一个数据库;二是DataMember,从DataSource提供的几个数据成员中设置一个特定的数据成员;三是LeftMargin、RightMargin、TopMargin、BottomMargin等,用于指定报表的左右上下的页边距;四是Sections,即DataReport的报表标头、页标头、细节、页脚注、报表脚注5个区域,如果加上分组(可以有多层分组),则增加一对区域,即分组标头、分组脚注。
其中DataSource一般是一个数据环境或是ADODB.Connection类型的变量,而DataMember则对应数据环境中的Command或是ADODB.RecordSet类型的变量,推荐使用数据环境及Command,页边界大家肯定都很清楚,下面我主要介绍以下Sections,这也是DataReport的精髓所在。
Sections是一个集合,您可以为每一个Section指定名称,也可以用其缺省的索引,从上到下依次为1、2…。
每个Section均有Height和Visible属性,您可以在一定条件下使一个Section不可见。
在Section中可以放置各种报表控件,其中RptLabel、RptImage、RptShape 和RptLine可以放在任意的Section中,用于输出各种文字、图形及表格线;RptTextBox只能放在细节中,一般用于绑定输出DataMemeber提供的数据字段;RptFunction只能被放置在分组注脚中,用于输出使用各种内置函数计算出的合计、最大值、最小值、平均值、记数等等。
上述报表控件中常用公共属性有用于控制位置及高度宽度的Top、Left、Height、Width和控制可见性的Visible;其中RptTextBox还有DataField、DataMember、DataFormat及Font属性;其他属性不再多说。
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中用数据报表设计器创建报表数据环境设计器(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创建复杂表格---- 数据库管理系统的开发人员经常感叹的一个问题就是:我们中国人的报表太复杂了!无规则、嵌套、斜线、交叉线等历来都是困挠开发人员的最大问题。
设计一个数据库固然有一定的技巧,设计数据操作也固然需要一定的逻辑分析能力,但这些问题对一般的开发人员来说应该是不成为问题的。
用户可是不管你采用了多么灵活的算法多么方便的操作,他们最感兴趣的是最后他们出来的报表如何漂亮,出报表的操作如何简单(最好是一个按钮解决所有的问题)。
笔者在开发数据库管理系统方面也稍有些经验,从FoxPro、Delphi、Power Builder一直到现在用的VB,都遇到过设计打印报表的问题,这些软件在设计报表的过程中可谓各有千秋,我这里不一一细说。
我在这里只向大家介绍一种我迄今为止最为满意的一种设计打印报表的方法:利用VB操作EXCEL来生成复杂的报表。
---- 一. 用VB创建外部EXCEL对象---- 大多数大型ActiveX-enabled 应用程序和其它ActiveX 部件,在它们的对象层次中都提供了一个顶层外部可创建对象。
该对象提供了对该层次中其它对象的访问,并且还提供对整个应用程序起作用的方法和属性。
---- 例如,每个Microsoft Office 应用程序提供一个顶层App lication 对象。
下面语句显示了对Microsoft Excel的Applicatio n 对象的引用:Dim xlApp As Excel.ApplicationSet xlApp = New Excel.Application---- 然后,可以用这些变量来访问在EXCEL应用程序中的从属对象、以及这些对象的属性和方法。
例如:Set xlApp = CreateObject("Excel.Application")…激活EXCEL应用程序xlApp.Visible = False …隐藏EXCEL应用程序窗口Set xlBook = xlApp.Workbooks.Open(strDestination)…打开工作簿,strDestination为一个EXCEL报表文件Set xlSheet = xlBook.Worksheets(1)…设定工作表---- 二. 用EXCEL 97设计报表的模版文件---- EXCEL 97是一个非常优秀的创建报表的工具。
用VB实现WinCC归档数据的复杂报表

其结果和 )1PY=.Z 中输出的数据一致,由此可证明这种方
法是很有效的。
! 应用实例
用 )1PY=.Z 数据采集软件采集到的数据,用以上方法可以
成功的转换成 2 语言可识别出的数据。下面是一组实测数据进
行转换前后在 )1PY=.Z 环境下和在 2 环境下的对比:
’)删 除 多 余 的 模 板 :
编 程 进 行 归 档 、查 询 、过 滤 、报 表 打 印 ,以 及 对 历 史 数 据 查 询 、过 滤、报表打印。系统充分利用 .M4-, 非常强大的报表处理功能, 以 及 Yc 的 可 扩 展 性 强 ,将 Yc 与 .M4-, 集 成 ,以 实 现 用 户 所 要 求 的 报 表 ;同 时 ,实 现 了 数 据 灵 活 备 份 ,解 决 了 工 程 实 际 问 题 。目 前 该 系 统 已 投 入 运 行 ,性 能 良 好 。
是后台调用 .M4-,。 $)启动 .M4-,、复制模板:
<-+ 8PfQ-[ I Q-[ .M4-,9]HH,*41+*8/ <-+ 8PfQ-[ I 2O-1+-aPf-4+@6.M4-,91HH,*41+*8/6A
<-+ 8PfQ-[ I Q8+:*/^ p*,, ]HH9e1+: U 6L+-?H$9M,76 m 删除临时模板 # 结束语
N-(2DDX.E[ N-F8I T /.3?/DO.K;F)I N-(Y;D<=.[ /.3?/DO.K;(A?0.X.5= ,??;
S(9 数据查询和过滤 使用 *+, 语句实现时间段和数据过滤时间的子查询,并将查
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于VB实现复杂报表设计xx[摘要] 本文介绍了报表设计的几种方法和以往报表设计所存在的问题,并以实例介绍自动生成复杂报表的方法。
实例基于VB软件开发,并以word为模板,通过调用access数据库数据自动生成复杂报表。
[关键词]VB;数据库;Word; 复杂报表The Design Of Complex Reports Based VB[Abstract] This paper reports detailed description of several common methods, previous reports of the existence of the problem, and makes use of example to achieve a complex reporting by using of software. The example based on VB software and used word template, to achieve the common complex reporting software through reallocating database.[Key words] VB; Database; Word; Complex Statements1引言报表是人们在日常生活中对某类相关信息进行集中处理的重要手段,是企业信息化不可缺少的部分。
报表在各行各业中应用广泛,是信息浏览、分析和打印的有力工具。
传统报表系统均以国外简单报表模型为基础设计,不能适应复杂报表的开发。
特别是在处理复杂数据源报表时,常常需要编写代码准备数据或进行子报表拼接才能实现。
1.1传统报表系统存在的问题目前,国内外的报表系统种类繁多,功能界面各具特色,对这些报表系统的比较研究,有助于我们设计出更好的报表系统。
国外的报表系统的技术都比较成熟,适合制作样式简单的报表,但一般都为高端产品,价格不菲,并且在处理具有强烈中国特色的报表时,国外产品不仅报表处理能力相当不适应,甚至某些技术也略显落后,例如部分产品不能稳定地在UNIX上部署,只能支持IE浏览器,统计图输出仍采用原始的CGl方式等。
国内的传统报表系统更适合制作复杂的中国式报表,在报表设计和价格等方面国内报表系统也具有一些优势,但国内的报表系统在服务质量和产品本身的品质等方面还存在着一些不足和缺陷,有待进一步的改进和完善。
无论是国外的高端报表系统,还是国内的传统报表系统,每一种报表系统都有各自的优点和缺点,都有各自擅长的领域,在实际工作中应该根据需要选择合适的报表系统。
面对日益复杂的报表开发需求,尤其是复杂的中国式报表,这些报表系统或多或少都有些力不从心,其主要问题表现在以下三个方面:(1) 复杂数据源的处理能力不足。
报表需要从复杂的数据源或者多个不同类型的数据源中获得数据,获得的数据还可能需要统计,格式转换或其他处理,这些需求都是传统报表系统难于实现的。
(2) 报表的可维护性差。
传统的报表系统生成报表的种类固定,使用方便,但很多软件系统无论在实施还是在维护阶段,报表都会进行频繁的新增和修改,而传统的报表系统缺乏无编码定制能力,系统扩展网难。
一旦用户对报表样式的需求发生改变,就会给软件维护带来许多不必要的麻烦。
(3) 报表保存格式的通用性较差。
报表保存格式不统一,保存格式理解困难,各种报表工具各自为政,报表模板无法兼容,行业也没有形成统一的标准,一旦用户选定了某一报表工具就意味着要一直使用。
如果不幸选择失误,已经做的工作都要重新再来。
总之,利用传统的报表系统制作报表维护量相当大,一个需求对应一个报表文件,不同的组合要求制作大量的报表文件,使得开发过程变得极为繁琐,难以实现用户的需求。
在设计复杂数据源的报表时,或者需要人工转换数据格式,或者要编写大量代码将多个数据源运算成为一个数据源再使用,或者使用拼接子报表的方式来实现,但都没有从根本上解决问题,严重影响报表的设计和使用效率。
因此如何快速制作符合多层结构特点的复杂数据源报表,减轻开发工作量,已经成为报表系统开发的重要问题。
在计算机出现之前,数据需要以纸制文件等形式保存,数据处理是手工进行的,报表的编制也是手工实现的。
随着计算机的广泛应用,人们开始使用计算机及计算机软件实现数据处理,使用数据库管理系统来管理数据,使用应用程序来完成具体的业务操作,报表的编制也开始使用软件来实现。
完成报表编制工作的软件程序称为报表系统或者报表工具。
报表系统的产生改变了报表编制的流程、方法以及编制手段。
报表是信息管理系统中各种数据信息的最终输出结果,是其重要的组成部分。
在信息管理系统的开发过程中,软件设计人员常常需要设计大量的报表,其中相当一部分报表的结构比较类似,需要软件设计人员逐一定义每一个报表的报表对象、数据模型、显示格式等属性,同时还可能对数据存储、导入和导出等操作带来诸多不便,这些繁琐的重复性工作常常花费软件设计人员、操作人员、维护人员大量的精力和时间,影响系统的开发、使用效率。
同时,报表还是信息管理系统中变化性很强的部分。
应用系统交付用户后,随着时间的推移,用户可能需要新的报表,报表的格式、报表的数据要求都有可能发生变化,用户的各种各样的报表要求,仅依靠应用系统预先提供的报表是很难实现的。
从报表系统的发展历史来看,在应用系统进入数据共享的时候,比较专业的报表系统或控件就出现了,并且一直沿用至今。
这些工具的理论模型和需求都出自于国外的需求,这种模型和需求比较符合国外用户的使用习惯,比较适合设计制作样式非常规整,没有表格线,没有斜线表头和分层分组的简单报表。
然而中国人的报表习惯与国外用户存在很大差别,中国的报表也比国外的报表复杂许多。
报表是由“报’’和“表"两部分组成,“报”指数据的汇总统计,即将数据从数据库中取出按一定规则运算统计后排列。
“表”则指格式,数据需要放在单元格中,才能清楚定位,体现数据之间的层次与对应关系。
目前市场上的报表系统大致分为两类,一类基本上能把数据库的数据取出来运算排列制作出动态的报表。
但其格式设计功能不好,一般是采用控件拖放的方式编辑报表,靠一个个矩形边线重合对齐绘制表格,一条直线要拼接多条线段,而且还和分辨率相关,打印出来不整齐。
还有一类仿制Excel的产品,合并单元格、添加边框非常方便,可以快捷地设计出一个复杂格式的报表。
但它们的缺点是数据处理能力太弱,除了简单的格内运算外,与数据库打交道的过滤、分组等统计运算都需要编程实现。
中国报表最困难的地方是数据统计。
中国报表具有的多数据源、整表规则分片、不完全划分、跨行组运算及独立格间运算、行列对称等特征,是传统报表系统无法满足的,常常导致要求编写代码准备数据或拼接子报表才能完成一个复杂报表的制作。
表样格式复杂也是中国报表比较麻烦的地方,中国报表均要求有整齐的表格线,多层表头层次分明。
业内有名的报表系统一般采用控件式拖拽的绘制方案,制作表格非常烦琐,且还与分辨率相关,屏幕与打印不一致,而中国报表对打印样式要求向来很高。
中国报表还会有填写的需求,前端需要支持各种填写控制,如编辑风格、自动计算、合法性校验等;填写好的数据能够方便地写入数据库以进行下一步的统计汇总。
而很多报表软件不支持填写能力,一般的填报解决方案都不能自动处理数据入库的问题,导致相应的编程工作量仍然很大。
1.2国内外研究现状大部分通用软件领域,国外产品都要相对优秀。
早期的报表系统软件是由国外的公司和研究机构设计实现的,适合制作样式非常规整,没有格线,表头简单的国外报表。
国外的报表系统都具有各自的原创技术,又经过了多年的发展和完善,其技术相对都比较成熟,但是国外的报表系统在报表样式绘制方面的能力比较弱,在价格上一般都比较昂贵,所以经常被称作高端产品。
例如挪威QuSoR公司专门为Delphi编写的QuickRepon报表组件,使用QuickReport可以迅速设计出符合西方人习惯的报表,从功能和设计上来说,不失为一个较好的报表设计工具,但对于报表设计的灵活性,及在程序编译完毕后用户对报表的可修改性等方面还远远不能满足用户的需要。
国外典型报表系统中,著名的有Excel,Cwstal Report,Fo彻ula One等,随着.NET 技术的不断发展,近年来国外已经出现了一些基于.NET环境的报表系统,例如MicrosoR的Reporting Services技术,Ⅵsual Studio 2005集成的报表解决方案,C搿stal Reports f1叫Visual Studio.NET,Developer Express公司开发的X仃aReports报表组件和ComponentOne公司开发的C 1 Reports报表组件等等。
其中MicrosoR的Reportillg Services 技术是基于服务器的报表解决方案,可以用来创建和管理包含关系数据源和多维数据源中的数据的表格、矩阵、图形和自由格式的报表,并可通过网络连接来查看和管理报表。
Reporting Services在报表的制作、分发和报表数据的安全性等方面都有很好的表现,功能比较全面,但是需要微软众多企业级解决方案的支持,并且价格相当昂贵。
国内的报表系统主要是使用Java和Visual C++设计实现的传统报表系统,传统报表系统是指一些主要以条带式设计为基础的开源软件以及国内的一些仿制产品。
这些报表系统的数学模型都是基于SQL/OLAP理论设计的,虽然不断地进行改进,但根本处理方案并没有本质的变化,远远不能满足国内复杂报表的制作需求。
近年来不断推出的新版本以及新报表系统都只是在技术上改进,如从C/S移植到B/S、支持JaVa等,而理论模型仍是原来的传统方式,所以仍然算是传统报表系统。
传统报表系统最显著的特征是主编辑画面呈条带状,以模拟SQL中的seIect和Group运算;大部分报表系统采用繁琐的拖拽式编辑(有个别报表系统开始采用方便的表格式);交叉表要采用专门的类OLAP模型处理,样式和运算都比较死板。
国内比较有名的报表系统基本上都是Java报表系统,主要有用友华表(Cell)和润乾报表等。
润乾报表是一个功能非常强大的纯Java报表产品,各方面都很出色,其新一代报表模型采用了革命性的多源分片、不规则分组、动态格间运算、行列对称等技术,能设计实现很多原来传统报表系统中很复杂,甚至很难实现的报表。
但是由于润乾报表设计方式完全依赖手写表达式,对于没有编程基础的普通用户来说,学习使用润乾报表的难度较大。
1.3常见的典型报表工具及其介绍目前常见的典型报表工具中,著名的有Excel,UniversalForms,Oracle9i Reports,Formula One等,国内也推出了许多报表工具。