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.

Applikation erstellen

Erstellen Sie eine Applikation mit der Vorlage Basisapplikation.



Auf der Eingabeseite wird ein Eingabefeld mit dem Kontrolltyp Datum angelegt. Während Sie sich noch auf der Eingabeseite befinden, erstellen Sie eine Ansichtsseite über das Hauptmenü Neu / Ansichtsseite mit Elementen.



Diese Ansichtsseite mit dem Namen "Details Termin" wird später in eine Frei gestaltete Tabelle eingebunden. Damit die Darstellung in der Tabelle nicht zuviel Platz pro Zeile einnimmt, haben wir die Titel der Ansichtsfelder Datum und Titel entfernt und die beiden Ansichtsfelder einzeilig angeordnet. Außerdem wurde eine Schaltfläche mit dem Schaltflächentyp Text und dem Titel "Bearbeiten" angelegt.



Aktivieren Sie die Optionen für Experten. Öffnen Sie dann 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.
## Initialisieren des CalHelpers
$CalHelper.init($Request)

## Schaltfläche per default nicht anzeigen
#set($show_buttoncontrol5776AA58 = false)

## Zeitzone des angemeldeten Users ermitteln
#set($TZ = $User.getTimeZone())

## Aktuelles Datum ermitteln
#set($Now = $CalHelper.getNowCalendar($TZ))

## Wert aus Datensatz (Ansichtskontrolle auf Seite) auslesen innerhalb der Tabellenstruktur der Übersichtsseite
#set($To = $drRecord.getValueHolder("datecontrol2AEFE7BE").getValue())

## Vergleich der Datumswerte. Achtung auf CalenderObjekt muss getTime()
## zweimal ausgeführt werden, um ms-Wert zu bekommen!

#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 Datums-Ansichtsfeldes. Beide Namen können im Editor im Bereich Applikationsstruktur ermittelt werden.



Wechseln Sie dann auf die Seite "Alle Einträge". Entfernen Sie die Ansichtstabelle, die sich dort befindet, und legen Sie statt dessen eine Frei gestaltete Tabelle an. Öffnen Sie den Eigenschaftendialog der Tabelle. Binden Sie auf dem Reiter Daten die Ansichtsseite "Details Termin" ein. 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.