Dominik Scharrer Posted October 10, 2023 Share Posted October 10, 2023 Wir bauen eine smap für unsere Fotografen, um auf einer Veranstaltung eine Einverständniserklärung von den fotografierten Personen zu erfassen. Ich versuche dabei verzweifelt, das erfasste Geburtsdatum zu validieren. Ich möchte verhindern, dass z.B. das Geburtsjahr vergessen wird (passiert häufig, dass wir eingaben mit dem aktuellen Jahr als Geburtsjahr vorfinden). Zudem möchte ich sicherstellen, dass die Personen volljährig sind. Es muss bei der eingabe als geprüft werden, ob das Datum mindestens 18 Jahre in der Vergangenheit liegt. Das scheitert solch alleine daran, dass ich in formeln nicht einfach das heutige Datum in die berechnung mit einfließen lassen kann. Nach dem was ich im forum bereits gefunden habe, gibt es keine TODAY() Variable, sondern ich muss ein extra Feld, was man extra bedienen muss, anlegen. (timestamp) Das sieht furchtbar unprofessionell aus, wenn man dem "Kunden" das Smartphone zum ausfüllen in die hand drückt. Ich muss mir nun damit behelfen, das ich wie in nachfolgendem Post das alter Berechne und anzeige. Validieren kann ich das aber auch nicht, denn wenn ich eine Regel erstellen will, die auf der Berechnung basiert, kann ich diese nur nach ganzen Zahlen abfragen. Es kommt abe rnie eine ganze zahl bei der Berechung heraus. Eine Regel ">18" ist gar nicht möglich. Ich muss zugeben, das finde ich sehr schwach. Oder gibt es irgend einen Lösungsansatz, den ich komplett übersehen habe? Link to comment Share on other sites More sharing options...
Bülent Erbas Posted October 10, 2023 Share Posted October 10, 2023 Hallo @Dominik Scharrer das Datum-Thema wurde in der Community schon mehrfach angesprochen und auch intensiv diskutiert. Der Wunsch nach TODAY() oder NOW() ist sehr groß und ich bin mir sicher, das die smappies bestimmt auch dazu eine gute Lösung anbieten werden. Auch wenn es nicht immer super elegant aussieht, man kommt trotzdem zu einem Ergebnis. Für deinen Fall hätte ich folgenden Ansatz. Schau mal ob du was damit anfangen kannst. So sieht der Part für die Validierung aus: Die "Differenz" subtrahiert einfach die beiden Datumsangaben: Im Baustein "Tage" wird durch TOTALDAYS() als Zahlenwert ausgegeben: In der "Zusammenfassung" erfolgt dann die Validierung ob über oder unter 18 Jahre. Man kann die Ausgabe auch schöner mit Symbolen oder Grafiken anzeigen lassen. Die Bausteine "Differenz" und "Tage" werden als Zwischenergebnisse genutzt und werden im smap nicht angezeigt. Das heißt, die Infos "stören" nicht. Mit dem Ergebnis aus der Zusammenfassung kannst du nun deine weitere Vorgehensweise festlegen. 2 Link to comment Share on other sites More sharing options...
Annemarie Posted October 13, 2023 Share Posted October 13, 2023 @Dominik Scharrer Altersprüfung, oh ja, ein Anwendungsfall, mit dem du nicht alleine dastehst. Um dafür zu sorgen, dass es nur mit Datumseingaben weitergehen soll, die in einer Mindestentfernung vom aktuellen Datum liegen, wäre eigentlich eine Möglichkeit wünschenswert, Validierungsregeln für diesen Baustein zu hinterlegen. So wie es bei Text- und Zahleneingabefeldern ja auch möglich ist. Oder alternativ, wenn man es über Formeln lösen und beispielsweise wie in @Bülent Erbass Vorschlag zumindest das resultierende Alter und Hinweise dazu ausgeben möchte, hätte man gern das aktuelle Datum verfügbar in Formeln. Das Nutzer das dann erst angeben müssen, funktioniert zwar mit dem Timestamp Brick ganz vernünftig, ist wirklich eher ein Workaround. Im Grunde erscheint mir aber nur die erste Variante mit der Validierungsregel eine vollständige Lösung für das Problem zu sein, weil Validierung ja genau dafür gemacht ist, bei ungültigen Werten eine Fehlermeldung anzuzeigen und das Absenden mit unerlaubten Werten zu verhindern. Die Funktion könnte zum Beispiel so aussehen, dass man als Creator am Datumsauswahlbaustein einen erlaubten Datumsbereich konfigurieren, und dafür auch das jeweils aktuelle Datum als Grenzwert einsetzen kann. Was denkt ihr dazu? 1 Link to comment Share on other sites More sharing options...
Bülent Erbas Posted October 13, 2023 Share Posted October 13, 2023 Das ist meiner Meinung nach auch der richtige Ansatz und auch konsequent @Annemarie Das würde auch das Problem von @Jeanne Merswolken lösen, keine Daten in der Vergangenheit auswählbar zu machen. 1 Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now