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文件中想办法。

  • 相关阅读:
    如何完全卸载oracle和删除oracle在注册表中的注册信息
    win10 管理工具中添加 oracle 10g驱动
    failed to install tomcat6 service ,check your setting and permissions
    ORA-28000: the account is locked-的解决办法
    Intellij Idea乱码解决方案
    过三关 Java冒泡排序选择排序插入排序小练习
    Java坦克大战(四)
    Java坦克大战(三)
    Java坦克大战(二)
    Java坦克大战(一)
  • 原文地址:https://www.cnblogs.com/hbb0b0/p/1409592.html
Copyright © 2011-2022 走看看