Denkansatz: Querys, Formulare
Hey, irgendwie hab ich noch nicht ganz kapiert, wie man das genau in Ninox anpackt.
In meinem Kundenstamm habe ich ne Menge Datum-Felder angelegt, anhand derer ich diverse Abfragen laufen lasse: "zeige mir alle Kunden, mit denen ich seit mehr als hundert Tagen keinen Kontakt mehr hatte" oder "zeige mir alle Kunden, mit denen ich seit mehr als hundert Tagen keinen Kontakt mehr hatte und die Formular xy nicht zurückgesandt haben", etc.
In Access hatte ich dazu verschiedene Querys, die ich über einen Button in meinem Dashboard auslösen und in einem (Endlos-)formular anzeigen lassen konnte. So konnte ich letztendlich für diese Personen entweder Briefe oder mails mit vorgefertigtem Text erstellen und denen entsprechende Informationen zukommen lassen.
in Kurzform: Meine Kunden anhand der Datumfelder nach bestimmten Kriterien Filtern und dann die Möglichkeit haben, Berichte oder emails zu erstellen.
Löst man das in Ninox über extra Tabellen (also muss ich die Datum-Felder in ne Tabelle Termine oder so packen?) oder brauche ich dazu nur nen View? Sorry für die blöde Frage, aber da steh ich gerade total auf dem Schlauch.
5 Antworten
-
Hallo, mit Ninox würde ich sowas wahrscheinlich über das Gestaltungselement "Ansicht" realisieren. Man könnte dazu bspw. eine extra Tabelle mit einem Formular als Dashboard erstellen und darauf Eingabe- bzw. Auswahlfelder für die Filterkriterien sowie besagte Ansicht platzieren. In dieser Ansicht könnte man mit einem "select" auf die Kundentabelle zugreifen und diese nach den angegebenen Kriterien filtern. Das Ergebnis würde vermutlich in etwa dem "(Endlos-)formular" bei Access entsprechen.
So ein Filterfeld könnte bspw.(!) die Anzahl der Tage seit dem letzten Kontakt sein. Nennen wir es mal 'Tage seit letztem Kontakt' (numerisch). Da könnte man nun eine beliebige Zahl eingeben (z. B. 100). Der Code in der Ansicht zur Abfrage des Wertes sähe so aus:
if 'Tage seit letztem Kontakt' then
let myDatum := today() - 'Tage seit letztem Kontakt';
select KUNDEN where LASTCONTACT < myDatum
else
select KUNDEN
end
Sofern bei 'Tage seit letztem Kontakt' ein Wert eingegeben wurde, würden In der Ansicht nun alle Kunden aufgelistet, auf welche die Bedingung zutriftt. Ist das Feld 'Tage seit letztem Kontakt' leer, werden alle Kunden angezeigt. Überdies lassen sich natürlich auch mehrere Kriterien kombinieren, also bspw. auch das fehlende Dokument XY in den Filter einbeziehen.
Über Schaltflächen könnte man nun bestimmte Aktionen auslösen und dabei denselben Filter nutzen:
if 'Tage seit letztem Kontakt' then
let myDatum := today() - 'Tage seit letztem Kontakt';
for i in select KUNDEN where LASTCONTACT < myDatum do
... Meine Aktion ...
end;
end
Die Aktion würde halt für jeden Datensatz ausgeführt, auf den die Bedingung zutrifft. Für bestimmte Aktionen kann es eventuell auch sinnvoll sein, dass man die betreffenden Kunden in eine temporäre Tabelle schreibt. Aber das hängt natürlich von der Aktion selbst ab, klar.
Insofern ist das nur ein einfaches, schematisches Beispiel für eine mögliche Herangehensweise.
-
Hey Copytexter, hilft mir schon mal so viel weiter, damit ich damit rumspielen und testen kann.
Da ich in der Filteransicht ja z.B. auch die Ninox-ID des Kunden sehen könnte, könnte man in deiner Formel bei
for i in select KUNDEN where LASTCONTACT < myDatum do
... Meine Aktion ...evtl unterbringen, daß Ninox auch die ID des Kunden einbezieht (z.B. durch ein Textfeld) oder nach der ID fragt (in Access öffnet sich ein PopUp, in das ich die ID eingeben kann), so daß ich nur einen speziellen Kunden aus der gefilterten Tabelle eine mail schreibe oder nen Bericht dafür ausdrucke?
-
Hm. Klar könnte man auch die Datensatz-ID einbeziehen. Aber die kennt man ja normalerweise gar nicht. Und wenn man aus der gefilterten Liste nur einen bestimmten Datensatz auswählen will, muss man ihn in der Ansicht ja nur anklicken, um ihn zu öffnen und irgendeine Aktion dafür auszulösen. Oder man filtert direkt nach einem eindeutigen Kriterium wie Name plus PLZ o. ä., so dass nur dieser eine, gesuchte Datensatz angezeigt wird ...
Aber ich nehme an, wir reden jetzt aneinander vorbei.
-
Nein reden wir nicht. Ich war nur wieder so dumm und habe nicht daran gedacht, daß ich in Ninox durch Klick auf den Kunden ja wieder in die Kundenmaske komme (hatte das in Access anders gelöst).
Vielen lieben Dank, alles super.
-
Content aside
- vor 4 JahrenZuletzt aktiv
- 5Antworten
- 1436Ansichten