报表在VB中使用水晶报表的一种简易编程方法-.NET教程,VB.Net语言

vb net 教程  时间:2021-02-15  阅读:()

 水晶报表crystal report的业内最专业、功能最强的报表系统他除了强大的报表功能外最大的优势是实现了和绝大多数流行研发工具的集成和接口。在vs net平台做过报表研发的程式员一定都对水晶报表强大、高效、集成等特性留下了深刻印象。除了研发新程式外在工作中我们常需要接触到非常多较早的软件系统报表功能升级的需求如果能结合水晶报表这一强大的工具往往能事半功倍。vb是以前流行的数据库研发平台用其研发的c/s系统在社会上有非常大的保有量但vb超弱的报表功能往往让程式员面对客户的升级需求一筹莫展。本文并不做水晶报表的使用和编程教学实际上水晶报表本身的使用方法和vs net平台并没有太大的差别我主要是和大家探讨一下vb和水晶报表的一种较方便的接口方式。我的研发测试平台是windows2003 standard简体中文版、 vb60+sp5英文版、 crystal 90简体中文研发版。

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

用vb调用水晶报表进行报表研发的简单接口方法就是在水晶报表中用"仅字段定义"来获得字段分布文件用虚拟的文件创建表字段用craxdrt对象来强制改动数据源ado recordset 其效果相当于在vb中调用了rpt文件。下面分步骤介绍编程方法。

第一步

在vb工程中project菜单加入"add crystal report 9"报表名使用默认即可。这时form2 crystal rerport自动添加的form假设名为form 2被自动分配了如下代码option expl icitdim report as new cystal1private sub form_load()screen mousepointer=vbhourglass调用水晶报表时置鼠标为沙漏状crviewer91 reportsource=report该语句的赋值将在后面被修改crviewer91 viewreportscreen mousepointer=vbdefault调用水晶报表完成后置鼠标为默认形状endsubprivate sub form_resize()crviewer91 top=0crviewer91 left=0crviewer91 height=scaleheightcrviewer91 width=scalewidthendsub

第二步

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

第三步

该步骤非常关键添加一个modual到工程文件中定义全局的adodb变量实现数据库和水晶报表的动态连接。代码如下publ ic conn as new adodb connectionpubl ic rs as new adodb recordset

第四步

关于vb程式的ado数据库连接注意事项请看下面的打印按钮例程。private sub command1_cl ick()

dim connstr as stringif conn state=adstateopen then conn closeconnstr="provider=microsoft jet oledb 40;data source="&app path&"prtest mdb;persist security info=false"prtest mdb是程式当前目录的测试access数据库conn connectionstring=connstrconn openconn cursorlocation=adusecl ientif rs state=adstateopen then rs closers open"test",conn,adopenkeyset,adlockreadonlyreport database setdatasource rs,3, 1此行取消form2 show 1数据库连接完成后调用form2水晶报表工程endsub

需要提请大家注意的是上面代码中的report database setdatasource rs,3, 1是初用水晶报表的程式员容易犯的错误使用该语句后将造成数据库和水晶报表的连接失败。怎么动态调用水晶报表呢请看第五步。

第五步

创建水晶报表和数据库数据源的连接需要修改上面form 2的代码。option expl icitdim report as new cystal1

上面一行取消private sub form_load()dim oapp as new craxdrt appl icationdim orpt as craxdrt reportdim reportname as string

上面三行是新增加的screen mousepointer=vbhourglassreportname="rptpr1 rpt" 定义要引用的rpt文件set orpt=oapp openreport(app path&reportname, 1)orpt database setdatasource rs连接水晶报表和数据源orpt readrecordscrviewer91 reportsource=orpt启用水晶报表的预览功能crviewer91 viewreportscreen mousepointer=vbdefault

endsubprivate sub form_resize()crviewer91 top=0crviewer91 left=0crviewer91 height=scaleheightcrviewer91 width=scalewidthendsubprivate sub form_unload(cancel as integer)set report=nothingset rs=nothi ngset conn=nothingunload form2endsub

上面介绍了在vb中使用水晶报表进行报表研发的一种方法该方法简单易用适合初学者上手。大家熟悉以后还能继续学习crystal report提供的api函数l ib库 crpe32 dl l进行水晶报表研发能获得更大的灵活性。 完

台湾CN2云服务器 2核2G 5M 5IP 台湾物理服务器 E5x2 64G 20M 5IP

提速啦(www.tisula.com)是赣州王成璟网络科技有限公司旗下云服务器品牌,目前拥有在籍员工40人左右,社保在籍员工30人+,是正规的国内拥有IDC ICP ISP CDN 云牌照资质商家,2018-2021年连续4年获得CTG机房顶级金牌代理商荣誉 2021年赣州市于都县创业大赛三等奖,2020年于都电子商务示范企业,2021年于都县电子商务融合推广大使。资源优势介绍:Ceranetwo...

onevps:新增(支付宝+中文网站),香港/新加坡/日本等9机房,1Gbps带宽,不限流量,仅需$4/月

onevps最新消息,为了更好服务中国区用户:1、网站支付方式新增了支付宝,即将增加微信;原信用卡、PayPal方式不变;(2)可以切换简体中文版网站,在网站顶部右上角找到那个米字旗,下拉可以换中国简体版本。VPS可选机房有:中国(香港)、新加坡、日本(东京)、美国(纽约、洛杉矶)、英国(伦敦)、荷兰(阿姆斯特丹)、瑞士(苏黎世)、德国(法兰克福)、澳大利亚(悉尼)。不管你的客户在亚太区域、美洲区...

搬瓦工:新增荷兰机房 EUNL_9 测评,联通 AS10099/AS9929 高端优化路线/速度 延迟 路由 丢包测试

搬瓦工最近上线了一个新的荷兰机房,荷兰 EUNL_9 机房,这个 9 的编号感觉也挺随性的,之前的荷兰机房编号是 EUNL_3。这次荷兰新机房 EUNL_9 采用联通 AS9929 高端路线,三网都接入了 AS9929,对于联通用户来说是个好消息,又多了一个选择。对于其他用户可能还是 CN2 GIA 机房更合适一些。其实对于联通用户,这个荷兰机房也是比较远的,相比之下日本软银 JPOS_1 机房可...

vb net 教程为你推荐
湖南商标注册在湖南搞商标注册是代理好还是自己去好一点?湖南商标注册的流程又是什么样的呢?无线路由器限速设置如何设置无线路由器局域网限速?中国论坛大全中国十大网站是?arm开发板ARM开发板和树莓派有什么区别镜像文件是什么镜像文件是什么意思?雅虎天盾我装了360安全卫士,原来的雅虎天盾需不需要卸载ejb开发EJB是啥玩意了idc前线穿越火线河北的服务器好卡 有人知道怎么回事嘛 知道的速回云挂机有免费的云挂机软件吗?声母是什么什么是声母
域名注册信息查询 合租服务器 美国加州vps 域名备案信息查询 腾讯云数据库 韩国电信 免费网站监控 线路工具 华为4核 阿里云浏览器 新天域互联 刀片服务器是什么 jsp空间 789电视网 cdn加速原理 东莞数据中心 1g空间 支持外链的相册 联通网站 lick 更多