Blog > Webinar 37/2018

Webinar 37/2018

By Daniel Ratmiroff

On 14 September 2018

Ninox Blog Post

Teilnehmer:

Birger Hansen von Ninox sowie zahlreiche Ninox-Nutzer an den heimischen Bildschirmen.

 

Ja, Sie haben richtig gesehen. Ausnahmsweise bestreitet Birger das Webinar heute als One-Man-Show. Er begrüßt die Teilnehmer mit einem “Hallo aus dem sonnigen Berlin”, erklärt kurz, dass Alex gerade in anderen wichtigen Ninox-Angelegenheiten unterwegs sei, und kommt dann gleich zur Sache …

 

TIPPS & TRICKS

Kalendereinträge automatisch ein- oder ausblenden

Zum Einstieg demonstriert Birger, wie sich Termine in Abhängigkeit anderer Datenfelder im Kalender anzeigen oder ausblenden lassen. Grundsätzlich ist es ja so, dass man für jedes Datums- und Terminfeld in dessen Optionen festlegen kann, ob es im Kalender angezeigt werden soll oder nicht. Diese Einstellung gilt dann generell, das heißt, der betreffende Termin wird entweder immer angezeigt oder nie. In den meisten Fällen genügt das ja auch.

 

Was aber, wenn die Anzeige bzw. Nicht-Anzeige von dem aktuellen Wert eines anderen Datenfeldes abhängig sein soll? Dazu bedient sich Birger eines kleinen Tricks. Vorhanden sind bereits die Felder ‘Termin’ und ‘Text’, wobei letzteres lediglich der Beschreibung des Kalendereintrags dient, also bspw. “Mitarbeiter-Besprechung”, “Kundenschulung” oder ähnliches. Für den Bezugswert erstellt Birger nun zusätzlich ein einfaches Ja-/Nein-Feld mit dem Namen “Anzeigen im Kalender” sowie ein zweites Termin-Feld, das er naheliegenderweise ‘Termin2’ nennt. Dieses zweite Termin-Feld wird nur intern benötigt und kann später mit dem Eintrag “false” in “Nur anzeigen, wenn” im Formular unsichtbar gemacht werden.

 

In den Optionen für “Anzeigen im Kalender” legt Birger beim Feld ‘Termin’ “Nein” fest, im Feld ‘Termin2’ “Ja”. Ersteres soll also nie angezeigt werden, letzteres immer - sofern es denn einen Termin enthält. Im Ja-/Nein-Feld ‘Anzeigen im Kalender’ hinterlegt er bei der Option “Nach Änderungen folgendes Script ausführen” folgenden simplen Code:

 

if 'Anzeigen im Kalender' = true then
'Termin 2' := Termin
else
'Termin 2' := null
end

 

Effekt: Je nachdem, ob der Benutzer das Feld ‘Anzeigen im Kalender’ auf “Ja” (true) oder “Nein” (false) setzt, bekommt das Feld ‘Termin2’ den Wert des Feldes ‘Termin’ zugewiesen oder es wird auf Null gesetzt, also quasi geleert (null). Entsprechend wird der Termin nun also im Kalender angezeigt oder, wenn er keinen Wert enthält, eben nicht.

 

Statt des beispielhaften Ja-/Nein-Feldes lassen sich natürlich auch andere relevante Werte als Kriterium für das Anzeigen oder Nicht-Anzeigen eines Termins heranziehen. Zum Beispiel eine Kategorie, eine Dringlichkeitsstufe oder was auch immer.

 

Wer sich das Beispiel anschauen will: Die Datenbank befindet sich im Webinar-Team und hat die Bezeichnung ‘Kalender_von_Fall_zu_Fall’

 

Webinar_2018-37_Kalender1

 

LIVE-CONSULTING

Karteireiter, Kilometer- und Strecken-Berechnung

Der erste Teilnehmer am Live-Consulting ist Chris. Er betreibt diverse geschäftliche Aktivitäten, die er mit verschiedenen Ninox-Datenbanken verwaltet. Im letzten Webinar hatte er eine Frage zu seinem eBay-Shop gestellt, dieses Mal geht es um seine Wochenend-Tätigkeit als DJ bei Hochzeiten und anderen Veranstaltungen. Anfahrten bis zu 20 km sind dabei kostenlos, jeder darüber hinausgehende Kilometer wird mit einem festen Satz berechnet. Chris trägt dazu die Tachostände des Fahrzeugs vor der Abfahrt und nach der Rückkehr ein. Was ihm noch fehlt, ist die automatische Berechnung eventueller Mehrkilometer. Für Birger eine leichte Übung: Berechnen der gefahrenen Kilometer und Abfrage, ob die Zahl größer 20 ist. Wenn ja, Multiplizieren der über 20 liegenden Kilometer mit dem entsprechenden Satz. Das war’s.

 

Ergänzend fragt Chris, ob sich die Strecke anhand der Start- und Ziel-Adresse automatisch über Google Maps anzeigen und berechnen ließe. Auch das geht. Birger verweist auf die Webinar-Datenbank ‘081_google_maps_entfernung’, in der genau das beispielhaft realisiert ist. Aus dem Chat kommen noch Hinweise, dass dazu ein API-Key von Google erforderlich sei, der aber recht einfach erhältlich wäre. Das hört sich gut an.

 

Zuletzt möchte Chris noch wissen, ob man in den Formularen ganze Karteireiter mitsamt der darin befindlichen Datenfelder ausblenden kann. Kann man. Birger zeigt, dass Karteireiter als Gestaltungs- bzw. Strukturierungs-Element auch in der Liste der Datenfelder geführt werden und ebenfalls die Option “Nur anzeigen, wenn” bieten. Dort als einfachste Möglichkeit ein “false” eingetragen - und schon ist der Karteireiter im Formular nicht mehr zu sehen. Statt des pauschalen “false” kann natürlich eine andere Bedingungen angegeben werden, z. B. ein Ja-/Nein-Feld.

 

Automatisches Eintragen von Arbeits- und Urlaubstagen

Wilhelm hat eine recht ausgeklügelte Ninox-Anwendung zur detaillierten Erfassung, Verwaltung und Planung von Arbeitszeiten unter Berücksichtigung diverser Faktoren wie Feier- und Sondertage. Was ihm noch fehlt, ist das automatische Eintragen von Urlaubszeiten in eine bereits vorhandene Jahresübersicht. Das ist auch für Birger so ad hoc eine Herausforderung, aber schnell ist klar: Es müssen zwei Schleifen durchlaufen und die betreffenden Tage in einem Array gespeichert werden. Nach einigen Versuchen und mit etwas Unterstützung aus der Community funktioniert es wie gewünscht. Wieder ein Problem gemeinsam gelöst.

 

Webinar_2018-37_Urlaubstage1

 

Hierarchische Datenstrukturen

Stefan ist Inhaber eines Unternehmens für IT-Services. Er möchte seine zahlreichen Kontakte hierarchisch strukturieren, also unter Berücksichtigung der jeweils über- oder untergeordneten Stelle. Dazu hat er verschiedene Tabellen, die teilweise auf sich selbst Bezug nehmen. Im Prinzip klappt das auch schon ganz gut, ist in der Darstellung im Formular aber recht unübersichtlich. Stefan hätte lieber alle Kontakte mit ihren Beziehungen in einer einzigen eingebetteten Tabelle. Auch hier wird gemeinsam nach einer Lösung gesucht, den entscheidenden Hinweis gibt wieder einmal Ninox-Koryphäe Leo: Er schlägt statt weiterer Verknüpfungen oder komplizierter Code-Lösungen die Nutzung der integrierten Ansichten mit entsprechenden Filtern vor. Eine gute Idee, findet Birger, und setzt sie auch gleich um. Das Ergebnis kommt Stefans Vorstellungen schon sehr nahe, die Feinarbeit wird er selbst übernehmen.

 

Webinar_2018-37_HierarchischeKontakte1

 

Zentrale Steuerung von Daten in verschiedenen Tabellen

Der nächste im Panel ist Thomas. Auch ihn kennen wir schon vom letzten Webinar. Da ging es um die Zuordnung von Kosten zu einzelnen Abteilungen des Sportvereins, den er mit Ninox verwaltet. Nun will Thomas den nächsten Schritt machen und Buchungen anhand eines vorgegebenen Zeitraums für Hauptkonten, Abteilungen und Verwendungszwecke berechnen. Dazu hat er sich eine Art Übersichtsseite geschaffen, in die er einen beliebigen Zeitraum mit Start- und Enddatum eingibt. Dieser Zeitraum soll per Schaltfläche in die betreffenden Tabellen übernommen und deren Datensätze entsprechend gefiltert werden. Kein Problem für Birger. Er legt die Schaltfläche an hinterlegt dort ein kurzes Script, mit dem die Datumsfelder immer automatisch in die der betreffenden Tabellen geschrieben und die Buchungen dort entsprechend gefiltert werden. Damit kann Thomas nun den Vorstandskollegen seines Vereins jederzeit detaillierte Berichte der Einnahmen und Ausgaben für jeden beliebigen Zeitraum präsentieren, auf Vereins- und Abteilungsebene oder auch nach Art der Verwendung.

 

Verknüpfungsfelder dynamisch ein- und ausblenden

Auch der letzte Fragesteller am heutigen Tage heißt Thomas. Er verwaltet mit Ninox die Mitglieder einer Energiegenossenschaft. Seine erste Frage, wie man eine Verknüpfung als Untertabelle wieder löst, ist schnell beantwortet: In den Optionen der betreffenden Tabelle nur das “Ja” bei ‘Komposition’ entfernen. So einfach? Ja, so einfach.

 

Thomas hat aber noch ein anderes interessantes Anliegen: Er würde gerne über eine zentrale Startseite bestimmte Verknüpfungsfelder in Datentabellen ein- und ausblenden können. Zu Beispiel für den Fall, dass er noch an einem solchen Modul, wie er es nennt, arbeitet, aber nicht die ganze Tabelle deaktivieren will. Nach Fertigstellung soll es dann quasi freigeschaltet werden. Auf der zentralen Startseite wird für jedes betreffende Modul ein Ja-/Nein-Feld angelegt. Nun gilt es, den Feldern der jeweiligen Tabellen mitzuteilen, unter welcher Bedingung sie angezeigt werden sollen. Dies geschieht mit der Option “Nur anzeigen, wenn”. Dort wird jetzt auf das betreffende Ja-Nein-Feld der zentralen Starttabelle zugegriffen, der Wert ausgelesen und das “Ja” zur Bedingung für das Anzeigen gemacht. Kurzer Funktionstest: Ja, es klappt. Je nach Einstellung wird die verknüpfte Tabelle im Formular angezeigt oder nicht.

 

Webinar_2018-37_Module1

 

Birger hat auch dieses Problem gelöst. Und da es schon wieder einige Minuten nach Sechs ist, bedankt er sich bei den Webinar-Teilnehmern und verabschiedet sich in den verdienten Feierabend. Bis zum nächsten Mal.


Und was beim nächsten Mal passiert, darüber können auch Sie als Teilnehmer entscheiden. Themenvorschläge werden unter support@ninoxdb gerne entgegengenommen.

Want to know more about Ninox?