2024 December Release

COOSYSTEM@1.1:attrvisibleexpr Permanent link for this heading

Expression for Computing the Visibility

This expression is evaluated to determine the visibility of a property on a formpage of a form.
If the expression returns null or throws an error, the default visibility applies (i.e. defined with attrvisible). If a row in the layout does not contain any visible property, the whole row is removed.

Explanation:
Defines an app.ducx expression that computes the visiblity of a property (see also attrvisibleexpr).

string[] COOSYSTEM@1.1:attrvisibleexpr readonly(inst)(
  object ::root,
  AttributeDefinition ::attribute,
  boolean ::isvalue,
  boolean ::isedit,
  boolean ::iseditcommon,
  boolean ::isdashboard,
  boolean ::iscalcwidget,
  boolean ::iscalccelledit,
  boolean ::issingleattribute,
  object ::container,
  Action ::context)

Local Scope: dictionary
Global Scope: dictionary
Returns: boolean

Name

Description

::root

contains the object the expression is evaluated for. ::root is identical to cooobj.

::attribute

contains the property the expression is evaluated for.

::isvalue

contains true if the form is used for displaying values (edit mode or read-only mode) opposed to query mode (see valuetype in ApplicationView).

::isedit

contains true if the form is in edit mode opposed to read-only mode (see edittype in ApplicationView). ::isedit is only valid if ::isvalue is true.

::iseditcommon

contains true if the form is used to edit common properties of multiple objects. ::iseditcommon is only valid if ::isvalue is true. In this case ::root/cooobj refer to the first object of the selection.

::isdashboard

see ::iscalcwidget

::iscalcwidget

::isdashboard and ::iscalcwidget are used to determine whether a dashboard will be visible or not:
First, the expression is called to determine which properties should be displayed in the dashboard (if only one property remains, no dashboard will be shown).
In that case the global scope contains these values:
::isdashboard == false
::iscalcwidget == true
After that, the properties for the dashboard widget itself are calculated:
::isdashboard == true
::iscalcwidget == true
When the property is displayed in explore mode, the global scope contains:
::isdashboard == false
::iscalcwidget == false

::iscalccelledit

contains true if the expression is evaluated to determine the property for editing in a cell (F2).

::issingleattribute

contains true if the expression is evaluated to determine whether the property in displayed in single attribute mode, i. e. when all other properties of a form page are hidden. Single attribute mode is used to edit a value like an aggregate or a list in a form initialized by editing in a cell (F2) or when showing a zoomed list by selecting "Show detail" on an overview page.

::container

contains the form object respectively the formpage object.

::context