In diesem Tutorial erstellen wir eine App, bei der alle Personen Daten in eine Liste erfassen, jeder Nutzer aber nur seine Datensätze sehen und bearbeiten kann.
Hierfür ist es notwendig, dass
- wir in der App erkennen welcher Nutzer die App geöffnet hat und diese Information an die Excel-Datei weitergeben. Dafür setzen wir die App-Definition UserEmailCell.
- beim Hinzufügen der Datensätze die neue Zeile eindeutig einem Benuter zugeordnet werden kann. Hierfür fügen wir einen zusätzlichen Parameter bei der Detailansicht der Liste hinzu (DefaultValueCell).
- die Liste korrekt nach Nutzer gefiltert wird, damit jeder nur seine eigenen Datensätze sehen kann. Dazu dient die Definition IsVisibleColumn die wir bei unserem Liste-Element setzen.
UserEmailCell
Wenn ein Nutzer die App öffnet, erhalten wir als Information die E-Mail-Adresse, mit der er sich bei Open as App angemeldet hat. Für unseren Anwendungsfall ist es also erforderlich, dass der Benutzer einen Open as App Account hat und eingeloggt ist.
Die E-Mail-Adresse der Person die die App geöffnet hat kann mithilfe der App-Definition useremailcell=address an die Excel-Datei übergeben werden die wir als Datenquelle verwenden.
Um die Definition hinzuzufügen gehen Sie wie folgt vor:
- Öffnen Sie Ihre App im Web Portal.
- Navigieren Sie in die Ansicht "Fortgeschritten" im linken Menü.
- Wählen Sie "XML Konfiguration" aus.
- Fügen Sie die Definition useremailcell=Config!B1; zu den "App-Definitionen" im oberen Bereich der Seite hinzu.
In unserem Beispiel, wird die E-Mail-Adresse des Nutzers in Zelle B1 auf dem Arbeitsblatt "Config" eingefügt deshalb lautet die Definition useremailcell=Config!B1;.
-
Speichern Sie die Änderungen.
Wenn diese Definition festgelegt ist, wird die E-Mail-Adresse des Benutzers in die angegebene Zelle geschrieben, sobald die App gestartet wird.
Basierend auf dieser Information können wir Daten in der Excel Datei variieren, oder Befehle an die App weitergeben. Beispielsweise dynamisch Elemente in der App ausblenden (siehe: https://support.openasapp.net/hc/de/articles/360000448324). Das können unter anderem ActionButtons sein mittels derer der Nutzer zu bestimmten Seiten in der App springen kann. Wird einem Nutzer ein bestimmter Button nicht angezeigt (weil die Excel Logik vorgibt, dass dieser Nutzer nicht berechtigt ist) kann er diese Seite nicht öffnen und somit nicht die Inhalte auf dieser Seite sehen. In dem Artikel sind Beispieldateien und Erklärungen wie Sie Elemente in der App dynamisch ein-/ausblenden können.
In dem Anwendungsfall in diesem Tutorial, wollen wir das einzelne Zeilen in der Liste ausgeblendet werden und nicht das Liste-Element selbst. Dazu müssen wir zunächst erreichen, dass jede Zeile die der Nutzer anlegt eindeutig ihm zugeordnet werden kann. Hier kommt die "DefaultValueCell" zum Einsatz.
DefaultValueCell
Im Abschnitt "UserEmailCell" haben wir erreicht, dass die E-Mail-Adresse des Nutzers der die App öffnet in eine bestimmte Zelle der Excel eingetragen wird. Nun soll der Wert aus dieser Zelle automatisch in jeder Zeile eingetragen werden die dieser Nutzer hinzufügt. Dafür definieren wir bei einer Spalte der Detailansicht einen zusätzlichen Parameter.
Notiz: Da wir Daten Erfassen wollen, muss diese Funktionalität zunächst unter "Daten verwalten" > "Daten zurückschreiben" aktiviert werden. Weitere Informationen hierzu finden Sie in dem Artikel: "Listen über die App bearbeiten". Außerdem müssen wir die Spalte in welche der DefaultValueCell gesetzt wird auf "ReadOnly" setzen. Wie Sie einzelne Spalten vom Editieren ausschließen erfahren Sie im denselben Artikel im Abschnitt "Einzelne Spalten vom Editieren ausschließen".
Um den zusätzlichen Parameter hinzuzufügen gehen Sie wie folgt vor:
- Öffnen Sie Ihre App im Web Portal.
- Öffnen Sie den Editor für die Liste. (Vorschau » Bleistift-Symbol auf dem Liste-Element)
- Wechseln Sie in den Reiter "Advanced".
- Geben Sie die Adresse der Zelle deren Wert in die Detailansicht-Spalte geschrieben werden soll als Parameter bei der gewünschten Spalte an.
In unserem Beispiel, soll der Wert aus Zelle Config!B1 in der ersten Spalte unserer Liste eingetragen werden. Wir suchen daher nach den Definitionen für die erste Spalte der Detailansicht-Spalten und tragen an der 4. Stelle die Adresse der Zelle als Parameter ein. Bspw.: detailcolumns=3:text::,4:currency::,1:email:readonly:Config!B1; - Bestätigen Sie die Änderungen mit einem Klick auf das Häkchen im unteren Bereich des Editors.
IsVisibleColumn
In unserem Anwendungsfall bei dem Nutzer Daten erfassen, wollen wir dass jeder die Liste sieht, in dieser Liste aber nur seine Einträge erscheinen.
Wir haben bei jeder Zeile die Information, welcher Nutzer diese Zeile angelegt hat (Abschnitt DefaultValueCell) und wir wissen auch welcher Nutzer die App geöffnet hat (UserEmailCell).
Nun benötigen wir eine Hilfsspalte in der der App vorgegeben wird, ob diese Zeile dem Nutzer angezeigt werden soll oder nicht. Die Kriterien in diesem Tutorial sind recht einfach. Stimmt die E-Mail-Adresse der Person die die App geöffnet hat mit der E-Mail-Adresse in der Zeile überein? Wenn ja, soll die Zeile angezeigt werden, wenn nein, dann nicht. Die Kriterien werden in der Excel programmiert, sodass hier jegliche Variationen möglich sind.
Jede Zeile muss den Wert WAHR oder FALSCH in einer bestimmten Spalte enthalten. In unserem Beispiel nehmen wir die zweite Spalte. In jeder Zeile wird geprüft, ob der Wert in Spalte 1 mit dem Wert in Zelle Config!B1 übereinstimmt.
Um die IsVisibleColumn zu definieren, gehen Sie wie folgt vor:
- Öffnen Sie Ihre App im Web Portal.
- Öffnen Sie den Editor für die Liste. (Vorschau » Bleistift-Symbol auf dem Liste-Element)
- Wechseln Sie in den Reiter "Advanced".
- Fügen Sie die Definition
isvisiblecolumn=x;
hinzu, wobei das x durch die Position der Spalte geändert wird. (In unserem Beispielisvisiblecolumn=1;
Im Reiter "Advanced" des Liste-Editors, wird dann die "Sichtbarkeit (Spalte)" angegeben. Die Definition lautet isvisiblecolumn=x
. Das x muss dabei durch die Position der Spalte geändert werden. Fängt die Liste in A1 an und befindet sich die Spalte mit den WAHR / FALSCH Werten in Spalte B, ist die Definition isvisiblecolumn=1;
in der XML anzugeben.
Bitte stellen Sie sicher, dass die Werte WAHR oder FALSCH Boolesche Variablen in Ihrem Excel sind und keine String-Werte. Verwenden Sie daher keine Anführungszeichen in Formeln. Ein guter Hinweis, ob Sie Excel richtig programmiert haben: Boolesche Variablen werden in Excel automatisch zentriert.
Richtig: =WENN(A1=1;WAHR;FALSCH)
Falsch: =WENN(A1=1;"WAHR";"FALSCH")
(Da beim hinzufügen neuer Zeilen die Formeln fortgeführt werden müssen, kann dieses Feature aktuell nicht mit Google Sheets verwendet werden, da hier beim Hinzufügen neuer Zeilen, die Formeln nicht fortgeführt werden.)
Kommentare
0 Kommentare
Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.