【问题标题】:Pentaho Report Designer 5.0.1 - Hide field with Empty fieldPentaho Report Designer 5.0.1 - 用空字段隐藏字段
【发布时间】:2014-05-31 07:04:18
【问题描述】:

我正在使用 Pentaho 报表设计器 5.0 CE。

我的报告有两组,一组包含带有元素和值的行带,例如,

Group1 Group2 Label1 - Value1 Label2 - Value2 Label3 - Value3 ...

只有当值不为空时才需要显示一行(不留空白)。 我将“invisible-consumes-space”属性设置为 false(波段级别)。空白处还在。

如果值为空,我如何隐藏标签和值(整行)?

【问题讨论】:

标签: reporting pentaho


【解决方案1】:

您是否尝试过将标签元素和值元素放在一个带中​​。假设值是按名称字段打印的。

这是你的乐队。

-----------------
|label  | name  |
-----------------

从结构树中选择波段并转到style tab->size&position -> visible选项。 然后打开表达式选项卡并粘贴

=IF(ISBLANK([Name]);"False"; "True")

=IF(LEN([Name])<=0;"False"; "True")

当没有数据时,我使用下面的一个来隐藏所有组页眉和页脚。

  1. 设置无数据带 -> 隐藏在画布上的选项为 false。添加消息 字段,假设“选定日期范围内没有可用数据”
  2. 并将所有报表页眉和页脚的可见选项设置为:

=IF(ISEMPTYDATA();"假"; "真")

而且它有效。 希望对你也有帮助。

【讨论】:

  • 嗨,Ozland,我用过 =IF(ISBLANK([Name]);"False"; "True") 它对我有用,我也可以试试 ISBLANK(希望它会起作用)。
  • 冗余IF。你可以简单地写=LEN([name]) &gt; 0
【解决方案2】:

而空字符串与不可见元素是不一样的。改用“可见”样式并将您的公式添加到带区的“可见”样式设置中以隐藏带区及其所有子带。

【讨论】:

  • 嗨,Thomas,我尝试了与您所说的相同的逻辑。问题是如果特定列值为空,则乐队变得不可见。但仍然会出现空白空间。作为一种解决方法,我将乐队的 y 位置更改为“0”(虽然我不喜欢这个)。
  • 正如我在您的另一篇文章中所说:为每种记录类型使用单独的波段,并使这些每个记录波段的父波段成为“块”布局波段。如果布局未定义,则报告引擎将使用“画布”作为布局,一旦记录带变得不可见,它不会重新定位其他带。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-02
  • 2013-09-03
  • 1970-01-01
  • 2014-11-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多