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 9 JahrenWed, December 9, 2015 at 12:15 PM UTC
      • Gemeldet - anzeigen
      Hallo,
      Ja/Nein und Auswahl Felder übergeben einen Zahlenwert, der bei 1 anfängt. D.h. "Ja" ist 1 und "Nein" eine 2.
      Die Zahlenwert können in Wenn/Dann Funktionen genutzt werden:
      if 'Yes / No' = 1 then
      Datum + 183
      else
      Datum
      • FlorianS
      • vor 9 JahrenSat, January 23, 2016 at 10:30 AM UTC
      • Gemeldet - anzeigen
      Hallo,

      Ich möchte bei einer Änderung das geänderte Feld in ein anderes Feld zur Protokollierung schreiben. Wie kann ich das aktuelle Feld ansprechen?
      Oder müsste es per wenn dann Bedingung für jedes Feld einzeln abgefragt werden?
      • Alexander_Koenig
      • vor 9 JahrenSun, January 24, 2016 at 11:18 AM UTC
      • Gemeldet - anzeigen
      Hallo Florian,
      wenden Sie einen Trigger auf dem Feld, das geändert wird, an.
      Protokoll := Protokoll+ Feld
      Jedes Mal wenn jetzt das Feld geändert wird, setzt sich das Protokoll aus sich und dem neuen Feldwert zusammen.
      VG, Alex
      • woyzeck
      • vor 9 JahrenSun, January 31, 2016 at 7:17 AM UTC
      • Gemeldet - anzeigen
      Bitte um Hilfe: ich möchte aus einer Tabelle "Veranstaltungen" die Summe der VeranstaltungsTAGE berechnen (alle einzelnen Veranstaltungen sind mit einem Datum hinterlegt) - allerdings finden an manchen Tagen auch mehrere Veranstaltungen pro Tag statt - wie könnte ich das realisieren? "cnt.Datum" liefert natürlich die Gesamtanzahl und unterscheidet nicht, ob ein Datum mehrmals vorkommt ...
      • Alexander_Koenig
      • vor 9 JahrenSun, January 31, 2016 at 8:45 AM UTC
      • Gemeldet - anzeigen
      Hallo,
      Um eine Spalte oder ein Feld einzublenden:
      cnt(unique(select Veranstaltungen.Datum))
      Mit "select" wird das Feld der Tabelle gewählt und die Funktion wird auf alle Dateneinträge angewendet. "unique" gibt jeden Wert der Liste nur einmal weiter.
      VG, Alex
      • woyzeck
      • vor 9 JahrenSun, January 31, 2016 at 1:56 PM UTC
      • Gemeldet - anzeigen
      hallo alex,
      danke für die schnelle antwort!
      ich habe gerade gemerkt, dass mein "Datum"-Feld ein "Datum+Uhrzeit"-Feld ist ... sollte das dann auf die gleiche Weise funktionieren?
      also wie würde der befehl lauten, die uhrzeit-werte zu ignorieren?
      vielen dank schon mal für die mühe!
      • Alexander_Koenig
      • vor 9 JahrenSun, January 31, 2016 at 2:35 PM UTC
      • Gemeldet - anzeigen
      Hallo, Daten können mit der Funktion format(Zahl,Format):
      format('datum+Uhrzeit', "DD.MM.YYYY")
      Viele Grüße
      • schocki
      • vor 9 JahrenFri, March 18, 2016 at 11:32 AM UTC
      • Gemeldet - anzeigen
      Gibt es eine Liste auf der alle Funktionen, Befehle, usw. also die Sprache von Ninox aufgelistet ist?
      • Alexander_Koenig
      • vor 9 JahrenFri, March 18, 2016 at 11:33 AM UTC
      • Gemeldet - anzeigen
      Hallo Schoki, die gibt es hier im Handbuch:
      http://manual.ninoxdb.de/de/funktion-und-sprache/
      VG, Alex
      • schocki
      • vor 9 JahrenFri, March 18, 2016 at 11:41 AM UTC
      • Gemeldet - anzeigen
      Das sind aber nicht Alle oder? Zum Bsp. fehlt replace(string, search, replace)
      • Alexander_Koenig
      • vor 9 JahrenFri, March 18, 2016 at 3:19 PM UTC
      • Gemeldet - anzeigen
      Nehmen wir auf. Danke für den Hinweis. Grüße
      • sitkialtuntop_gmailcom
      • vor 9 JahrenSun, June 12, 2016 at 6:48 AM UTC
      • Gemeldet - anzeigen
      Hallo NINOX-Team, gibt es oder hat schonmal jemand einen IBAN-Rechner generiert?
      • Frank_Bohmer
      • vor 9 JahrenSun, June 12, 2016 at 11:55 AM UTC
      • Gemeldet - anzeigen
      Hallo, eine IBAN-Prüfung könnte zB so realisiert werden:

      let cc1 := index("ABCDEFGHIJKLMNOPQRSTUVWXYZ", substr(IBAN, 0, 1)) + 10;
      let cc2 := index("ABCDEFGHIJKLMNOPQRSTUVWXYZ", substr(IBAN, 1, 1)) + 10;
      let check := substr(IBAN, 2, 2);
      let a := number(substr(IBAN, 4, 8));
      let b := number(substr(IBAN, 12, 8));
      let c := number(substr(IBAN, 20, 2) + cc1 + cc2 + check);
      1 = ((a * 62) % 97 + (b * 81) % 97 + c % 97) % 97

      Hinweise: % berechnet den Rest der ganzzahligen Division.
      Die Aufteilung in drei Zahlen a, b, c ist erforderlich, da Ninox intern mit 64bit Fließkommazahlen rechnet. Diese können eine gesamte IBAN nicht mehr exakt als Ganzzahl abbilden. a*62 entspricht der Verschiebung um 16 Stellen (mod 97), b*81 entspricht der Verschiebung um 8 Stellen (mod 97).
      Der Rest entspricht dem Algorithmus von Wikipedia: https://de.wikipedia.org/wiki/IBAN
      Viele Grüße, Frank
      • Leonid_Semik
      • vor 9 JahrenSun, June 19, 2016 at 7:38 AM UTC
      • Gemeldet - anzeigen
      Guten Morgen,
      Wenn ich eine Tabelle im Ninox öffne, gibt es links eine Aufzählungsspalte. Diese Spalte wollte ich auch in einer verknüpften Tabelle erstellen.
      Also Tabellen "Angebote" und "Positionen". In der Tabelle "Positionen" ein Berechnungsfeld "Nummer" mit Formel:

      let N := Angebot;
      let Z := number(Nr);
      cnt(select Positionen where Angebot = N and number(Nr) < Z) + 1

      Wenn ich mich im Formular für eine Position befinde, zeigt das Feld "Nummer" auch die richtige Werte. Im Angebotsformular sind aber in der Tabelle "Positionen" alle Werte in der Spalte "Nummer" gleich 1. Dieses Phänomen tritt nur bei der Server-Version. MAC-APP zeigt alles richtig an.

      Gibt es ein anderen Weg, die Aufzählungsspalte in verknüpften Tabelle darzustellen?

      Gruß Leo
      • Leonid_Semik
      • vor 9 JahrenTue, June 21, 2016 at 2:41 PM UTC
      • Gemeldet - anzeigen
      keine Ideen?
      • Frank_Bohmer
      • vor 9 JahrenWed, June 22, 2016 at 6:09 AM UTC
      • Gemeldet - anzeigen
      Hallo Leo,
      bei Verknüpfungen ist es ratsam, auf select zu verzichten, da Ninox den Sprung über die Verknüpfungsfelder erheblich performanter hinbekommt. Bitte versuche:

      let Z := number(Nr);
      cnt(Angebot.Positionen[number(Nr) < Z])+1

      Viele Grüße,
      Frank
      • Leonid_Semik
      • vor 9 JahrenWed, June 22, 2016 at 8:01 AM UTC
      • Gemeldet - anzeigen
      Hallo Frank,
      dankeschön - funktioniert wunderbar.

      Die Schleifen funktionieren aber nur mit "select"?

      Gruß
      Leo
      • Leonid_Semik
      • vor 9 JahrenWed, June 22, 2016 at 9:21 AM UTC
      • Gemeldet - anzeigen
      wenn aus der Tabelle "Angebote" in der verknüpften Tabelle "Positionen" Berechnungen mit Schleifenfunktion durchführen möchte
      "for P in Positionen
      P.Zahl1:=10" bis dahin akzeptiert Ninox alles, wenn ich aber weiter mit Semikolon schreibe
      "for
      P in Positionen
      P.Zahl1:=10;
      P.Zahl2:=20" - wird oben die Fehlermeldung angezeigt Error: eine Tabellenspalte wurde nicht gefunden "P". Wenn ich statt Semikolon ein Plus nehme, funktioniert das ganze.
      Mit select funktioniert alles mit Semikolon.
      Geprüft mit Mac und Server.

      Gruß Leo
      • Frank_Bohmer
      • vor 9 JahrenWed, June 22, 2016 at 11:02 AM UTC
      • Gemeldet - anzeigen
      Das muss eingeklammert werden, das ; beendet sonst das for.

      for P in Positionen (
      P.Zahl1:=10;
      P.Zahl2:=20
      )

      Gruß Frank
      • Leonid_Semik
      • vor 9 JahrenWed, June 22, 2016 at 11:40 AM UTC
      • Gemeldet - anzeigen
      Hallo Frank,
      Funktioniert leider nicht. Wenn Ich Klammer nach Positionen setze,
      kommt die Fehlermeldung sofort nach Eingeben von "P. ". Habe schon alle möglichen Kombinationen ausprobiert : ohne Klammer, mit Klammer, Klammer nur vorne, Klammer nur hinten.
      Es ist sogar so, dass wenn ich ohne Klammern

      for P in Positionen
      P.Zahl1:=10

      schreibe und schließe, macht Ninox eigene Umklammerung. Bei erneuertem Öffnen des Formeleditors und Klicken auf OK - bekomme ich wieder die Fehlermeldung.
      Hier ist die Datei, vielleicht übersehe ich etwas

      https://www.dropbox.com/s/hjd9f1rw9j0ilts/test%20%284%29.ninox?dl=0

      Gruß
      Leo
      • Frank_Bohmer
      • vor 9 JahrenFri, June 24, 2016 at 5:27 AM UTC
      • Gemeldet - anzeigen
      Hallo Leo,
      stimmt, das ist leider nicht optimal. Folgende Syntax funktioniert:

      for P in (Positionen) (
      P.Zahl1:=10;
      P.Zahl2:=20
      )
      • Leonid_Semik
      • vor 9 JahrenFri, June 24, 2016 at 12:02 PM UTC
      • Gemeldet - anzeigen
      Hallo Frank,
      Das funktioniert bei mir auch nicht. Ninox lässt zwar die Formel zu, sobald ich aber auf "OK" klicke, wird die Funktion rot angezeigt un die Formel lautet (for P in B(P.(B:=10);P.(C:=20)))).
      Die Fehlermeldung lautet:
      "Die Formel ist ungültig: Error: Eine Tabellenspalte wurde nicht gefunden: "P" in Zelle 1, Spalte 14.

      Auf Mac und Server.

      Gruß Leo
      • Frank_Bohmer
      • vor 9 JahrenSun, June 26, 2016 at 10:47 AM UTC
      • Gemeldet - anzeigen
      Wir werden das verbessern.
      Eine andere Möglichkeit wäre (ohne for ... in):

      Positionen.(Zahl1 := 10; Zahl2 := 20)

      Gruß, Frank
      • Leonid_Semik
      • vor 9 JahrenSun, June 26, 2016 at 4:39 PM UTC
      • Gemeldet - anzeigen
      Hallo Frank,
      Dankeschön-funktioniert sogar bei mehreren if then Kombinationen und mehr als 100 Berechnungszeilen.
      Und ist im Vergleich zu (for in select) doppelt zu schnell.

      Gruß Leo
      • sky99.1
      • vor 8 JahrenMon, August 29, 2016 at 12:23 PM UTC
      • Gemeldet - anzeigen
      Guten Tag,
      ich suche nach einer Formel mit der ich automatisch berechnen kann, an welchem Tag (Datum) eine Person 63 Jahre alt wird. Gibt es die Möglichkeit dies mit einer Formel automatisch ausrechnen zu lassen?

      Viele Grüße
      sky99

            Content aside

            • vor 7 JahrenTue, March 20, 2018 at 9:33 AM UTCZuletzt aktiv
            • 142Antworten
            • 45129Ansichten