The visibility condition determines if a cell of frame shall be shown, depending on the value of a formula.

To edit the visibility condition select a cell or frame and then go to the menu/edit/visibility condition

This will show the seeformula editor. The return type of the formula must be a boolean value. If that value is true, then the element will be shown. If the selected cells are inside a repeater, then the scope of the formula is the element type of the repeater. To access the values from the object that contains the repeater, use the OQL pattern below:


In this formula please replace TypeOfEnclosingObject with the type of the enclosing object (cast operation) and replace fieldOfEnclosingObject with the field that you want to access.

Note: The visibility condition can be applied to cells or frames. To control the visibility of a frame just select it by clicking right next to it.

Note: If you select a cell range, then the visibilty condition will be applied to all cells individually. Therefore you can change the visibility condition for each cells later on. If a cell is deleted and reinserted, then the visibility condition for the new cell will be empty again. If you apply visibility conditions to ranges and you want to maximize performance, then it is recommended to create the formula in the underlying view. (the report must be based on a view)This will evaluate the formula only once and reuse the return value.

Note: If you select a range, then the range must not conflict with a repeater. I.e the range must both completely enclose inner repeater, and it must be completely enclosed in any outer repeater.

  1. The visibility condition will be applied to the range of eight selected cells.
  2. The empty cells receive no visibility condition. Content addled to the cell later will have no condition (show always).
  3. The range includes cells from a table header, which is no problem, because the header is not part of the table proper.
  4. However extending the range to this row would create a conflict, because the rage crosses a repeater.