0

Formeln erstellen

Wie kann ich denn die im sreenshot abgebildete Funktion "sum()" verwenden. Sie wird mir unter dem Reiter "Rechnen" nicht angezeigt (auch nicht unter dem link "Referenz der mathematischen Funktionen" auf dieser Seite).

Gruß
Hartmut

142 Antworten

null
            • Alexander_Koenig
            • vor 7 JahrenSat, December 2, 2017 at 11:13 AM UTC
            • Gemeldet - anzeigen
            Hallo Matthias,
            sieht alles soweit richtig aus.
            Hast Du schon die neueste Ninox Version?
            Du kannst die DB auch an support@ninoxdb.de schicken. Wir geben dann Feedback.
            VG, Alex
            • blue_bee
            • vor 7 JahrenMon, December 4, 2017 at 7:47 AM UTC
            • Gemeldet - anzeigen
            Hallo, danke für die Hilfe, leider bekomme ich den Fehler ID erwartet nach select. Was muss ich tun?
            • blue_bee
            • vor 7 JahrenMon, December 4, 2017 at 7:57 AM UTC
            • Gemeldet - anzeigen
            liegt es vielleicht daran, dass die Tabelle eine Untertabelle ist?
            • Birger_H
            • vor 7 JahrenTue, December 5, 2017 at 12:19 PM UTC
            • Gemeldet - anzeigen
            In diesem Fall sollte es heißen:
            –––
            sum ('Die Tabelle' [Montagearbeiten = true].Kosten)
            –––


            Birger - Ninox Support
            • blue_bee
            • vor 7 JahrenWed, December 20, 2017 at 11:34 AM UTC
            • Gemeldet - anzeigen
            Hallo, kann ich über eine Befehlsschaltfläche einen Link öffnen?
            • Birger_H
            • vor 7 JahrenWed, December 20, 2017 at 1:17 PM UTC
            • Gemeldet - anzeigen
            Dies ist leider derzeit noch nicht möglich.

            Birger - Ninox Support
            • BOM
            • vor 7 JahrenWed, January 3, 2018 at 6:22 PM UTC
            • Gemeldet - anzeigen
            Hallo,

            ich bin Ninox-Neuling und scheitere gerade an einer vermutlich einfachen Aufgabe.

            Ich habe in einem Datensatz das Feld „Einsätze“. In einer Untertabelle habe ich Felder „Datum 1“ bis „Datum 20“.

            Mein Plan: im Feld „Einsätze“ soll die Anzahl nur der mit einem Datum ausgefüllten Untertabellen-Felder „Datum 1“ bis „Datum 20“ angezeigt werden.

            Wie löse ich das am besten ?
            • Leonid_Semik
            • vor 7 JahrenWed, January 3, 2018 at 7:23 PM UTC
            • Gemeldet - anzeigen
            Hallo BOM,
            Es ist nicht so gute Idee, 20 Datumsfelder in einem Datensatz zu haben. Das bedeutet, dass viel Felder für immer leer bleiben. Und was machst du, wenn du einmal 22 Einsätze brauchst? Ich würde lieber eine extra Tabelle "Einsätze" mit einem Datumsfeld erstellen und diese Tabelle mit deine Haupttabelle verknüpfen. So kannst du eine beliebige Anzahl an Einsätzen hinzufügen. Hier ein Beispiel:

            https://www.dropbox.com/s/tch6ygseq5anot4/Einsatz.ninox?dl=0

            Wenn du bei deinem Model bleiben möchtest, dann würde ich bei dem Berechnungsfeld "Einsätze" folgende Formel schreiben:
            ---
            let D1:=if Untertabelle.Datum1=null then 0 else 1;
            let D2:=if Untertabelle.Datum2=nul then 0 else 1;
            .
            .
            .
            let D20:=if Untertabelle.Datum20:=null then 0 else 1;
            D1+D2+......+D20
            ---
            Grüße
            Leo
            • Dominik_Eng
            • vor 7 JahrenThu, January 4, 2018 at 5:26 AM UTC
            • Gemeldet - anzeigen
            Ja sicher mit dem Befehl openURL("Link")
            • Dominik_Eng
            • vor 7 JahrenThu, January 4, 2018 at 5:31 AM UTC
            • Gemeldet - anzeigen
            Über das Feld „Internet-Adresse“ kann man auch einen Link öffnen z.B. rdocs:///Verzeichnis/Datei.pdf

            wenn es diese Art von Link ist.
            • BOM
            • vor 7 JahrenThu, January 4, 2018 at 6:27 PM UTC
            • Gemeldet - anzeigen
            Hallo Leo,

            herzlichen Dank für Deine Hilfe und den guten Einwand und die Tipps !
            Ich werde es am Wochenende mal in Ruhe so probieren, wie Du mir es vorgeschlagen hast.

            Beste Grüße,
            BOM
            • cmartinde
            • vor 7 JahrenSat, January 13, 2018 at 5:03 PM UTC
            • Gemeldet - anzeigen
            Hallo,

            ich bin Neuling und versuche gerade mit Ninox eine Art Kosten- und Zeiterfassung umzusetzen. Ich bin schwer begeistert von der Plattform/App, aber nun kommen die Detailfragen.

            Ich habe eine Tabelle "Arbeitszeiten". Und eine berechnete Spalte "Arbeitszeit". Dazu berechne ich für jeden Datensatz mit der Funktion "month" den Monat in der Spalte "Monat berechnet".
            Dann habe ich eine Tabelle "Soll-Ist". Dort habe ich für jeden Monat einen Datensatz. Ich berechne Monat und Jahr mittels Year und Month in je einer Spalte "Monat berechnet" und habe eine berechnete Spalte "Stunden Ist". Für diese Spalte ("Stunden Ist") benötige ich nun die Summe der Stunden aus der Tabelle "Arbeitszeiten", gefiltert auf "Monat berechnet".
            Es will leider nicht klappen. Die Fehler sind unterschiedlich, je nachdem, ob ich die Spaltennamen via Editor reinklicke, oder von Hand schreibe. Mal erkennt er die Spalte "Monat" in der Tabelle "Soll-Ist" nicht (wenn ich es von Hand schreibe), oder er hat mir der Formel kein Problem, kommt aber nach der Bestätigung mit "ERR("Symbol erwartet: ,") (wenn man die Spalten klickt).

            Über Anregungen würde ich mich sehr freuen, da dies derzeit mein Hauptproblem in der Anwendung ist. Vielen Dank!
            • cmartinde
            • vor 7 JahrenSat, January 13, 2018 at 5:04 PM UTC
            • Gemeldet - anzeigen
            Sorry, vergessen:

            sum(select ('Arbeitszeiten' where 'Arbeitszeiten‘.Monat berechnet=Monat).’Arbeitszeit')
            • Leonid_Semik
            • vor 7 JahrenSat, January 13, 2018 at 7:38 PM UTC
            • Gemeldet - anzeigen
            Hallo Aviator,
            Wenn du Monat und Jahr separat rechnest (ich persönlich würde lieber mit der Funktion yearmonth(Datum) Jahr und Monat in einer Spalte berechnen) sollte die Formel etwa so aussehen:
            ---
            let MM:=Monat;
            let JJ:=Jahr;
            sum (select Arbeitszeiten [Monat=MM and Jahr=JJ].Arbeitszeit])
            ---
            die Eckklammer ersetzen hier "where"-Funktion.

            Grüße
            Leo
            • cmartinde
            • vor 7 JahrenSun, January 14, 2018 at 1:19 PM UTC
            • Gemeldet - anzeigen
            Hallo,

            vielen Dank! Irgendwie klappt es aber immer noch nicht.

            let MM:='Monat berechnet';
            sum (select 'Arbeitszeiten Schulung' [Monat berechnet=MM]).Duty-Time])

            Da meckert er immer "Symbol erwartet: ] in Zeile 2 Spalte 53"

            Die Tabellen- und Feldernamen haben sich ein wenig geändert und ich teste es erstmal nur auf Monatsebene.

            Viele Grüße,

            Christian
            • cmartinde
            • vor 7 JahrenSun, January 14, 2018 at 3:56 PM UTC
            • Gemeldet - anzeigen
            OK, hab es hinbekommen. RTFM. :)

            let mm := 'Monat berechnet';
            let yy := Jahr;
            sum((select 'Arbeitszeiten Schulung')[Monat = mm and Jahr = yy].'Duty-Time')

            Cool. Neues Problem nun Umrechnung und Formatierung von Zeiten. Aber das kriegen wir schon noch hin...
            • Burki
            • vor 7 JahrenSat, February 3, 2018 at 4:26 PM UTC
            • Gemeldet - anzeigen
            Ich habe vor kurzem begonnen mit Ninoxdb zu arbeiten und brauche eine Starthilfe zu der Formelerstellung. Tabelle: Fahrzeug mit Untertabelle: Wartung. In der Untertabelle sind alle Wartungskosten aufgelistet. Nun möchte ich dort auch die Gesamtkosten aller Wartungen zu dem Fahrzeug in einem Feld anzeigen. Wie gehe ich vor?
            • Burki
            • vor 7 JahrenSat, February 3, 2018 at 5:21 PM UTC
            • Gemeldet - anzeigen
            Habe es gerade selbst hinbekommen ... so einfach :-)
            • Verleger
            • OLIVER
            • vor 7 JahrenSun, February 4, 2018 at 8:19 AM UTC
            • Gemeldet - anzeigen
            Hallo,

            ich muss eine relativ komplexe Zinsrechnung erstellen, die mit einem normalen Zinseszinsrechner nicht hinzukriegen ist. Die Besonderheit ist, dass für ein Darlehen halbjährlich ein wechselnder Zinssatz gilt (gekoppelt an den Basiszinssatz ) und das Darlehen in einer Summe endfällig ist, ohne vorangehende Tilgungen.

            Zu ermitteln ist also Zins und Zinseszins, bezogen auf die jeweiligen Zinstage und am Schluss als Summe. Gibt es eventuell hier jemanden, der ein ähnliches Problem schon einmal hatte und mit dem ich mich dazu austauschen könnte?

            Viele Grüße
            Oliver
            • blue_bee
            • vor 7 JahrenWed, February 14, 2018 at 1:17 PM UTC
            • Gemeldet - anzeigen
            Kann ich dann auch auf einen Ordner im Finder verweisen?
            • telakis
            • vor 7 JahrenSat, February 17, 2018 at 9:37 AM UTC
            • Gemeldet - anzeigen
            Hallo zusammen,
            durch meine Frage werdet ihr merken dass ich ein blutiger Anfänger bin:

            Wie kann man beim Klicken auf eine Schaltfläche
            in einem Berechnungsfeld den Wert Datum = Heute in der Form TT.MM.JJ und
            in einem weiteren Berechnungsfeld den Wert Zeit = Jetzt in der Form hh:mm
            eintragen lassen?
            Mfg
            Georg_0815

            PS: Vielen Dank, auch für den bisherigen Support
            • Leonid_Semik
            • vor 7 JahrenSat, February 17, 2018 at 10:48 AM UTC
            • Gemeldet - anzeigen
            Hallo Georg_0815,

            Die Berechnungsfelder lassen sich durch Befehlsschaltflächen nicht beeinflussen. Sie haben eigene Berechnungsformel (heißen deswegen auch Berechnungsfelder).
            Die Formel für Berechnungsfelder wären entsprechend:
            ---
            format(now(),"hh:mm")
            und
            format(now(),"DD.MM.YY")
            ---
            Problem dabei ist, dass die werte sich ständig verändern werden.

            Wenn du momentane Datum und Uhrzeit festlegen möchtest (timestamp), dann würde ich dafür ein Datumsfeld und ein Zeitfeld anlegen und dann die Formel für die Befehlsschaltfläche schreiben:
            ---
            Datumsfeld := date(now());
            Uhrzeitfeld := time(now())

            ---

            Grüße
            Leo
            • telakis
            • vor 7 JahrenSat, February 17, 2018 at 11:15 AM UTC
            • Gemeldet - anzeigen
            Danke Leo,
            kaum wollte ich ergänzen, dass ich bei einem Lösungsversuch
            wie "Variante1" in Deiner Antwort, auf das Problem gestoßen bin,
            dass die Felder sich verändern, komme hier zurück
            und finde die Antwort auf meine noch nicht gestellte Frage!
            Toll, Danke. Werde versuchen es umzusetzen
            Gruß Georg_0815
            • telakis
            • vor 7 JahrenSat, February 17, 2018 at 12:30 PM UTC
            • Gemeldet - anzeigen
            Hallo Leo, ich habe

            eine Befehlsschaltfläche Start mit der Funktion
            UhrzeitS := time(now()) + ('Zeit eingetragen' := true) und
            Feld nur anzeigen, wenn: 'Zeit eingetragen' = false and UhrzeitS != ""

            ein Ja/Nein-Feld 'Zeit eingetragen' (mit Standartwert Nein)

            ein Uhrzeitfeld UhrzeitS (Uhrzeitformat 9:42 AM)

            ein Berechnungsfeld Zeit mit Funktion format(UhrzeitS, "HH:mm").

            Letztendlich ist es gewollt, dass nachdem man die Schaltfläche geklickt worde die Schaltfläche unsichtbar wird und der Zeitstempel im Feld Zeit nicht mehr verändert wird.

            Die Schaltfläche funktioniert soweit nur mit dem kleinen Problem, dass der berechnete Wert im Feld Zeit um eine Stunde höher ist als der Wert im Feld UhrzeitS. Ich verstehe die Differenz nicht. Ich arbeite zur Zeit in einem Test auf der Ninox-Cloud, und ändere für Testzwecke das Systemdatum und Systemuhrzeit meines PCs. Beim Ändern des Systemdatum gibt es keine Probleme.

            Gruss Georg_0815 (und Danke vorab)
            • telakis
            • vor 7 JahrenSat, February 17, 2018 at 12:31 PM UTC
            • Gemeldet - anzeigen
            Hallo Leo, ich habe

            eine Befehlsschaltfläche Start mit der Funktion
            UhrzeitS := time(now()) + (‘Zeit eingetragen’ := true) und
            Feld nur anzeigen, wenn: ‘Zeit eingetragen’ = false and UhrzeitS != “”

            ein Ja/Nein-Feld ‘Zeit eingetragen’ (mit Standartwert Nein)

            ein Uhrzeitfeld UhrzeitS (Uhrzeitformat 9:42 AM)

            ein Berechnungsfeld Zeit mit Funktion format(UhrzeitS, “HH:mm”).

            Letztendlich ist es gewollt, dass nachdem man die Schaltfläche geklickt worde die Schaltfläche unsichtbar wird und der Zeitstempel im Feld Zeit nicht mehr verändert wird.

            Die Schaltfläche funktioniert soweit nur mit dem kleinen Problem, dass der berechnete Wert im Feld Zeit um eine Stunde höher ist als der Wert im Feld UhrzeitS. Ich verstehe die Differenz nicht. Ich arbeite zur Zeit in einem Test auf der Ninox-Cloud, und ändere für Testzwecke das Systemdatum und Systemuhrzeit meines PCs. Beim Ändern des Systemdatum gibt es keine Probleme.

            Gruss Georg_0815 (und Danke vorab)