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

laorer 2009-05-22 10:19:12


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

有无办法解决?

环境 xp, vs2005, 数据源是动态的从数据库中查找出来,然后放到 Datatable 中的, 每次打印 Datatable 的 rows.count 时,是一样的
...全文
217 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
  • 打赏
  • 举报
回复
"起始显示的记录却不一致"

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

4,816

社区成员

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

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