Zum Hauptinhalt springen

Benutzerbezogene Darstellungsmodelle

Verfügbar ab Version 25.1.143

Warnung

Diese Funktion steht nur für Postgres und Oracle zur Verfügung!

Hinweis

Diese Funktion ist ähnlich aber nicht exakt gleich wie die Funktion TB_VARIABLE in Map3D. TB_VARIABLE ist anders als ME_VARIABLE keine Datenbankseitige Funktion.

Mit benutzerbezogenen Variablen können Sie dem Endanwender ermöglichen zur Laufzeit Einfluss auf das Darstellungsmodell zu nehmen.

Um Benutzerbezogenen Variablen im Darstellungsmodell nutzen zu können muss die Tabelle ME_USER_VARIABLE in Kombination mit der Datenbank Funktion ME_VARIABLE und einem View verwendet werden.

Konfiguration

Erzeugen Sie in der Tabelle "ME_USER_VARIABLE" einen neuen Datensatz.
Lassen Sie das Feld "USER_NAME" leer.
Tragen Sie bei "VAR_NAME" einen sprechenden Namen für ihre Variable ein, z.B. "STRASSEN_NAME"
Geben Sie bei "VAR_VALUE" einen Default Wert ein der benutzt werden soll wenn für einen Benutzer noch kein Wert definiert ist z.B. "Ditzinger Strasse".

Aktivieren Sie bei der Datenbankverbindung die Option "Benutze Client Identifier". Wird dies nicht eingeschaltet dann liefert die Funktion "ME_VARIABLE" immer den Default Wert zurück (den wert wo USER_NAME=null ist).

Informationen dazu finden Sie für Oracle hier:
https://help.mapedit.de/admin-guide/mapedit-appbuilder/database-connections/structure/database-connection#oracle---benutze-client-identifier

für Postgres hier:
https://help.mapedit.de/admin-guide/mapedit-appbuilder/database-connections/structure/database-connection#postgres---benutze-client-identifier

Erzeugen Sie nun im AppBuilder einen View der zur Darstellung ihrer Strasse dienen soll. In diesem View kann nun die Datenbank Funktion "ME_VARIABLE" verwendet werden um den Wert des aktuellen Benutzers aus der Tabelle "ME_USER_VARIABLE" zu lesen.

Beispiel View:

select fid, geom from STRASSEN where NAME=ME_VARIABLE('STRASSEN_NAME') 

ME_VARIABLE liefert immer einen Text zurück. Wenn Sie ME_VARIABLE für Zahlenwerte verwenden wollen müssen Sie diese mit TO_NUMBER in eine Zahl umwanden.

select fid, geom from STRASSEN where FID=TO_NUMBER(ME_VARIABLE('STRASSEN_FID')) 

Diesen View können Sie nun in das Darstellungsmodell einbinden.

Warnung

Wenn Sie den TileUpdater verwenden, dann verwendet der TileUpdater zum neu Render der Kacheln immer den Wert wo USER_NAME=null ist.

Bitte beachten

Die Funktion "ME_VARIABLE" kann nicht direkt bei den Thematischen Regel etc. benutzt werden.
Sie kann beim Darstellungsmodell nur via View benutzt werden da es sich bei den Thematischen Regeln nicht um wirkliche Datenbank SQLs handelt sondern um Formalausdrücke.

siehe: https://help.mapedit.de/admin-guide/mapedit-appbuilder/ConditionParser

An anderen Stellen wie der Suche etc ist kein View notwendig.

Gehen Sie im AppBuilder in den Ribbon Designer und fügen Sie das Kommando "Variable Editor" hinzu.
Klicken Sie auf den Knopf "Configure".
Klicken Sie dann auf "Hinzufügen" und wählen Sie im letzten Feld (Connection) die Datenbankverbindung.
Klicken Sie dann auf ".." in der Spalte "Variable Name" und wählen den Variablennamen "STRASSEN_NAME".
Tragen Sie in der Spalte "Titel" einen für den Endanwender verständlichen Text ein, dieser wird dann über der Eingabebox angezeigt.

Schließen und speichern Sie.

Wird der Ribbon Knopf gedrückt erscheint ein Dialog in dem der Anwender den Wert der Variable ändern kann.

Sie können hier auch mehrere Variablen hinzufügen oder mehrere separate Dialoge erzeugen und diese unterschiedlich benennen.

Anwendung im Client/Professional

Starten Sie Client/Professional.
Klicken Sie auf den gerade hinzugefügten Ribbon Knopf.
Geben Sie nun den Wert ein den Sie verwenden wollen.
Der Wert wird dann in der Tabelle "ME_USER_VARIABLE" benutzerabhängig gespeichert.

Wenn Sie nun einen neuen Bildaufbau machen wird der neue Wert im View eingesetzt und die Daten entsprechend angezeigt.

Hinweis

Sie können wahlweise stattdessen auch einen Generischen Dialog auf die Tabelle "ME_USER_VARIABLE" erzeugen.

Bitte beachten

Die Funktion ME_VARIABLE liefert bei MapGuide/MapServer und Mobile immer den default Wert zurück der im Datensatz USER_NAME = null steht.