社区
图表区
帖子详情
关于数据量大时报表的处理情况
Bmonkey
2005-06-27 12:56:54
无论用activereport还是crystal report都可以,主要是解决问题的方法,谢谢
1.如果报表数据量非常大,那么是否应该分页显示,显示哪页取哪页数据?
2.如果分页显示的话,那么打印时怎么处理,由于报表的数据源只有一页的数据,那么打印的时候只能打印一当前页,那么是否应该把数据全部取去给报表打印呢?如果数据量很大会造成错误的,请问怎么解决??
...全文
361
14
打赏
收藏
关于数据量大时报表的处理情况
无论用activereport还是crystal report都可以,主要是解决问题的方法,谢谢 1.如果报表数据量非常大,那么是否应该分页显示,显示哪页取哪页数据? 2.如果分页显示的话,那么打印时怎么处理,由于报表的数据源只有一页的数据,那么打印的时候只能打印一当前页,那么是否应该把数据全部取去给报表打印呢?如果数据量很大会造成错误的,请问怎么解决??
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Bmonkey
2005-07-08
打赏
举报
回复
谢谢,最近没来,先结贴了.
阿泰
2005-07-02
打赏
举报
回复
白天在外面跑了一天
如果数据量大的话,用分页当然比不分页好~~
Bmonkey
2005-07-01
打赏
举报
回复
啊泰....呵呵,虽然有点麻烦请再看看
我现在想这样做,清单一般都很多,在web下数据多的情况下都分页,但是我现在是在winform情况下,这种情况下分页这样做法好吗?合理吗?
dlkjldjljfalk
2005-07-01
打赏
举报
回复
学习中
Bmonkey
2005-06-30
打赏
举报
回复
我看了一下listview和print的几个控件,现在有点问题
你所说的边打边取,大概是怎么实现的呢?你们封装的控件是否也是用的边打边取的方法呢?你是用print控件的endprint事件来触发打印下一页的控制吗?
如果方便请简要说说你封装的该控件的原理和方法 ^_^
阿泰
2005-06-28
打赏
举报
回复
1: 一般来说用拉的方式比用推的模式快
但是我还是建议你控制每次最大的显示区间,不要用“由客户任意指定区间”
2:我一般是直接用报表软件进行预览显示,
但是前提是我们做的报表一般是数据综合性的报表而不是明细清单,
对于后者我们自己写了控件来处理,显示的时候用了Listview(可控制性更好些)而不是DataGrid
其实直接控制Printer来进行打印可能是最快最有效的方法了,而且也不存在等待的问题
因为你可以边打边取数据,
报表一般用来做数据分析用的,N长的明细数据从分析的角度来说毫无意义
所以做的报表可能来源的原始数据是上亿级别(条数),但是因为先期经过多次中间表汇总准备后
报表实现起来都是很快的,基本不存在明显的等待
有些情况确实需要长时间数据加载的,做一个Splash的提示效果,加个动画,可以缓和一下气氛
而不要仅仅是将鼠标置成沙漏
阿泰
2005-06-28
打赏
举报
回复
1:vs.net里的版本应该只是可以使用,但是不可以分发,所以应该还是需要购买的
2:9.1和9.2并没有太大变化,只是不同的功能版本有些差异,具体价格你可以咨询一下
www.softonline.com.cn
Bmonkey
2005-06-28
打赏
举报
回复
先谢谢啊泰的回复,由于偶晚上无法上网,没法在qq上和你交流,请你继续在这解答,^_^
1.我现在是这样的,分页取数据和显示可以做到,但是分页取出来的数据应该是在Form里显示然后用户点'打印'按钮时再显示报表,把数据推给报表好呢?还是把数据直接就在报表里显示了好?我想知道一下你做这个的通常做法.谢谢
2.请问你一般的做报表的做法,你会给报表提供一个显示数据和浏览数据的Form(比如包含DataGrid)吗?还是直接取出数据就在报表软件里显示?如果是后者那么是取出对应的全部数据给报表吗?取出全部数据时间可能会很长,那么这时提示用户等待吗?
Bmonkey
2005-06-28
打赏
举报
回复
而且vs自带的cr是9.1版本吧,比9.2弱在哪些地方呢?如果用来做统计报表,汇总报表一些比较普通的功能的话9.1是否就足够了呢?9.1是否比9.2便宜呢?谢谢`~~~~~~~~~
Bmonkey
2005-06-28
打赏
举报
回复
啊泰,顺便问一下,如果我们公司买的正版的vs.net的话,crystal report还需要买正版的吗?
就版权这方面的东西,请回帖说说,应为现在产品要用报表,所以可能牵涉这方面的事情,如果要买大概需要多少钱,我们目前只是需要winfrom下的报表,webservice都不需要.
还有如果买activereport需要多少钱呢?
阿泰
2005-06-27
打赏
举报
回复
1:100页数据不算多,水晶报表还可以承受,当然要注意索引,
2:要全部依次打印,必须全部获取数据
3:打印N年数据,确实可能需要,但是可以从程序上控制他一次只能打一年的,
或者一次只能打一个月的都可以,看客户的接受程度及数据量,,不能总由着客户
4:你既然已经实现了分页取数据和显示,为什么不直接打印呢?就差一步,呵呵。
.Net里有PrintDocument可以用,直接打个Form
对于连续打印应该反复调用就行了吧
不用水晶报表不是更好,呵呵
花点力气,省下点钱,,买个水晶报表授权怎么着也得5位数
Bmonkey
2005-06-27
打赏
举报
回复
2:我不清楚现在的一些报表功能是否能实现你这里所说的显示一页才去拉取数据进行打印的功能
分页与打印没有直接关系,不论在哪一页,你都可以实现全部打印
当然也可以选取某些页面进行打印
无论在哪一页我的确可以实现全部打印的功能,但是是否需要在打印事件开始之前全部取除需要打印的数据推给报表呢?如果是,那么加入某个客户脑袋有问题,打印n年的数据(理论上存在)的话,那么会出现内存问题的,是吧?能有其他可行的办法嘛??
Bmonkey
2005-06-27
打赏
举报
回复
我现在就有这样的问题,假如我使用crystal report ,我的数据有一百页甚至更多,我可以在我的程序里面实现分页取数据然后在报表里面显示,我每次取一页的数据,然后推给报表它就可以显示了,对吧.当前页和页数都是我另外计算出来赋值给某个显示控件的,如果用户一直都只是浏览那就没问题了.但是如果此时用户需要打印,而我刚才推给保表的数据只有一页的的数据,那么打印只可能打印刚才推进去的那一页,无法打印其他没有取出来的数据.
我的想法:是不是在打印的时候必须把需要打印的数据,比如100页都取出来,然后给报表,再打印呢?
阿泰
2005-06-27
打赏
举报
回复
我ActiveReports没用过,所以只从水晶报表的角度来大致说一下
1:如果是大数据量(条数非常多)的情况,应该叫做清单而不是报表
这种情况是不适合用水晶报表的,水晶报表似乎不能实现区间页数据的获取
也就是说,水晶报表应该是把数据全部拉下来进行后再进行显示的
2:我不清楚现在的一些报表功能是否能实现你这里所说的显示一页才去拉取数据进行打印的功能
分页与打印没有直接关系,不论在哪一页,你都可以实现全部打印
当然也可以选取某些页面进行打印
水晶报表数据量取决与你的机器的磁盘空间大小,因为他的数据是缓存在本地的
http://www.cnblogs.com/babyt/archive/2005/04/16/138734.html
如果实在要用水晶报表,则注意以下情况(水晶报表9.2企业版本)
文件==》选项==》数据库
选上以下项目
高级选项的Frame里
为提高速度使用索引或服务器
在服务器上执行分组
不区分大小写
异步执行查询
以下项目不选
选择用于浏览的非重复数据
文件==》报表选项
勾选以下项目
总是在本地排序
在服务器上执行分组
为提高速度而使用索引或服务器
异步执行查询
以下项目不选
数据库中的 NULL 值转换为默认值
将其他 NULL 值转换为默认值
选择非重复记录
选择用于浏览的非重复数据
将数据与报表一起保存
创建组树
这些项目可以提高你的报表性能,但是却不能彻底解决大数据问题
对于该种情况,个人建议你自己编写程序来实现分段读取和分段打印,先取到总的数目
然后计算分页等情况,每次只操作一页的数据,效率应该是很高的
关于大
数据量
查询
报表
优化
针对
数据量
巨大的
报表
查询,总结了一下几个
处理
方法: 看一个运用案例:多粒度(年月日,省、地市、热点、ac、ap)下每天20W条,每月800W条,自由选择35天内数据的查询。 直接查询页面崩溃,运用了以下几点,基本上...
大
数据量
报表
系统的改进方案
如果是行家,提起
报表
,你是否想起了JasperReports( iReport )、Birt、JFreeReport、水晶
报表
等?...但是我讲的是一种大
数据量
的
报表
,可能不是一张word或者几千条的excel能够导出的,比如说订单
报表
、销
大
数据量
报表
展现慢容易卡死,怎么办?
大
数据量
报表
展现性能优化方案主要有以下几种: 1. 可以在数据库端做一些优化配置,例如:添加索引、优化 sql 取数性能等; 或者优化系统配置:开启缓存机制、配置集群等。 但是效果一般不会太明显 2. 采用异步...
海量数据(
数据量
比较
大时
)的
处理
分析
一、
数据量
过大,数据中什么
情况
都可能存在。如果说有10条数据,那么大不了每条去逐一检查,人为
处理
,如果有上百条数据,也可以考虑,如果数据上到千万级别,甚至过亿,那不是手工能解决的了,必须通过工具或者程序...
表的
数据量
特别
大时
是怎么
处理
的
1、索引优化和SQL语句...如果需求要求必须单表,分区是解决在千万到几亿
数据量
的比较合适的方法可能更大
数据量
还是要回到分的路上,但是可能更多考虑分布式3、我们一般都是把历史数据定期转存其他表(一样的表名后加年
图表区
4,816
社区成员
14,134
社区内容
发帖
与我相关
我的任务
图表区
.NET技术 图表区
复制链接
扫一扫
分享
社区描述
.NET技术 图表区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章