电信主站 网通分站
购买流程 付款方式 常见问题 在线提问 续租服务 购物车
用户名: 密 码: 忘记密码?
首 页
域名注册
虚拟主机
双线主机
服务器租用
VPS主机
企业邮局
代理专区
客服中心
虚拟主机行业资讯 虚拟主机评测对比 互联网最新动态 技术学院 站长资讯 在线教程 网站运营
搜索优化 服务器 网络编程 图形图象 站长之家 网页制作 操作系统
冲浪宝典 软件教学 视频通信 办公软件 邮件系统 网络安全 认证考试
您当前位置:西部数码->资讯中心-> 办公软件
在vb中使用水晶报表的一种简易编程方法_visualbasic教程
作者:网友供稿 点击:0
  西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!虚拟主机可在线rar解压,自动数据恢复设置虚拟目录等.虚拟主机免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金!
文章页数:[1] 
水晶报表(CrystalReport)是业内最专业、功能最强的报表系统,它除了强大的报表功能外,最大的优势是实现了与绝大多数流行开发工具的集成和接口。在VS.Net平台做过报表开发的程序员,一定都对水晶报表强大、高效、集成等特性留下了深刻印象。除了开发新程序外,在工作中我们常需要接触到很多较早的软件系统报表功能升级的需求,如果能结合水晶报表这一强大的工具,往往能事半功倍。

  VB是以前流行的数据库开发平台,用其开发的C/S系统在社会上有非常大的保有量,但VB超弱的报表功能往往让程序员面对客户的升级要求一筹莫展。本文并不做水晶报表的使用和编程教学,实际上水晶报表本身的使用方法和VS.Net平台并没有太大的差别,我主要是和大家探讨一下VB和水晶报表的一种较方便的接口方式。我的开发测试平台是Windows2003Standard简体中文版、VB6.0 sp5英文版、Crystal9.0简体中文开发版。

  关于在水晶报表中制作报表模板的方法,并非本文的探讨范围,读者可以参考CrystalReport的帮助文件和官方网站的技术资料。简单得说,首先要通过水晶报表的数据库引擎手动连接相应的表结构,制作报表模板,并保存为rpt文件,该项操作和利用VB自带的报表工具制作报表大同小异。

  简单地说,用VB调用水晶报表进行报表开发的简单接口方法就是,在水晶报表中用"仅字段定义"来获得字段分布文件,用虚拟的文件创建表字段,用CRAXDRT对象来强制改变数据源(ADO.recordset),其效果相当于在VB中调用了rpt文件。下面分步骤介绍编程方法。

  第一步:

  在VB工程中Project菜单加入"AddCrystalReport9",报表名使用默认即可。这时Form2(Crystal Rerport自动添加的Form,假设名为Form2)被自动分配了如下代码:

->OptionExplicit
dimReportasNewCystal1

PrivateSubForm_Load()

 Screen.MousePointer=vbHourglass
 调用水晶报表时置鼠标为沙漏状CRViewer91.ReportSource=Report该语句的赋值将在后面被修改

 CRViewer91.ViewReport
 Screen.MousePointer=vbDefault调用水晶报表完成后置鼠标为默认形状

EndSub

PrivateSubForm_Resize()

 CRViewer91.Top=0
 CRViewer91.Left=0
 CRViewer91.Height=ScaleHeight
 CRViewer91.Width=ScaleWidth

EndSub->

  第二步:

  点击CrystalReport设计器的"数据库字段",选定"数据库专家…",然后点"创建新连接",再点"仅字段定义",创建"数据库定义"文件,字段名和宽度和原数据库表保持一致。最后,在数据库字段中获得了相应字段,将其置于报表上,按水晶报表的要求配置。
  第三步:

  该步骤非常关键,添加一个Modual到工程文件中,定义全局的ADODB变量,实现数据库和水晶报表的动态连接。代码如下:

->PublicconnAsNewADODB.Connection
PublicrsAsNewADODB.Recordset->

  第四步:

  关于VB程序的ADO数据库连接注意事项,请看下面的打印按钮例程。

->PrivateSubCommand1_Click()

 DimconnstrAsString

 Ifconn.State=adStateOpenThenconn.Close

  connstr="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&App.Path&"\prtest.mdb;PersistSecurityInfo=False"prtest.mdb是程序当前目录的测试Access数据库

  conn.ConnectionString=connstr
  conn.Open
  conn.CursorLocation=adUseClient

  Ifrs.State=adStateOpenThenrs.Close
   rs.Open"test",conn,adOpenKeyset,adLockReadOnly
   Report.Database.SetDataSourcers,3,1
   Form2.Show1数据库连接完成后,调用Form2水晶报表工程
EndSub->

  需要提请大家注意的是,上面代码中的Report.Database.SetDataSourcers,3,1是初用水晶报表的程序员容易犯的错误,使用该语句后将造成数据库和水晶报表的连接失败。如何动态调用水晶报表呢?请看第四步。

  第五步:

  创建水晶报表和数据库数据源的连接,需要修改上面Form2的代码。

->OptionExplicit
dimReportasNewCystal1
上面一行取消

PrivateSubForm_Load()

 DimoAppAsNewCRAXDRT.Application
 DimoRptAsCRAXDRT.Report
 DimreportNameAsString
 上面三行是新增加的

 Screen.MousePointer=vbHourglass
 reportName="\rpt\Pr1.rpt"  定义要引用的rpt文件

 SetoRpt=oApp.OpenReport(App.Path&reportName,1)

 oRpt.Database.SetDataSourcers连接水晶报表和数据源
 oRpt.ReadRecords

 CRViewer91.ReportSource=oRpt启用水晶报表的预览功能

 CRViewer91.ViewReport
 Screen.MousePointer=vbDefault

EndSub

PrivateSubForm_Resize()

 CRViewer91.Top=0
 CRViewer91.Left=0
 CRViewer91.Height=ScaleHeight
 CRViewer91.Width=ScaleWidth

EndSub

PrivateSubForm_Unload(CancelAsInteger)

 SetReport=Nothing

 Setrs=Nothing
 Setconn=Nothing
 UnloadForm2
EndSub->

  上面介绍了在VB中使用水晶报表进行报表开发的一种方法,该方法简单易用,适合初学者上手。大家熟悉以后,还可以继续学习CrystalReport提供的API函数(Lib库 Crpe32.dll)进行水晶报表开发,可以获得更大的灵活性。->


文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
相关主题
文章页数:[1] 
Google
热门文章
·fireworks简单方法打造网页“闪字”动画_fireworks教程
·亚马逊拟推音乐订购服务 正与唱片公司谈判_it动态
·用PHP5的SimpleXML解析XML文档
·网络进阶知识 VPN技术的全面详细介绍
·灵动携Remote Reset开拓IDC增值服务
·photoshop打造超酷的眼球_photoshop教程
·photoshop“替换颜色”实现局部换色_photoshop教程
·photshop打造波普风格艺术照特效_photoshop教程
·photoshop打造抽象表现主义效果图_photoshop教程
·绕过激活 如何登录已到期windows xp中_windows xp

最新文章
·Google工具栏替换404错误页 嵌入搜索引导用户
·单刀直入 在WPS演示中绝对快速实现Flash插入
·英汉互译仅需2步--WPS Office的翻译功能详解
·忘记"添加/删除程序"吧!360安全卫士5分钟装机
·在Eee PC上装gOS:加入众多Google网络应用程序
·如何来判断你的Linux系统机器是否被黑?
·Linux三种网络管理工具功能介绍及使用
·在Linux系统下建立至强FTP搜索引擎
·Linux操作系统开机自行启动项目详细解析
·Linux操作系统中关于负载的定义


 
 


版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!

特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
  打印  刷新  关闭
返回首页 |关于我们 | 联系我们 | 付款方式 | 创业联盟 | 虚拟主机 | 资讯中心 | 友情链接 | 网站地图

版权所有 西部数码(www.west263.com)
CopyRight (c) 2002~2006 west263.com all right reserved.
公司地址:四川成都市万和路90号天象大厦4楼 邮编:610031
电话总机:028-86262244 86263048 86263408 86263960 86264018 86267838
售前咨询:总机转201 202 203 204 206 208
售后服务:总机转211 212 213 214
财务咨询:总机转224 223 传真:028-86264041 财务QQ:点击发送消息给对方635483282
售前咨询QQ:点击发送消息给对方2182518 点击发送消息给对方241975952 点击发送消息给对方275026793 点击发送消息给对方408235859
售后服务QQ:点击发送消息给对方17708515 点击发送消息给对方307742704 点击发送消息给对方287976517 点击发送消息给对方363783715
《中华人民共和国增值电信业务经营许可证》编号:川B2-20030065号