Tipps & Tricks - Bedingte Anzeige

In diesem Beitrag erfahren Sie, wie eine Schaltfläche in eine Frei gestaltete Tabelle integriert und dort abhängig von einem Datum durch die bedingte Anzeige ein- bzw. ausgeblendet wird.

Erstellen Sie eine Applikation mit der Vorlage "Basisapplikation".

Auf der Eingabeseite wird ein Eingabefeld mit dem Kontrolltyp "Datum" angelegt. Legen Sie dann eine Ansichtsseite über das Kontextmenü "Neu / Ansichtsseite" der Datengruppe an.

Diese Ansichtsseite mit dem Namen "Details Termin" wird später in eine Frei gestaltete Tabelle eingebunden. Legen Sie die beiden Ansichtsfelder "Datum" und "Titel" an, die mit den gleichnamigen Datenfeldern verbunden werden, und ordnen Sie diese einzeilig an. Außerdem wird noch eine Schaltfläche mit dem Schaltflächentyp "Text" und dem Titel "Bearbeiten" angelegt. Als Sprungziel der Schaltfläche kann die Eingabeseite eingestellt werden.

Aktivieren Sie dann die Optionen für Experten. Öffnen Sie den Eigenschaftendialog der Schaltfläche und klicken Sie auf dem Reiter "Allgemein" auf "Optionen". Aktivieren Sie die bedingte Anzeige und öffnen Sie den Velocity-Editor mit Klick auf Bedingung bearbeiten. Tragen Sie dort das folgende Skript ein.

## Initialize CalHelper
$CalHelper.init($Request)

## Do not show button by default
#set($show_buttoncontrol5776AA58 = false)

## Get timezone of the current user
#set($TZ = $User.getTimeZone())

## Get current date
#set($Now = $CalHelper.getNowCalendar($TZ))

## Read value from data set (view control on page) within the table structure of the overview page
#set($To = $drRecord.getValueHolder("datecontrol2AEFE7BE").getValue())

## Comparison of the date values. Please note: getTime() has to be executed twice
## on CalenderObject to get ms value

#if($Now.getTime().getTime() < $To.getTime())
#set($show_buttoncontrol5776AA58 = true)
#end

Ersetzen Sie buttoncontrol5776AA58 mit dem Namen Ihrer Schaltfläche und datecontrol2AEFE7BE mit dem Namen Ihres Ansichtsfeldes "Datum". Beide Namen können im Editor im Bereich "Applikationsstruktur" ermittelt werden.

Wechseln Sie dann auf die Seite "Alle Einträge". Entfernen Sie alle Elemente, die sich dort befindet, und legen Sie eine Frei gestaltete Tabelle an.Öffnen Sie den Eigenschaftendialog der Tabelle. Binden Sie auf dem Reiter "Daten" die Ansichtsseite "Details Termin" ein.

Binden Sie die Eingabeseite "Eintrag" über das Kontextmenü "Eigenschaften" des Applikationsknotens im Applikationsmenü ein, damit Sie später im Browser Datensätze erfassen können.

Schließen Sie den Eigenschaftendialog mit Klick auf "OK" und speichern Sie die Applikation. Öffnen Sie das Portal und die Applikation im Browser.

Hier sehen Sie, dass die Bearbeiten-Schaltfläche - wie in der bedingten Anzeige vorgegeben - nur bei den Datensätzen eingeblendet wird, deren eingetragenes Datum größer als das heutige Datum ist.