制作报表时,我们希望它对使用者尽可能“友好”。太多的数据和设计元素处理使人们对信息的理解更加不利。比如,许多人希望删除表中的没有数据的空格。FastReport.Net报表生成器使您可以执行此功能。如您所知,不仅需要隐藏该列,而且还需要为其隐藏标题。如果用鼠标单击几下即可隐藏一列,那么隐藏标题任务却并非易事。
假设我们有一个表,要从中显示报表中的数据。但是,某些数据可能会丢失或设置为零。在这种情况下,我们可以使用“条件选择”工具隐藏零数据单元。选择所需的单元格,然后单击工具栏上的图标:
![b87e5ff1c9738b11a75a92f4dbcc57a7.png](https://i-blog.csdnimg.cn/blog_migrate/11383a27d6584593f03aef9cba5a64a7.jpeg)
FastReport.Net报表生成器:如何隐藏列表中那些没有数据的列?
添加条件时,默认情况下将检查零。那就是我们所需要的。我们仅选择显示选项。在我们的例子中,我们删除可见的标志:
![5c6d55d1235240d8e977362da49b4226.png](https://i-blog.csdnimg.cn/blog_migrate/8b7fc7799209e786a36f9c17216998c4.jpeg)
FastReport.Net报表生成器:如何隐藏列表中那些没有数据的列?
因此,通过这些非精简的操作,我们已经实现了隐藏的零数据单元。但这并不能解决所有问题。我们的任务是在没有值大于零的情况下隐藏整个列的标题。此列中的空白将检查每页的输出。
要检查给定列中页面上是否没有数据,我们将使用“结果”。
该结果由给定的列求和,并汇总其中的所有值。如果总数为零,则该列中没有单个值大于零,因此您需要隐藏该列的标题。
现在,让我们添加结果:
![8942115084adf269f8b8006148fe0bae.png](https://i-blog.csdnimg.cn/blog_migrate/2c48240e8b1064a6285f2c74c538b810.jpeg)
FastReport.Net报表生成器:如何隐藏列表中那些没有数据的列?
结果放入“页脚”区域中:
![d427b78b9a7e5208ef416936613ab281.png](https://i-blog.csdnimg.cn/blog_migrate/acaea3053d8adaa64d8066f9682dd707.jpeg)
FastReport.Net报表生成器:如何隐藏列表中那些没有数据的列?
然后可以使用“visible”属性隐藏结果。
然后,让我们设置逻辑以隐藏最后一列的标题。代替RUB文本,我们引入表达式:
[IIf([Total]!=0,Text14.Text = "RUB",Text14.Text = "")]
但是,这还不是全部。由于结果是在页面上显示标题和数据之后形成的,因此在执行我们上面介绍的表达式时,总价值无关紧要。因此,我们需要在列标题中使用延迟表达式计算选项,并对报表进行两次遍历。
选择一个带有RUB列标题的文本框。在文本字段的属性中,我们找到ProcessAt并更改为PageFinished:
![661c8bb127d8a703ce270d91f06f1683.png](https://i-blog.csdnimg.cn/blog_migrate/08946633d0a64b84ec003ff9981d8824.jpeg)
FastReport.Net报表生成器:如何隐藏列表中那些没有数据的列?
之后,我们需要打开报表属性并安装“Doublepass”选项:
![2b4bfdd9dcaddf121e1dc192ae2f85df.png](https://i-blog.csdnimg.cn/blog_migrate/edc3475d7d151b58f25e00d294ed92f6.jpeg)
FastReport.Net报表生成器:如何隐藏列表中那些没有数据的列?
此选项使您可以两次生成报表。在第一种结构中,将计算所有结果,在第二种结构中,这些结果可用于标题。所有这些都是必要的,因为报表在元素上是一致的。也就是说,在构建下一个元素时,您将无法更改前一个元素。因此,您需要进行重新构建,以考虑下一个元素的结果。
让我们看看RUB列中所有数据何时为0时报表的工作方式:
![e4e2ec668a323b9476a88f11ee4e9436.png](https://i-blog.csdnimg.cn/blog_migrate/7fadb47ef9241deab0761208cf8c928f.jpeg)
FastReport.Net报表生成器:如何隐藏列表中那些没有数据的列?
在某些页面上可以显示数据,因此该列也会显示:
![837be35d1308accdc342f8fbcb7b8cd1.png](https://i-blog.csdnimg.cn/blog_migrate/2881e6785ff33a5fce5900d13544d568.jpeg)
FastReport.Net报表生成器:如何隐藏列表中那些没有数据的列?
这样,我们可以根据列中的数据动态显示或隐藏列。
重要通知:FastReport助力医疗机构,.NET正版授权限时限量免费申请!赶快点击“了解更多”抢占名额!