0

Text- und Datumsfunktionen

Hallo,
ich habe lange gesucht um eine einfach zu konfigurierende Datenbank zu finden. Super Arbeit.
Ich bräuchte jedoch noch eine Wochenauswertung (Gruppierung) Jahr/Woche(Datum) wäre das möglich noch zu ergänzen?
Besten Dank
MfG
Jens

254 Antworten

null
                      • Andre_Koppen
                      • vor 7 JahrenThu, February 15, 2018 at 10:07 AM UTC
                      • Gemeldet - anzeigen
                      Hallo Zusammen,

                      ich bräuchte Hilfe bei einer Formel.

                      Ich möchte mit einer Formel "wenn/dann/sonst" die Ausgabe grün bzw. rot erhalten.

                      Geprüft werden soll, ob die Zeit zwischen dem aktuellem Datum und dem hinterlegtem Ablauftermin - kleiner als 140 Tage - Ergebnis rot bzw. größer als 140 Tage - Ergebnis grün

                      Meine Formel funktioniert leider nicht.

                      if (number(now()) - number(Ablauf)) / (24 * 60 * 60 * 1000) > 140 then
                      color("red")
                      else
                      color("green")
                      end

                      Besten Dank André
                      • Leonid_Semik
                      • vor 7 JahrenThu, February 15, 2018 at 11:03 AM UTC
                      • Gemeldet - anzeigen
                      Hallo Andre,

                      als Formel in einem BERECHNUNGSFELD
                      ---
                      styled(text(days(Ablauf, today())) + " Tage", if days(Ablauf, today()) < 140 then "red" else "green" end, "", "")
                      ---
                      Grüße
                      Leo
                      • Leonid_Semik
                      • vor 7 JahrenThu, February 15, 2018 at 11:20 AM UTC
                      • Gemeldet - anzeigen
                      Hallo Birger,
                      was für Tags muss ich hier in Forum benutzen um den Code fehlerfrei (wie in deinem Beispiel) darzustellen

                      Grüße
                      Leo
                      • Alexander_Koenig
                      • vor 7 JahrenThu, February 15, 2018 at 1:18 PM UTC
                      • Gemeldet - anzeigen
                      < code > < / code >
                      • Andre_Koppen
                      • vor 7 JahrenThu, February 15, 2018 at 5:15 PM UTC
                      • Gemeldet - anzeigen
                      Hallo Leo,

                      Danke für deine Unterstützung.

                      Leider funktioniert die Formel nicht.

                      Beste Grüße
                      André
                      • Leonid_Semik
                      • vor 7 JahrenThu, February 15, 2018 at 6:45 PM UTC
                      • Gemeldet - anzeigen
                      Hallo Andre,
                      hier ist die Datenbank:

                      https://www.dropbox.com/s/lua1ed9tcqky7th/Andre.ninox?dl=0

                      grüße
                      Leo
                      • Andre_Koppen
                      • vor 7 JahrenThu, February 15, 2018 at 7:41 PM UTC
                      • Gemeldet - anzeigen
                      Hallo Leo,

                      Danke für deine Unterstützung.

                      Ich habe es so umgesetzt:

                      let DUR := days(today(), Ablauf);
                      styled(text(DUR) + " Tage", if DUR > 160 then
                      color("green")
                      else
                      if DUR < 135 then color("red") else color("yellow") end
                      end)

                      Beste Grüße
                      André
                      • Leonid_Semik
                      • vor 7 JahrenSat, February 17, 2018 at 6:04 AM UTC
                      • Gemeldet - anzeigen
                      Dankeschön!
                      • Alexander_Hanisch
                      • vor 7 JahrenSat, February 24, 2018 at 1:53 PM UTC
                      • Gemeldet - anzeigen
                      Hallo Leute,

                      ich bräuchte für diverse Anwendungen in der Ninox DB eine Möglichkeit, innerhalb eines Textstrings für die Ausgabe in den Druckdokumenten und im eMail Body von Ninox einen Zeilenumbruch (CR) zu erzwingen.

                      Hat da jemand von euch einen Lösungsvorschlag?

                      Danke schon mal vorweg!
                      • Holzi
                      • vor 7 JahrenSat, February 24, 2018 at 2:42 PM UTC
                      • Gemeldet - anzeigen
                      Wenn das hilft:
                      Bei der Texteingabe an der Stelle des Zeilenumbruchs zwei "" und zwischen den ""
                      "Return" drücken. An dieser Stelle entsteht ein CR.
                      Also TextText"
                      "TextText
                      • Leonid_Semik
                      • vor 7 JahrenSat, February 24, 2018 at 2:42 PM UTC
                      • Gemeldet - anzeigen
                      Hallo Alex,

                      Einfach im Text auf ENTER Taste klicken

                      Grüße
                      Leo
                      • Frank_Dressler
                      • vor 7 JahrenWed, March 7, 2018 at 10:10 AM UTC
                      • Gemeldet - anzeigen
                      Ich habe ein Feld Typ "Datum + Uhrzeit" (Termin1) und möchte eine Formel die mir einen daraus berechneten Wert nach dem Schema Termin1+30 Minuten erzeugt und ausgibt.
                      Wie muss die Formel aussehen?
                      • AxelE
                      • vor 7 JahrenThu, March 8, 2018 at 8:07 AM UTC
                      • Gemeldet - anzeigen
                      Hallo, da die zu berechnende Dauer ja wahrscheinlich nicht immer und ewig 30 Minuten beträgt, wäre die einfachste Lösung wohl, ein zusätzliches Feld vom Typ Zeitdauer anzulegen (Zahlenformat 61:16) und evtl. als Standardwert 0:30 vorzugeben. Dann wäre die Formel ganz einfach (als Funktion im Berechnungsfeld "Terminende"):

                      Terminstart + Zeitdauer

                      Oder, wenn die Termine immer innerhalb eines Tages statfinden und für "Terminende" nur die Uhrzeit angezeigt werden soll:

                      time(Terminstart + Zeitdauer)

                      Wenn das Feld 'Zeitdauer' nicht angezeigt und nicht verändert werden soll, dann kann man es einfach ausblenden ("false" bei "Nur anzeigen, wenn:").
                      • Aurivox
                      • vor 7 JahrenThu, March 8, 2018 at 12:28 PM UTC
                      • Gemeldet - anzeigen
                      Hallo, ich möchte die Differenz des Todesjahres einer Person mit dem aktuellen Jahr bilden. Wenn die Differenz größer als 75 ist, soll ein "Ja" ausgegeben werden ansonsten ein "Nein". Mit dem nachstehenden Code wird nur "Ja" ausgegeben

                      if number(year(today() - year(Todestag))) > 75 then
                      "ja"
                      else
                      "nein"
                      end
                      • AxelE
                      • vor 7 JahrenThu, March 8, 2018 at 3:55 PM UTC
                      • Gemeldet - anzeigen
                      Da ist augenscheinlich nur die Klammer falsch gesetzt. Versuch's mal so:

                      if number(year(today()) - year(Geburtstag)) > 75 then "Ja" else "Nein" end
                      • Leonid_Semik
                      • vor 7 JahrenThu, March 8, 2018 at 6:10 PM UTC
                      • Gemeldet - anzeigen
                      Es gibt bei Ninox ein Befehl "age". Dann wäre deine Formel:

                      if age(Todestag) > 75 then "Ja" else "Nein" end


                      Grüße
                      Leo
                      • Geriatric
                      • vor 7 JahrenSun, March 18, 2018 at 7:21 AM UTC
                      • Gemeldet - anzeigen
                      Ich habe eine Frage... In meiner Datenbank habe ich eine Tabelle mit mit den Datenfeldern: 'Ankunftsdatum' und 'Abreisedatum'. Nach Eingabe des Abreisedatum möchte ich gern berechnen, wieviele Tage bis zu einem frei wählbaren Datum in der Zukunft übrig sind. Wie kann ich das umsetzen??
                      • Birger_H
                      • vor 7 JahrenMon, March 19, 2018 at 1:38 PM UTC
                      • Gemeldet - anzeigen
                      Die Formel lautet:
                      –––
                      'Abreisedatum' - 'Ankunftsdatum'
                      –––


                      Birger - Ninox Support
                      • Geriatric
                      • vor 7 JahrenMon, March 19, 2018 at 5:51 PM UTC
                      • Gemeldet - anzeigen
                      Hallo Birger! Danke für die Antwort. Ich habe mich leider falsch ausgedrückt.
                      Ich möchte gern mit mit dem Wert 'Abreisedatum' berechnen, wieviel Tage bis zum 31.12.2018 übrig sind.
                      • Birger_H
                      • vor 7 JahrenTue, March 20, 2018 at 7:05 AM UTC
                      • Gemeldet - anzeigen
                      –––
                      date(2018,12,31) - 'Ankunftsdatum'
                      –––


                      :-) Birger
                      • Geriatric
                      • vor 7 JahrenTue, March 20, 2018 at 7:11 AM UTC
                      • Gemeldet - anzeigen
                      Das sieht sooo einfach aus.. man muss nur draufkommen!!!! Danke
                      • manfredtheis
                      • vor 7 JahrenSun, April 8, 2018 at 7:29 PM UTC
                      • Gemeldet - anzeigen

                      Ich möchte den Inhalt eines Datumfeldes (Tag) bei Anlage eines neuen Records um 1 Tag erhöhen.

                      let A := max((select Logbuch).Tag);
                      let B := date(year(A), month(A), day(A) + 1);
                      Testfeld := format(B, "DD.MM.YYYY")

                      funktioniert prima mit einem beliebigen text-Feld (hier: Testfeld). Wenn ich allerdings das ursprüngliche Datumsfeld überschreiben will mit

                      let A := max((select Logbuch).Tag);
                      let B := date(year(A), month(A), day(A) + 1);
                      Tag := format(B, "DD.MM.YYYY")

                      ändert der Editor meinen Code ab zu

                      let A := max((select Logbuch).Tag);
                      let B := date(year(A), month(A), day(A) + 1);
                      A := format(B, "DD.MM.YYYY")

                      Man beachte das A in der 3. Zeile(!) und liefert die Fehlermeldung 

                      Die Ausdrücke für dann und sonst liefern unterschiedliche Datentypen zurück in Zeile 3 Spalte 28.

                      Kann mir jemand helfen?

                      • Support
                      • vor 7 JahrenMon, April 9, 2018 at 3:22 PM UTC
                      • Gemeldet - anzeigen

                      Wie das A in die dritte Zeile kommt, weiß ich auch nicht. Die Fehlermeldung aber kann ich erklären: In der ersten Zeile wir a als Datumfeld deklatriert, die dritte Zeilen versucht dem Datumsfeld einen String zuzuweisen. Dies ist nicht möglich.

                      Birger

                      • manfredtheis
                      • vor 7 JahrenMon, April 9, 2018 at 7:01 PM UTC
                      • Gemeldet - anzeigen

                      Hallo Birger,

                      vielen Dank für deine schnelle Antwort, die mich bzgl. der Datentypen auf den Lösungsweg gebracht hat. Das Hauptproblem war aber der Variablenname A. Diesen habe ich gegen A1 ausgetauscht und jetzt läuft das folgende Skript:

                      let A1 := max((select Logbuch).Tag);
                      Tag := date(year(A1), month(A1), day(A1) + 1)

                      Sind einstellige Variablennamen vielleicht nicht erlaubt?

                      Beste Grüße, Manfred

                      • manfredtheis
                      • vor 7 JahrenMon, April 9, 2018 at 7:01 PM UTC
                      • Gemeldet - anzeigen

                      Hallo Birger,

                      vielen Dank für deine schnelle Antwort, die mich bzgl. der Datentypen auf den Lösungsweg gebracht hat. Das Hauptproblem war aber der Variablenname A. Diesen habe ich gegen A1 ausgetauscht und jetzt läuft das folgende Skript:

                      let A1 := max((select Logbuch).Tag);
                      Tag := date(year(A1), month(A1), day(A1) + 1)

                      Sind einstellige Variablennamen vielleicht nicht erlaubt?

                      Beste Grüße, Manfred