讲真,一开始开到教程说什么推模式 拉模式,巴拉巴拉一大堆,我是模糊的,不知道怎么区分这两种不同的显示数据的模式。实际上,两种显示的效果是相同的,关键的区别在于获取数据和推送数据的方式。当我决定软件分发的时候,发现推模式不要安装连接器.....
我使用mysql数据库,vb2015开发,使用语言vb.net
拉模式:
最开始开发的时候,使用的拉模式(其实当时我是不知道的,我以为报表只有一种数据显示的方式),
因为只需要设置好报表连接数据库的字符串,写一条select语句把想要的数据拉过来,报表自动显示数据。
等价于在报表设计器中,设置连接字符串和sql语句。
当然前提是,电脑有安装mysql connector 并设置数据源
显示数据的效果,根据数据量,拉数据会消耗时间,数据越多,时间越长,建议使用例子中的报表进度条
推模式:
后来在准备软件分发的时候,发现如果使用拉模式,需要对客户电脑安装mysql connnector,这样对于不懂电脑的用户来说,增加了安装的学习成本,而这个成本将会转嫁给客服部,增加工作量。
所以,在仔细查阅了论坛相关的帖子后,决定研究一下推模式。
推模式,最大的好处,在于产品分发的时候,不需要安装任何东西(前提是win10系统,win7需要安装.NET 框架),做的软件直接拉到一个裸机的win10既可以运行报表所有的功能。
实际上,推模式最难处理的部分,在于先要获取数据库的数据,再将其转换成报表格式,时间消耗在转换的过程。
我实现的办法是将获取的数据放到dataset或者datatable中,再处理。
锐浪的例子中,关于推模式的有三个,5.manualfill ,advance/customgroup, advance/customsummary。
第一个例子是用程序写一个报表,并把数据推送给报表。
第二个和第三个是用现成的报表,推送
仔细研究后,发现 转换报表格式 的函数(FillRecordToReport, 有两个),不是通用的,并不是适用于我的程序,所有花了半天时间修修改改,终于满足了我的需要
另外,C#和VB.NET免regsvr32注册调用锐浪报表的方法
报表可以通过在引用中修改报表控件的属性(独立:true),可以不需要通过注册报表控件,在任意电脑使用相关的报表功能。
至此,所有的关于报表在分发过程中的安装或注册问题都解决了,可以愉快地在任何电脑上打开使用了。
这是我第一篇文章,感觉一般没什么人看,所以,太详细的内容我是没有写,如果有人评论 想要知道详细的内容,我会把程序贴出来,可能的话做个demo,分享给大家。