Tipps & Tricks - Eingabe auf einen Datensatz beschränken
Eine sichere und elegante Lösung, die Eingabe von Datensätzen auf einen Datensatz zu beschränken,
bietet die bedingte Anzeige von Schaltflächen. Hier kann eine Prüfbedingung hinterlegt werden,
die serverseitig ausgeführt wird und die Schaltfläche in Abhängigkeit des Prüfergebnisses ein- bzw. ausblendet.
Damit Sie die bedingte Anzeige der Schaltfläche konfigurieren können, sollten Sie vorab
die
Expertenoptionen aktivieren.
Ausblenden der Schaltfläche bei einem vorhandenen Datensatz
Legen Sie auf einer beliebigen Applikationsseite eine
Schaltfläche an.
Öffnen Sie den
Eigenschaftendialog.
Aktivieren Sie auf dem
Reiter Allgemein
unter
Optionen die Einstellung
Bedingte Anzeige.
Klicken Sie auf
"Bedingung bearbeiten" und
tragen Sie im
Velocity-Editor
das folgende Skript ein:
#set($show_buttoncontrol3A451A26 = false)
## Ermittle Anzahl der Datensätze
#set($l_statement = $PreparedQuery.prepare($DbConnection, "SELECT COUNT(*) FROM XDATAGROUP00D1A2185"))
#set($l_recordCount = $l_statement.executeAndGetScalarValue(0))
$l_statement.close()
#if($l_recordCount == 0)
#set($show_buttoncontrol3A451A26 = true)
#end
Das Skript führt ein SQL-Statement aus, das prüft, wie viele Datensätze in der
Datengruppe vorhanden sind.
Ist kein Datensatz vorhanden, wird die Schaltfläche angezeigt.
Ersetzen Sie im Skript den Namen der Schaltfläche (buttoncontrol3A451A26) mit dem
Namen Ihrer Schaltfläche. Diesen Namen können Sie im Editor im Bereich
Applikationsstruktur
ermitteln. Ersetzen Sie auch den Namen der
Datengruppe (XDATAGROUP00D1A2185) mit dem Namen Ihrer Datengruppe. Schließen Sie
den Editor mit Klick auf "OK". Schließen Sie auch den Eigenschaftendialog der
Schaltfläche mit Klick auf "OK". Speichern Sie die Applikation.
Wenn Sie die Applikation nun im Browser öffnen, wird die Schaltfläche ausgeblendet,
sobald ein Datensatz in der Applikation in der entsprechenden Datengruppe erfasst ist.
Benutzerabhängiges Ausblenden der Schaltfläche bei einem vorhandenen Datensatz
Mit diesem Beispiel kann jeder Benutzer genau einen Datensatz anlegen.
Gehen Sie dazu genauso vor wie im ersten Beispiel. Fügen Sie statt des Skripts
aus dem ersten Beispiel das hier folgende Skript ein:
#set($show_buttoncontrol3A451A26 = false)
## Ermittle Anzahl der Datensätze
#set( $l_statement = $PreparedQuery.prepare($DbConnection, "SELECT COUNT(*) FROM XDATAGROUP00D1A2185 WHERE LUSERIDINSERT = ?"))
$l_statement.setInt(1, $User.getId())
#set( $l_recordCount = $l_statement.executeAndGetScalarValue(0))
$l_statement.close()
#if($l_recordCount == 0)
#set($show_buttoncontrol3A451A26 = true)
#end
Ersetzen Sie auch hier den Namen der Schaltfläche und Datengruppe mit dem
Namen Ihrer Schaltfläche und Datengruppe.