vb打印报表:利用VB设计打印复杂报表

vb打印报表:利用VB设计打印复杂报表
vb打印报表:利用VB设计打印复杂报表

vb打印报表:利用VB设计打印复杂报表

疯狂代码 https://www.360docs.net/doc/6217781803.html,/ ?:http:/https://www.360docs.net/doc/6217781803.html,/VisualBasic/Article14883.html

a---- . 用vb创建外部excel对象 ---- 大多数大型 activex-enabled 应用和其它 activex 部件在它们对象层次中都提供了个顶层外部可创建对象该对象提供了对该层次中其它对象访问并且还提供对整个应用起作用思路方法和属性

---- 例如每个 microsoft office 应用提供个顶层 application 对象下面语句显示了对microsoft

office/9.shtml\' target=\'_blank\' =\'article\'>excel application 对象引用:

dim xlapp as excel.application

xlapp = excel.application

---- 然后可以用这些变量来访问在excel应用中从属对象、以及这些对象属性和思路方法例如:

xlapp = createobject(\"excel.application\")

‘激活excel应用

xlapp.visible = false ‘隐藏excel应用窗口

xlbook = xlapp.workbooks.open(strdestination)

‘打开工作簿strdestination为个excel报表文件

xlsheet = xlbook.worksheets(1)

‘设定工作表

---- 2. 用excel 97设计报表模版文件

---- excel 97是个非常优秀创建报表工具它提供单元格任意合并、拆分和绘图功能基本上能够满足设计所有复杂报表需求它对任意个单元格格式随意控制更为随心所欲地设计报表提供了强大支持

---- 根据用户提供报表我们可以很快在excel里生成模版文件所谓生成模版文件只是为了满足用户多方面需求而设计也是为了适合报表以后更改而做点预备工作例如用户需要打印几百张职工履历表但其格式都是致并且随着时间和实际情况变化表格格式有可能需要改变我们设计个模版文件显然可以“以不变应万变”了

---- 生成工作表时我们应当记录下要填充内容单元格编号和该单元格内要填充数据字段这样形成个表格在写时目了然如:

cell(4,2) 职工姓名 cell(6,6) 毕业学校

cell(4,4) 职工性别 cell(6,7) 所学专业

cell(4,6) 职工民族 cell(6,9) 工作时间

(表)

---- 在里我们当然不要对模版文件进行操作了我们只需要对模版文件个拷贝进行操作就行(这也是我们设计模版文件个目和好处)如下面例子:

dim strsource, strdestination as

strsource = app.path & \"\\excels\\registerfee.xls\"

‘registerfee.xls就是个模版文件

strdestination = app.path & \"\\excels\\temp.xls\"

filecopy strsource, strdestination

‘将模版文件拷贝到个临时文件

---- 3. 生成工作表内容

---- 有了上述两步工作铺垫我们下面接着就只要根据(表)格式给各单元格赋值了如:

datprimaryrs.record.movefirst

‘datprimaryrs为dataControl控件

isnull(datprimaryrs.record!姓名) = false then

xlsheet.cells(4, 2) = datprimaryrs.record!姓名

end

isnull(datprimaryrs.record!性别) = false then

xlsheet.cells(4, 4) = datprimaryrs.record!性别

end

isnull(datprimaryrs.record!民族) = false then

xlsheet.cells(4, 6) = datprimaryrs.record!民族

end

………………

---- 4. 打印报表

---- 生成了工作表后就可以对excel发出打印指令了

---- 注意在执行打印操作的前应该对excel临时文件执行次保存操作以免在退出应用后excel还提示用户是否保存已修改文件让用户觉得莫名其妙如下语句:

xlbook.save ‘保存文件

xlsheet.prout ‘执行打印

xlapp.quit ‘退出excel

---- 至此读者应该看到我们设计报表打印是通过excel来后台实现用户根本看不到具体过程他们只看到张张漂亮报表轻易地被打印出来了

2009-2-12 3:49:15

疯狂代码 https://www.360docs.net/doc/6217781803.html,/

VB设计报告

南京工程学院 课程设计说明书(论文)题目打字练习 课程名称VB语言课程设计 院(系、部、中心) 专业 班级 学生姓名 学号 设计地点图书馆基础教学机房 指导教师 设计起止时间:201x年x月x日至201x年x月x日 目录

一、设计任务 (3) 二、方法原理 (3) 三、总体设计思路 (3) 四、程序调试和解决问题 (4) 五、完善及存在的问题 (4) 六、收获体会 (4) 七、意见建议 (4) 八、示例截图 (5) 九、附录1(代码) (6) 十、附录2(主要参考资料) (10) 一、设计任务 1.题目介绍

在计算机及其他数码产品日益普及的今天,人们使用键盘应像用笔写字一样熟练。进行打字练习时熟悉键盘并提高打字速度的好方法。本体要求编制一个打字练习游戏程序,使用户在游戏过程中进行打字练习。 2.功能要求 (1)启动界面如图1 (2)选择难度和速度后,单击“开始”按钮,界面如图1。若选择简单,则落下字母;若选择复杂,单击开始后出现对话框,如图 2.单击确定,开始练习,落下单词。 (2)若用户在字符落到屏幕底部之前敲击了相应的键盘键,则该字符被“击中”然后消失。根据程序速度和难度的设置自动进行积分,实时分数时间正确率掉落个数显示在窗体的上部。 积分规则:正确击中一个字母或一个单词,加一分;反之,不得分,亦不扣分。(4)当游戏者单击“暂停”按钮时,程序停止运行,在单击“开始”按钮,程序继续运行;当单击“退出”按钮时,则弹出对话框(如截图示例3),单击“取消”按钮,程序继续运行,单击“确定”按钮,则弹出对话框(如截图4),此时对话框显示分数,单击“确定”按钮,退出程序。 (5)为了增加视觉效果,每个掉落的字符的颜色随机产生。 二、方法原理 根据题目要求,使用控件数组,用标签标题表示字符,键盘事件的处理判断打字正确与否,随机值的产生方法随机产生字符,用Timer控件属性反映时间、控制字符下落速度。 三、总体设计思路 首先在窗体上画出三个按钮标题分别为开始、暂停、退出。画六个标签分别表示已落字母个数、已花时间、得分与正确率。 画出一个含有五个元素的标签控制数组用以显示字符。 画出两个时间控件,一个用来返回已用时间,一个控制字符下落。 最后编写相关代码

[Excel图表]制作动态分析图表的三种方法

制作动态分析图表的三种方法 (文/ ExcelPro的图表博客) 动态图表是图表分析的较高级形式,一旦从静态图表跨入动态图表,则分析的效率和效果都会进入另一个境界,可以让用户进行交互式的比较分析。商业杂志上的图表都是静态图表,现在它们的在线杂志则经常提供交互式图表。作为分析人士,制作一个优秀的分析模型,必然不能缺少动态图表这个元素。 水晶易表比较适合于做动态图表,CX中可支持图表的切片、钻取等操作,如点击饼图的某个扇区、柱形图的某个柱子,可以让另外一个图表跟随变化。Excel中一般可以做到切片操作,钻取操作则难以做到,好像没有这种事件可以捕捉。好在是一般商业分析中,我们只需要做变化条件的切片操作就可以了。这篇日志就整理一下有关Excel动态图表的内容。 一、动态图表的做法 很多人觉得动态图表很高级、很神秘,其实它的制作原理也很简单,技巧只在于变化图表的数据源。Excel中常见的做法有3种。 1、辅助序列法。 这是最常用的办法,比较直观和容易理解。设置一个辅助数据区域,根据用户的操作选择,将目标数据从源数据区域引用到辅助数据区域,用辅助数据作图。当用户选择改变,辅助区域的数据随之变化,图表也就变化。

引用数据一般要用到几个函数,offset、index(+match)、Vlookup、choose等。这几个函数是excel的精髓之一,特别是Vlookup被称为查找函数之王,用得好可以完成很多分析任务,老外的书中有很多例子。 点这里查看上图的案例文件。 2、定义名称法。 与前述方法相比,省去辅助数据区域,直接用名称提供图表数据源。根据用户选择,将目标数据定义到名称中,用名称做图表的数据源。当用户选择改变,名称所指向的区域随之变化,图表也变化。 方法同前,一般使用offset函数。因需多一道脑筋,所以我一般用这种方法不多,今天暂不整理。 以上两种方法,如果需要详细了解,可参考这个帖子,snood版主整理的很好了,我也不啰嗦了。 3、图片引用法。 这种方法不多见,一般在人事管理应用中有用到,我把它用到图表的动态切换。 前两种方法都是通过切换同一个图表的数据源来实现图表的动态变化,这种方法则是通过引用不同的图表来实现动态图表,可以支持不同数据源、不同类型、不同图表格式的图表的动态切换。 关于这个方法说详细一点:

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对象的布局来设计报表。 3.DataReport控件 当一个新的数据报表设计器被添加到工程时,在窗体上控件箱出现“数据报表”和“General”(通用)选项卡,如图5-6-2所示。但在数据报表设计器上不能使用General的控件,即内部控件或ActiveX控件。数据报表选项卡中的控件仅包含可在数据报表设计器上工作的特殊控件。 图5-6-2

基于VB实现复杂报表设计

基于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 Statements

1引言 报表是人们在日常生活中对某类相关信息进行集中处理的重要手段,是企业信息化不可缺少的部分。报表在各行各业中应用广泛,是信息浏览、分析和打印的有力工具。传统报表系统均以国外简单报表模型为基础设计,不能适应复杂报表的开发。特别是在处理复杂数据源报表时,常常需要编写代码准备数据或进行子报表拼接才能实现。 1.1传统报表系统存在的问题 目前,国内外的报表系统种类繁多,功能界面各具特色,对这些报表系统的比较研究,有助于我们设计出更好的报表系统。国外的报表系统的技术都比较成熟,适合制作样式简单的报表,但一般都为高端产品,价格不菲,并且在处理具有强烈中国特色的报表时,国外产品不仅报表处理能力相当不适应,甚至某些技术也略显落后,例如部分产品不能稳定地在UNIX上部署,只能支持IE浏览器,统计图输出仍采用原始的CGl方式等。国内的传统报表系统更适合制作复杂的中国式报表,在报表设计和价格等方面国内报表系统也具有一些优势,但国内的报表系统在服务质量和产品本身的品质等方面还存在着一些不足和缺陷,有待进一步的改进和完善。无论是国外的高端报表系统,还是国内的传统报表系统,每一种报表系统都有各自的优点和缺点,都有各自擅长的领域,在实际工作中应该根据需要选择合适的报表系统。面对日益复杂的报表开发需求,尤其是复杂的中国式报表,这些报表系统或多或少都有些力不从心,其主要问题表现在以下三个方面: (1) 复杂数据源的处理能力不足。报表需要从复杂的数据源或者多个不同类型的数据源中获得数据,获得的数据还可能需要统计,格式转换或其他处理,这些需求都是传统报表系统难于实现的。 (2) 报表的可维护性差。传统的报表系统生成报表的种类固定,使用方便,但很多软件系统无论在实施还是在维护阶段,报表都会进行频繁的新增和修改,而传统的报表系统缺乏无编码定制能力,系统扩展网难。一旦用户对报表样式的需求发生改变,就会给软件维护带来许多不必要的麻烦。 (3) 报表保存格式的通用性较差。报表保存格式不统一,保存格式理解困难,各种报表工具各自为政,报表模板无法兼容,行业也没有形成统一的标准,一旦用户选定了某一报表工具就意味着要一直使用。如果不幸选择失误,已经做的工作都要重新再来。 总之,利用传统的报表系统制作报表维护量相当大,一个需求对应一个报表文件,不同的组合要求制作大量的报表文件,使得开发过程变得极为繁琐,难以实现用户的需求。在设计复杂数据源的报表时,或者需要人工转换数据格式,或者要编写大量代码将多个数据源运算成为一个数据源再使用,或者使用拼接子报表的方式来实现,但都没有从根本上解决问题,严重影响报表的设计和使用效率。因此如何快速制作符合多层结构特点的复杂数据源报表,减轻开发工作量,已经成为报表系统开发的重要问题。

html表格制作软件FineReport实例方案:采购部报表数据决策平台建设方案

案例企业介绍 福耀集团(全称福耀玻璃工业集团股份有限公司),1987年在中国福州注册成立,是一家专业生产汽车安全玻璃和工业技术玻璃的中外合资企业,也是名符其实的大型跨国工业集团。1993年,福耀集团股票在上海证券交易所挂牌,成为中国同行业首家上市公司,股票简称:福耀玻璃,股票代码600660。 福耀集团是国内最具规模、技术水平最高、出口量最大的汽车玻璃生产供应商,产品“FY”商标是中国汽车玻璃行业第一个“中国驰名商标”,自2004年起连续两届被授予“中国名牌产品”称号;福耀玻璃股票为上证红利指数样本股,于2009年被上海证券交易所授予“年度董事会奖”,并于2011年起,连续三年获颁“央视财经50指数”年度最佳成长性上市公司等等。福耀集团同时还是有评选以来连续三届的“中国最佳企业公民”、“2007CCTV年度最佳雇主”。 项目背景 随着福耀集团的生产规模扩张,伴随着福耀走向全球,全球范围采购越来越多。为支撑全球供应链管理,对于供应商的管理和采购过程的监控已经不局限于简单的交付以及价格的管理,目前采购及供应商管理各个环节的操作分别在不同的系统下进行,而各个数据源都独立存在,无法提供统一的数据支持;因此,为了实现对于数据分析以提供采购决策,建立报表数据决策体系成为必须。html5动态图表的功能性设计 权限管理 分级权限,按照管理层级+功能设置权限查询每一组报表 提报方式

1)主动查询:如封面设计,针对每个报表的查询和访问页面设计2)自动邮件发送,根据报表类型选择自动发送邮件,包括周期、接收对象,接受内容等。 浏览方式 web方式菜单,按钮选项。 报表系统的页面设计 1合同/订单审批时效 1.1每月合同/订单处理数量变化–>明细 1.2每月合同/订单处理结果 1.3各环节合同/订单处理时间(效率) 2横向/纵向价目表 2.1从物料角度对比不同供应商、制造部的各时期价格变化 2.2从供应商角度查询不同物料的变化趋势 2.3详细采购清单获取

vb报表分组

在VB中使用动态分组报表 在使用VB自带的报表过程中,我遇到了处理动态分组报表的问题。一般要使用分组报表要在VB中建立一个DataEnvironment,并在其中建立数据库联接和命令对象,在命令对象中设置分组字段,最后将这些分组字段加入到报表中。但是这种方法只能适应静态的数据源,当遇到数据表中的字段不固定,或数据表不能预先知道的情况时,这种方法就无能为力了。经过查阅各种资料,发现我们可以通过使用Data Shaping来动态创建分组信息。下面就详细介绍一下如何动态创建分组信息,并应用于VB报表。 要使用Data Shaping,程序必须使用ActiveX Data Object (ADO)连接数据库,解决问题的关键是使用Data Shaping的驱动程序代替通常使用的各种OLE DB的驱动程序,它的用法跟使用其它驱动程序类似,对于已有的数据访问代码不用作任何修改,只是简单的修改一下连接代码就可以支持Data Shaping了。具体做法如下: 将连接参数中的 Provider设置成"MSDataShape" 即 ConnectionString = "Provider=MSDataShape;Data Provider=通常的驱动程序;Data Source=…;其它的参数" 然后就可以和平常一样进行数据连接和各种数据操作了。如此连接的数据源出了具有用普通方法的所有特性以外,同时具有了我们即将使用的Data Shaping功能,下面就可以建立自己的分组信息了: 将用于打开记录集的SQL语句写成如下形式: SHAPE {select 字段1, 字段2, 字段3,…, 字段n from 现有的表} AS 新的名称1 COMPUTE新的名称1 AS新的名称2 BY 分组字段1, 分组字段2,…, 分组字段n 上面的语句中,需要注意的是分组字段必须同时在Select 中出现,否则运行时将报错。用该SQL语句打开的记录集中包含若干个字段,它们是:新的名称2、分组字段1-n。在使用时,将打开的记录集rs作为报表的DataSource,在报表的分组部分可以直接且只能使用

在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)对象:命令对象定义了从数据库连接中将取回什么数据的详细信息。命令对象可基于任何一个数据库对象(表、视图、存储过程或同义字)或是一个SQL 查询。 三、数据报表对象 数据报表设计器包括以下几个对象: 1. 数据报表(Data Report)对象:类似于Visual Basic表单,它包含一个可视化设计器和一个代码模块。设计器用来创建报表的布局,也可以往设计器的代码模块里添加代码,用程序对包含在设计器里的控件或区域进行控制。 2. 区域(Section)对象:数据报表设计器的每一个区域均由一个区域集对象中的一个区域对象来表示。在设计阶段,每一个区域都有一个标题,若要选择区域,只需用鼠标选择标题即可,并且在区域内可布置控件。在报表建立之前,使用区域对象及其属性调整报表。使用过报表的人都知道,报表可分为报头、报脚、页头、页脚、组头、组脚和细节等部分,在区域内也是一样的。

动态报表使用说明

本文章只对折线、柱状和饼形报表进行说明: 由于这几种报表只能利用XML文件进行配合使用,所以每个报表都将对应一个xml文件;如果要根据数据库中的数据动态生成报表时,可以根据C#程序动态配置xml文件或者AJAX 异步获取xml格式文本,这里例子就直接写死了。 1.柱形报表Column2D.swf 2.柱形报表3D效果对应文件Column3D.swf:

3.饼形对应文件.Pie2D.swf 4.饼形3D效果对应文件 .Pie3D.swf 实现步骤: 首先新建一个xml文件如data.xml文件里面配置节点如下:

//decimalPrecision为小数点后面的位数formatNumberScale值为1格式化数字如3000自动转为3k,为0时不转换 参数说明: 所有参数内容包含在中 encoding最好值为gb2312,否则里面的中文如“月份”可能在网页中出现乱码;Caption为报表名称,xAxisName对于横坐标的标注,yAxisName对于纵坐标的标注,showNames每个月份横坐标的标题的显示状态(0:隐藏、1:显示) set中的name:每个图块的名字,value每个图块的位置值,color每个段的图块颜色; 然后新建一个html页面,拖入jquery和FusionCharts包 脚本写入如下代码: //异步获取xml格式文本