zoukankan      html  css  js  c++  java
  • ReportView 如何实现按页码控制报表对象的显示属性

    1. 业务要求

    某电厂要求实现如下格式报表:

    在多页报表中,第一页需要显示操作时间,终了时间,操作任务。如下图所所示:

    clip_image002

    第二页以后(包括第二页)不需要显示操作时间,终了时间,操作任务统一显示为上呈第一页。如下图所示:

    clip_image004

    2实现思路:

    2.1在ReportView的翻页事件想办法:

    (1)先做两张不同的报表,分别为符合第一页格式的报表1与符合第二页以后的报表格式2.

    (2)在报表的翻页事件中进行判断,如果当前页码是第一页,那么载入报表1;如果不是第一页,那么就在如报表2

    结论:这种方法实现后的效果是,报表web页预览时一切正常,然而在报表插件中预览与打印,都会呈现一种报表,要么是报表1,要么是报表2,(具体是那个报表,由在web页面单击打印时载入的报表决定)。要解决报表插件中的预览与打印,在插件中想办法,几乎不可能,插件在服务器端不可能被编程控制。所以这种方法的尝试到此为止。

    2.2在报表文件中想办法:

    (1)把所有需要在第一页显示,而不需要在第二页显示的报表字段,线等报表对象都列出来。

    (2)在在对象的Visibility中的hidden中写入如下的visual basic 表达式:

    =Iif(Globals.PageNumber.Equals(1),False,True)

    如果报表的当前页码是第一页,那么报表对象的隐藏属性为False,否则隐藏属性为True

    结论:web页预览与插件预览都正常,打印也正常。

    所以对于Reportviewer中的报表对象的控制,主要应该在rdtc文件中想办法,而不是在.cs文件中想办法。

  • 相关阅读:
    php安装xcache (5.4)
    nginx博客系统(内含nginx图片缩略图处理代码,不错)
    一个mysql开启多个端口
    mysql源码重启
    ecshop支付时减库存方法
    n阶幻方问题
    codeforces 710A King Moves(水)
    关于ios::sync_with_stdio(false);和 cin.tie(0)加速c++输入输出流
    codeforces 701C. They Are Everywhere(尺取法)
    codeforces 701 B. Cells Not Under Attack
  • 原文地址:https://www.cnblogs.com/hbb0b0/p/1409592.html
Copyright © 2011-2022 走看看