用VB创建复杂表格

 

用VB创建复杂表格
 
---- 数据库管理系统的开发人员经常感叹的一个问题就是:我们中国人的报表太复杂了!无规则、嵌套、斜线、交叉线等历来都是困挠开发人员的最大问题。设计一个数据库固然有一定的技巧,设计数据操作也固然需要一定的逻辑分析能力,但这些问题对一般的开发人员来说应该是不成为问题的。用户可是不管你采用了多么灵活的算法多么方便的操作,他们最感兴趣的是最后他们出来的报表如何漂亮,出报表的操作如何简单(最好是一个按钮解决所有的问题)。笔者在开发数据库管理系统方面也稍有些经验,从FoxPro、Delphi、PowerBuilder一直到现在用的VB,都遇到过设计打印报表的问题,这些软件在设计报表的过程中可谓各有千秋,我这里不一一细说。我在这里只向大家介绍一种我迄今为止最为满意的一种设计打印报表的方法:利用VB操作EXCEL来生成复杂的报表。

---- 一. 用VB创建外部EXCEL对象

---- 大多数大型 ActiveX-enabled 应用程序和其它 ActiveX 部件,在它们的对象层次中都提供了一个顶层外部可创建对象。该对象提供了对该层次中其它对象的访问,并且还提供对整个应用程序起作用的方法和属性。

---- 例如,每个 Microsoft Office 应用程序提供一个顶层 Application 对象。下面语句显示了对Microsoft Excel的 Application 对象的引用:

Dim xlApp As Excel.Application
Set 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是一个非常优秀的创建报表的工具。它提供的单元格任意合并、拆分和绘图功能基本上能够满足设计所有复杂报表的需求。它对任意一个单元格的格式随意控制,更为随心所欲地设计报表提供了强大的支持。

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

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

Cell(4,2) 职工姓名 Cell(6,6) 毕业学校
Cell(4,4) 职工性别 Cell(6,7) 所学专业
Cell(4,6) 职工民族 Cell(6,9) 工作时间
(表一)

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

Dim strSource, strDestination As String
strSource = App.Path & "/Excels/RegisterFee.xls" 
‘RegisterFee.xls就是一个模版文件
strDestination = App.Path & "/Excels/Temp.xls" 
FileCopy strSource, strDestination
‘将模版文件拷贝到一个临时文件

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

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

 datPrimaryRS.Recordset.MoveFirst
‘datPrimaryRS为Data控件
  If IsNull(datPrimaryRS.Recordset!姓名) = False Then
  xlSheet.Cells(4, 2) = datPrimaryRS.Recordset!姓名
  End If
  If IsNull(datPrimaryRS.Recordset!性别) = False Then
  xlSheet.Cells(4, 4) = datPrimaryRS.Recordset!性别
  End If
  If IsNull(datPrimaryRS.Recordset!民族) = False Then
  xlSheet.Cells(4, 6) = datPrimaryRS.Recordset!民族
  End If
………………

---- 四. 打印报表

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

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

xlBook.Save ‘保存文件
  xlSheet.PrintOut ‘执行打印
  xlApp.Quit ‘退出EXCEL

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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
滴答表格控件企业版功能介绍 滴答表格企业版 是一款面向软件设计人员的表格控件, 拥有 600 多个编程接口, 功能丰富、简单易用,集成了表格产品编辑输入、公式运算、数据显示/展现的特点,同时又兼顾了报表产品的数据源绑定,数据统计和打印输出的功能,是管理软件模板化开发必不可少的组件产品。 1、模板化开发的编程理念 2、功能强大 简单易用 3、提供快速报表设计器 4、提供个性化定制功能服务 5、支持Windows平台下任何开发工具 6、支持绑定数据库及外部数据源 7、支持外部数据的导入导出 8、一流的技术支持服务 9、持续地产品升级服务 10、丰富的研发资料和产品示例 11、无限分发 模板化开发的编程理念 当今企业的业务需求复杂多变,对软件的通用性要求越来越高,造成开发周期过长,给软件项目带来不可预知的风险,同时大大降低 了软件企业的利润空间,而滴答表格企业版正是为解决这些问题而推出的一款基于模板化开发的表格控件。软件工程师通过调用滴答 表格的接口,快速实现自定义模板(单据)及报表,将用户个性化的要求转变成由最终用户自行设计,并创建出适合自己的模板,而 不再需要通过软件工程师的编程实现。最终提高软件的通用性和开发周期。 功能强大 简单易用 答表格目前拥有600多个直接编程接口,几十个子对象,集成了表格控件的编辑展现、公式运算功能,同时又拥有报表组件的数据源绑 定、外部数据的导入导出等功能;滴答表格的接口简单易用,类似打开/保存文件,打印,预览,导入导出等功能只要一条语句即可完 成; 提供快速报表设计器 在提供强大表格控件的同时,我们又为用户提供功能丰富的设计器;软件工程师或最终用户可以通过设计器快速完成模板的设计,而 不再需要通过编程实现模板的样式;同时我们还向正式用户提供设计器源的源码,用户可以根据自己的需要修改设计器,并无限制分 发,与我们共享设计器的版权! 提供个性化定制功能服务 我们采用从Windows底层绘图的技术,从无到有绘制出表格,而不基于任何其它第三方或开发工具自带的控件,在扩展性上更加灵活和 强大;在一些特定行业,如果最终用户要求实现某种特定的功能,也可以与我们协商,共同完成用户的个性化功能,从而保证软件业 务的顺利进行! 支持Windows平台下任何开发工具 滴答表格控件基于WINDOWS的ActiveX技术,可以运行在WINDOWS下的任何开发工具,比如.NET,VB,DELPHI,PB,易语言等,同时也可 以运行在WEB上,用户通过VBS或JS进行操作产品;另一方面,用户不需要担心因更换开发工具,而不能正常使用控件的情况! 支持绑定数据库及外部数据源 我们建立了自身的数据挖掘引擎,通过识别用户的报表模板,从数据库中挖掘出相应的数据,并按模板中预定格式展现在控件上,而 这一切无需通过编程实现;除了控件本身的数据挖掘引擎,我们还支持外部的ADO数据源,更加扩展用户的报表功能;目前我们的数据 挖掘引擎支持Oracle、SQLServer、DB2、MySql、ACCESS等; 支持外部数据的导入导出 您只需要一条语句即可实现与其它应用程序的数据交互,包括PDF、EXCEL、CSV、图片,同时您还可以精确导入EXCEL文件,支持单个和 批量文件转换; 一流的技术支持服务 为了帮助新用户快速入门和老用户开发过程中的问题,我们提供优质技术支持服务,用户可以通过电话、电子邮件、技术论坛、QQ或 上门培训等方式进行支持;同时我们还向用户提供开发咨询,共享编程心得,让您得到的不仅是一款优质的产品,更是一份家的温暖! 持续地产品升级服务 为了不断满足各种用户群的需求,我们归纳问题、总结需求,为用户提供持续不断的产品升级服务,让您的产品更加充满生命力! 丰富的研发资料和产品示例 成为滴答表格企业版的用户,您就将成为市场的领先者。您将对掌握这一领先科技充满自信,这其中包括我们和数千名用户超过三年 的经验积累,而这些,您都可以通过在线的论坛、技术文档、产品示例、QQ以及邮件等方式轻松获得。
滴答表格控件专业版功能介绍 滴答表格专业版 是一款面向个人软件作者的表格控件。她集模板化开发、公式运算、数据显示/展现于一体,同时也具备了报表产品的数据源绑定,数据统计和打印输出的功能,并开放了柱状图表应用功能,帮助个人软件作者灵活快速地响应软件需求变化,是个人软件作者的首选组件产品。 1、模板化开发的编程理念 2、功能强大 简单易用 3、提供快速报表设计器 4、提供个性化定制功能服务 5、支持Windows平台下任何C/S开发工具 6、支持绑定数据库及外部数据源 7、支持外部数据的导入导出 8、一流的技术支持服务 9、持续地产品升级服务 10、丰富的研发资料和产品示例 11、无限分发 1.模板化开发的编程理念 当今企业的业务需求复杂多变,对软件的通用性要求越来越高,造成开发周期过长,给软件项目带来不可预知的风险,同时大大降低了软件企业的利润空间,而滴答表格专业版正是为解决这些问题而推出的一款基于模板化开发的表格控件。软件工程师通过调用滴答表格的接口,快速实现自定义模板(单据)及报表,将用户个性化的要求转变成由最终用户自行设计,并创建出适合自己的模板,而不再需要通过软件工程师的编程实现。最终提高软件的通用性和开发周期。 2.功能强大 简单易用 滴答表格目前拥有600多个直接编程接口,几十个子对象,集成了表格控件的编辑展现、公式运算功能,同时又拥有报表组件的数据源绑定、外部数据的导入导出等功能;滴答表格的接口简单易用,类似打开/保存文件,打印,预览,导入导出等功能只要一条语句即可完成; 3.提供快速报表设计器 在提供强大表格控件的同时,我们又为用户提供功能丰富的设计器;软件工程师或最终用户可以通过设计器快速完成模板的设计,而不再需要通过编程实现模板的样式;同时我们还向正式用户提供设计器源的源码,用户可以根据自己的需要修改设计器,并无限制分发,与我们共享设计器的版权! 4.提供个性化定制功能服务 我们采用从Windows底层绘图的技术,从无到有绘制出表格,而不基于任何其它第三方或开发工具自带的控件,在扩展性上更加灵活和强大;在一些特定行业,如果最终用户要求实现某种特定的功能,也可以与我们协商,共同完成用户的个性化功能,从而保证软件业务的顺利进行! 5.支持Windows平台下任何开发工具 滴答表格控件基于WINDOWS的ActiveX技术,可以运行在WINDOWS下的任何开发工具,比如.NET,VB,DELPHI,PB,易语言等,但不支持WEB应用;另一方面,用户不需要担心因更换开发工具,而不能正常使用控件的情况! 6.支持绑定数据库及外部数据源 我们建立了自身的数据挖掘引擎,通过识别用户的报表模板,从数据库中挖掘出相应的数据,并按模板中预定格式展现在控件上,而这一切无需通过编程实现;除了控件本身的数据挖掘引擎,我们还支持外部的ADO数据源,更加扩展用户的报表功能;目前我们的数据挖掘引擎支持Oracle、SQLServer、DB2、MySql、ACCESS等; 7.支持外部数据的导入导出 您只需要一条语句即可实现与其它应用程序的数据交互,包括PDF、EXCEL、CSV、图片,同时您还可以精确导入EXCEL文件,支持单个和批量文件转换; 8.一流的技术支持服务 为了帮助新用户快速入门和老用户开发过程中的问题,我们提供优质技术支持服务,用户可以通过电话、电子邮件、技术论坛、QQ或上门培训等方式进行支持;同时我们还向用户提供开发咨询,共享编程心得,让您得到的不仅是一款优质的产品,更是一份家的温暖! 9.持续地产品升级服务 为了不断满足各种用户群的需求,我们归纳问题、总结需求,为用户提供持续不断的产品升级服务,让您的产品更加充满生命力! 10.丰富的研发资料和产品示例 成为滴答表格专业版的用户,您就将成为市场的领先者。您将对掌握这一领先科技充满自信,这其中包括我们和数千名用户超过三年的经验积累,而这些,您都可以通过在线的论坛、技术文档、产品示例、QQ以及邮件等方式轻松获得。 11.无限分发 购买一次滴答表格专业版,您就可以进行无限次产品开发,无限次最终产品分发和应用,而这一切不再需要额外的成本支出。同时您还将享受一年内任何版本的免费升级,而不局限于某个单一版本的使用!
系统支持无限级分类、采集、生成静态HTML、ajax 自定义表单 系统标签说明: 的标签结构形如(ror标签): #{…/} 或 #{…}***{/} 内嵌标签: 标签: ##.../# 如同#{…/} 在#{…/}中使用 字段值:[$$$/] 其中 … 是标签参数 ***是循环调用的模块 $$$是字段名 具体标签及说明如下: 1、#{host fieldname=hostname/} 说明: 系统参数: 网站名称: fieldname=hostname 关键字: fieldname=hostkey 虚拟目录: fieldname=hosturl 2、#{param=classname/} 说明: 访问页面的各种通用参数: 栏目名称: param=classname 文档名称: param=title URL参数: param=*** 特别说明: 当栏目类型为单页面时,调用单页面内容使用param=content 3、#{ position /} 说明:当前位置 4、#{ menu /} Top: 显示数量,默认为10 Menutype: 菜单属性,默认顶级栏目菜单 Top:顶级栏目菜单 Self:同级栏目菜单 Sun:下级栏目菜单 Typelink: 相应栏目的链接地址 5、#{clalist …/} 或 #{clalist …}***{/} 说明:部分栏目文档列表(没有分页) Top: 读取的文档数目,默认10 Titlelen: 标题显示长度,默认30 Showtitle: 鼠标悬停时是否显示完整标题,默认不显示 Orderby: 排序字段,默认id(当order为rnd时可以不设置) Order: 顺序,默认降序(升序:asc 降序:desc 随机:rnd ) Classid: 所属栏目(0和all都表示所有栏目) all:按栏目显示相应数目的文档 0: 不按栏目显示相应数目的文档 clacol: 循环块列数 artcol: 文档列表列数 clastyle: 每个循环块的样式 artstyle: 每个循环块中文档列表区域的样式 Maxlen: 各个字段的最大显示长度,默认100 Textlink: 形如:*** Typelink: 相应文档的链接地址(…) Imglink: 形如: Imgheight:图片高度 Imgwidth:图片宽度 Arttype: 文档属性 Image: 图片 Slide: 幻灯 Roll: 滚动 Common: 普通 Good: 推荐 #{clalist …/}:不用设置***,系统默认为textlink 嵌套标签:{class}…[classtext/] [classlink/]…{/class} 说明:classtext 栏目名 classlink 栏目链接 6、#{artlist …/} 或 #{artlist …}***{/} 说明:全部栏目文档列表(有分页)属性类似于clalist 没有Showclass及设置其属性的各种标签 Pagelist:分页列表 Search:搜索页使用标签,关键字自定义字段值,默认为key 7、#{art_view}***{/} 说明:文档显示页标签 可以显示文档的各个字段值,如:title,hits,content,ctime等 #{Prenext/}:显示上一篇、下一篇 8、#{pl }***{/} 9、#{book }***{/} 更多、更详细的标签自己在使用中来发现哦!~~~

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值