ReportViewer 同样的数据,显示的起始记录不一样

laorer 2009-05-22 10:19:12


现在做的报表,同样的数据(数据记录数的大小, 数据内容 都一样) ,但是每次显示报表后, 起始显示的记录却不一致, 有时可以全部显示, 有时只能显示后面的,比如总共九页, 有时是显示 九页, 有时只显示五页, 从第五页开始显示

有无办法解决?

环境 xp, vs2005, 数据源是动态的从数据库中查找出来,然后放到 Datatable 中的, 每次打印 Datatable 的 rows.count 时,是一样的
...全文
264 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
laorer 2009-05-23
  • 打赏
  • 举报
回复
这种情况是随机,没办法, 另外,  就是有时候会出现,第一次显示的页面比所有的页面少了一页,当点击下一页时,会自动加上一页....
laorer 2009-05-22
  • 打赏
  • 举报
回复
 public void RestoreReport(String reportPath )
{
rptViewer.ShowParameterPrompts = false;

rptViewer.LocalReport.DataSources.Clear();
rptViewer.Reset();

setRptViewDs(reportPath);

rptViewer.RefreshReport();
rptViewer.SetDisplayMode(DisplayMode.PrintLayout);
rptViewer.ZoomMode = ZoomMode.Percent;
rptViewer.ZoomPercent = 100;
}

private void setRptViewDs(String rptPath)
{
this.rptViewer.LocalReport.ReportPath = rptPath;

DesignReport rpt = (DesignReport)XmlUtil.LoadXml(rptPath, typeof(DesignReport));

if (rpt == null)
{
MessageBox.Show(MsgRptNotGood + rptPath);
return;
}

DataTable dt = GetDatasource(RptProfile, rpt, AccountId);

if (dt != null)
{
ReportDataSource dsSalesOrderDetail = new ReportDataSource();
dsSalesOrderDetail.Name = rpt.DataSetList[0].Name;
dsSalesOrderDetail.Value = dt;
rptViewer.LocalReport.DataSources.Add(dsSalesOrderDetail);
}
setParameters(rpt);
}


这里也没全部帖出来,获取数据一块的就是按正常情况得到的,我觉得与这一块没什么关系,因为 datatable 的数据大小不变
laorer 2009-05-22
  • 打赏
  • 举报
回复
...这种情况是随机的,我很久没遇到,不过我同事测的时候就碰到了....
阿泰 2009-05-22
  • 打赏
  • 举报
回复
代码全贴出来看,呵呵。

laorer 2009-05-22
  • 打赏
  • 举报
回复
数据量少的时候没有问题,但是数据量 我怎么限定得了?
zzxap 2009-05-22
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20071213/10/fdee8073-2f77-43fc-a7fa-656533c1a42f.html
laorer 2009-05-22
  • 打赏
  • 举报
回复
1:是否在9页完整的时候,点击过翻页按钮,翻到了第5页。然后再重复操作时,就从第5页开始显示了。

九页完整时翻到第五页, 就是只显示五页时的第五页,就像被截断了前面的内容样的,但是点击刷新时,又可以全部显示了 ReportViewer 的工具栏中的刷新时,又可以全部显示了

2:取数的时候,少取一点数据,比如说少于5页的,再看。
这个还没试

3:是不是由于报表少了刷新动作导致的?部分报表功能有缓存数据的功能来提升性能
..这个我第一次显示的时候就不完整了,怎么办?我在填充数据时的操作是这样的

//填充数据
rptViewer.RefreshReport();

不过后面加了三行

rptViewer.SetDisplayMode(DisplayMode.PrintLayout);
rptViewer.ZoomMode = ZoomMode.Percent;
rptViewer.ZoomPercent = 100;
阿泰 2009-05-22
  • 打赏
  • 举报
回复
非常抱歉,我对RDLC也是一知半解。

不过既然datatable是完整的,那就要看报表这个第5页出现的时机。
建议从下面几个方面去测试一下
1:是否在9页完整的时候,点击过翻页按钮,翻到了第5页。然后再重复操作时,就从第5页开始显示了。
2:取数的时候,少取一点数据,比如说少于5页的,再看。
3:是不是由于报表少了刷新动作导致的?部分报表功能有缓存数据的功能来提升性能
zhaozhijun0207 2009-05-22
  • 打赏
  • 举报
回复
哦,看来只能等阿泰了;
laorer 2009-05-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zhaozhijun0207 的回复:]
"起始显示的记录却不一致"

右键-"报表"-"记录排序专家",选择一个主键,升序排序;
[/Quote]

谢谢你的回复,不过没看懂你的意思,报表是我用其他方式生成的,不是用 vs2005 生成的, 只不过是用 reportViewer 来查看报表
zhaozhijun0207 2009-05-22
  • 打赏
  • 举报
回复
"起始显示的记录却不一致"

右键-"报表"-"记录排序专家",选择一个主键,升序排序;
【更新至2025年】2001-2025年上市公司数字化转型年报词频统计(吴非、赵宸宇、甄红线)(300+年报词频统计) 1、时间:2001-2025年 2、来源:上市公司年报 3、参考文献:企业数字化转型与资本市场表现——来自股票流动性的经验证据(吴非) 数字化转型如何影响企业全要素生产率(赵宸宇) 知识产权行政保护与企业数字化转型(甄红线) 4、方法说明:(1)参考吴非老师的做法,对人工智能技术、大数据技术、云计算技术、区块链技术、数字技术运用五个维度76个数字化相关词频进行统计 (2)参考赵宸宇老师的做法,对数字技术应用、互联网商业模式、智能制造、现代信息系统四个维度99个数字化相关词频进行统计 (3)参考甄红线老师的做法,对技术分类、组织赋能、数字化应用等类别下139个数字化相关词频进行统计 5、指标:年份、股票代码、公司简称、行业名称、行业代码、全文-文本总长度、仅中英文-文本总长度、人工智能技术-吴、大数据技术-吴、云计算技术-吴、区块链技术-吴、数字技术运用-吴、数字技术应用-赵、互联网商业模式-赵、智能制造-赵、现代信息系统-赵、技术分类-人工智能技术-甄、技术分类-区块链技术-甄、技术分类-云计算技术-甄、技术分类-大数据技术-甄、组织赋能-人工智能技术-甄、组织赋能-云计算技术-甄、组织赋能-大数据技术-甄、组织赋能-广义数字技术-甄、数字化应用-技术创新-甄、数字化应用-流程创新-甄、数字化应用-业务创新-甄、人工智能、商业智能、图像理解、投资决策辅助系统、智能数据分析、智能机器人、机器学习、深度学习、语义搜索、生物识别技术、人脸识别、语音识别、身份验证、自动驾驶、自然语言处理、大数据数据挖掘、文本挖掘、数据可视化、异构数据、征信、增强现实、混合现实、虚拟现实、云计算、流计算、图计算、内存计算、多方安全计算、类脑计算、绿色计算、认知计算等300+词频

4,818

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧