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
                • Roland.3
                • vor 7 JahrenTue, November 7, 2017 at 9:25 AM UTC
                • Gemeldet - anzeigen
                Vielen Dank. Leider passiert da nichts bei mir. So wie ich das ersehe, müsste das Wort dann ersetzt werden.

                Ich hatte nun folgendes versucht:

                Ein Feld: Nachname

                Das Errechnete nach aktualisieren dann in das Feld: Berechnung zu bekommen.

                let myT := Nachname;
                var myNewText := for i from 0 to length(myT) do
                substr(myT, i, 1) + " "
                end
                ;
                Berechnung = (concat(myNewText), ", ", "")

                Irgendwo klemmt es noch ;)

                Viele Grüße
                Roland
                • Roland.3
                • vor 7 JahrenTue, November 7, 2017 at 9:26 AM UTC
                • Gemeldet - anzeigen
                ps. die Anführungszeichen wurden mir hier geändert, ich hatte die richtigen verwendet.
                • Leonid_Semik
                • vor 7 JahrenTue, November 7, 2017 at 1:49 PM UTC
                • Gemeldet - anzeigen
                Hallo Birger,
                was hat der Befehl "var" auf sich? Ich habe den bei NX noch nie gesehen. Und auch nichts in der Dokumentation gefunden.

                Grüße
                Leo
                • Ninox Premiumpartner
                • Bastian_Vorholt
                • vor 7 JahrenTue, November 7, 2017 at 2:10 PM UTC
                • Gemeldet - anzeigen
                Var hat die selbe Funktion wie let es gibt keinen Unterschied soweit ich weiß.
                • Birger_H
                • vor 7 JahrenTue, November 7, 2017 at 2:32 PM UTC
                • Gemeldet - anzeigen
                Bisher konnten Variablen nur so deklariert werden:
                let myX := 7
                Neu ist folgendes:
                var myY := 7
                Damit sind erstmals z.B. inkrementelle Berechnungen möglich, etwa in der Form:
                myY := myY +1

                Birger - Ninox Support
                • Leonid_Semik
                • vor 7 JahrenTue, November 7, 2017 at 3:11 PM UTC
                • Gemeldet - anzeigen
                Versuch mal damit

                let myT := Nachname;
                var myNewText := for i from 0 to length(myT) do
                substr(myT, i, 1)
                end
                ;
                Berechnung := (concat(myNewText), “, “, “ ”)


                Grüße
                Leo
                • Roland.3
                • vor 7 JahrenTue, November 7, 2017 at 5:09 PM UTC
                • Gemeldet - anzeigen
                Ahhh, also ich habe die Formel (die erste hier) nun als Funktion in der Druckansicht eingefügt, dort funktioniert sie wunderbar ;)

                Ich hätte es zwar gerne in ein Feld gesetzt und es dafür als Triggerfunktion eingesetzt, aber hierfür klappen weder die erste Version von Birger, noch die zweite Version von Leo. Die Logik verstehe ich nicht, da ich davon ausgehe Funktion ist Funktion ;)

                Aber zumindest komme ich schon einen guten Schritt weiter, vielen Dank ;)
                • Roland.3
                • vor 7 JahrenTue, November 7, 2017 at 5:11 PM UTC
                • Gemeldet - anzeigen
                Ok so geht es als Berechnung

                let myT := Nachname;
                var myNewText := for i from 0 to length(myT) do
                substr(myT, i, 1)
                end
                ;
                replace(concat(myNewText), ", ", " ")

                ;)
                • Leonid_Semik
                • vor 7 JahrenTue, November 7, 2017 at 5:54 PM UTC
                • Gemeldet - anzeigen
                Habe bei mir einen Fehler gefunden. Letzte Zeile "=" statt ":="

                Leo
                • Birger_H
                • vor 7 JahrenWed, November 8, 2017 at 7:35 AM UTC
                • Gemeldet - anzeigen
                Korrigiert :-)
                • Birger_H
                • vor 7 JahrenThu, November 9, 2017 at 12:41 PM UTC
                • Gemeldet - anzeigen
                Es sollte heißen:
                –––
                let myT := Nachname;
                var myNewText := for i from 0 to length(myT) do
                substr(myT, i, 1) + " "
                end
                ;
                Berechnung = concat(myNewText, ", ", "")
                –––

                Beachten Sie die Klammern in der letzten Zeile.

                Birger Ninox Support
                • Walter_Reinhardt
                • vor 7 JahrenMon, November 13, 2017 at 5:16 AM UTC
                • Gemeldet - anzeigen
                Guten Tag

                Ich habe grössere Probleme mit der Funktion-Weekday. Bei mir verabschiedet sich Ninox immer, sobald ich die Funktion weekday() zum Einsatz bringe. Im Prinzip versuche ich über eine For-Schleife, Seriendaten anzulegen.
                Der beiliegende Code ist aus Debug-Gründen etwas kompliziert aufgebaut. Jedes angesprochene Feld ist ein Zahlenfeld, bis auf die Felder:
                Termin (Terminfeld)
                dStart_Datum (Datum_Feld)
                Generierter Termin (Terminfeld)

                Start-Tabelle ist: SerienFeldMitAnzahl
                Auf dem Knopf "Berechne" läuft folgender Script ab, welcher ohne Zeile 24 (Weekday) durchläuft, aber eben mit weekday sich aufhängt.

                TerminAlsZahl := Termin;
                Start_Datum_Zeit := substr(TerminAlsZahl, 0, index(TerminAlsZahl, "/"));
                Dauer := duration(Termin);
                Jahr := year(Termin);
                Monat := month(Termin);
                Tag := day(Termin);
                Startzeit := number(number(Start_Datum_Zeit)) - number(date(Jahr, Monat, Tag));
                Start_Datum := date(Jahr, Monat, Tag);
                dStart_Datum := date(Jahr, Monat, Tag);
                Wochentag := weekday(date(number(Start_Datum)));
                vWochentag := weekdayName(number(Wochentag));
                NeuerTerminAlsZahl := text(number(Start_Datum) + number(Startzeit)) + "/" + text(number(Dauer));
                GenerierterTermin := NeuerTerminAlsZahl;
                Interval := 24 * 60 * 60 * 1000;
                (let iAnz := 1;
                for i in range(0, iAnz) do
                let b := "Berechne naechsten neuen Termin";
                Start_Datum := number(Start_Datum) + number(Interval);
                dStart_Datum := Start_Datum;
                Start_Datum_Zeit := number(Start_Datum) + number(Startzeit);
                Jahr := year(Termin);
                Monat := month(Termin);
                Tag := day(Termin);
                Wochentag := weekday(dStart_Datum);
                NeuerTerminAlsZahl := text(number(Start_Datum) + number(Startzeit)) + "/" + text(number(Dauer));
                GenerierterTermin := NeuerTerminAlsZahl;
                (let d := NeuerTerminAlsZahl;
                let t := "Titel";
                let w := Wochentag;
                let wt := vWochentag;
                if number(Wochentag) != 5 and number(Wochentag) != 6 then
                (let c := (create Serien);
                c.(Datum := d))
                else
                (Start_Datum := Start_Datum))
                end
                )
                • Birger_H
                • vor 7 JahrenTue, November 14, 2017 at 1:33 PM UTC
                • Gemeldet - anzeigen
                Können Sie mir (support@ninoxdb.de) die Datenbank, an der Sie arbeiten einmal also Kopie zuschicken (Hauptmenü -> "Archiv sichern unter...")? Ich schaue dann gerne einmal hinein.

                Birger - Ninox Support
                • Walter_Reinhardt
                • vor 7 JahrenThu, November 16, 2017 at 4:58 AM UTC
                • Gemeldet - anzeigen
                Guten Morgen

                Zwischenzeitlich habe ich die DB Ihnen zugesandt. Während dessen habe ich mich weiter der Problematik angenommen und folgendes festgestellt:
                1. Die Iterration läuft durch, wenn ich kein "let c := create Serien" erstelle

                Gleichzeitig habe ich eine Frage:
                Wieso kann ich nachdem ich den Befehl "let c := create Serien" nicht direkt auf die Datenfelder des aktuellen Datensatzes zugreifen und muss die Daten erst über weitere LET-Anweisungen neuen Variablen zuordnen?

                Ich vermute, dass mein Problem genau mit diesem Verhalten zu tun hat.

                Herzlichen Dank für Ihre Unterstützung.

                Freundliche Grüsse
                Walter Reinhardt
                • Roland_Ster
                • vor 7 JahrenTue, November 28, 2017 at 4:53 PM UTC
                • Gemeldet - anzeigen
                Hallo Zusammen !

                Hab wieder mal ein Problem:

                Ich Lasse zwei Zeitsummen (Arbeitszeiten) zusammenrechnen. Mein Problem ist nun,
                dass die Summe über 24 Std. immer als Tag dargestellt werden. Ich benötige allerdings nur die Stunden und Minuten.
                z.B. statt 45 Stunden und 15 Minuten wird 1 Tag 21 Stunden und 15 Minuten angezeigt

                Vielen lieben Dank für Eure Hilfe !
                Roland
                • sabineniederhofer
                • vor 7 JahrenWed, November 29, 2017 at 10:37 AM UTC
                • Gemeldet - anzeigen
                Hallo!
                Ich hätte folgendes Problem, dass ich nicht schaffe alleine zu lösen. Ich möchten im Kalender Zins,. und Tilgungstermine anzeigen lassen. Ich haben ein Auswahlfeld, wo ich den Zahlungsrhythmus angeben, z.B. jährlich, 1/4-jährlich, ein Datumsfeld mit dem Startdatum der Zahlung (z.B. 30.09.). Jetzt würde ich gern ein Feld mit nächster Zins,-Tilgungsfälligkeit (ab heute) ist am ..... (z.b. 30.12.). Und es wäre dann super, wenn dieser Termin und im Kalender angezeigt werden könnte! Ist dies darstellbar? Könnt ihr mir hier mit der Formel weiterhelfen. Danke!
                • Birger_H
                • vor 7 JahrenWed, November 29, 2017 at 2:45 PM UTC
                • Gemeldet - anzeigen
                Versuchen Sie es mit folgender Formel:
                –––
                let mySecs := number(Time + 'Time 2') / 1000;
                floor(mySecs / 3600) + ":" + floor((mySecs - floor(mySecs / 3600) * 3600) / 60)
                –––

                Birger - Ninox Support
                • Roland_Ster
                • vor 7 JahrenWed, November 29, 2017 at 6:32 PM UTC
                • Gemeldet - anzeigen
                Danke erstmal !
                Bekomme es aber leider nicht hin ?

                Bei mir sieht das ganze so aus:
                sum('Als Fahrer'.Fahrzeit) + sum('Beifahrer bei'.Fahrzeit)

                Wie kann ich Ihre Formel hier anwenden ?

                Vielen lieben Dank !!!

                Liebe Grüße, Roland
                • Frank_Bohmer
                • vor 7 JahrenThu, November 30, 2017 at 1:58 PM UTC
                • Gemeldet - anzeigen
                Hallo Sabine,
                Ninox kann keine berechneten Felder im Kalender darstellen. Die Fälligkeit müsste als echtes Datenfeld angelegt werden und dann per Trigger, z.B. "Bei Änderungen folgendes Skript ausführen" geschrieben werden.

                Fälligkeit := if Zahlungsrithmus = 1 then
                date(year(today()), month(today()) + 1, day(today()))
                else if Zahlungsrithmus = 2 then
                date(year(today()), month(today()) + 3, day(today()))
                else
                date(year(today())+1, month(today()), day(today()))
                end
                end

                Viele Grüße,
                Frank
                • Frank_Bohmer
                • vor 7 JahrenThu, November 30, 2017 at 2:01 PM UTC
                • Gemeldet - anzeigen
                Hallo Roland,

                versuch mal:

                number(sum('Als Fahrer'.Fahrzeit) + sum('Beifahrer bei'.Fahrzeit))/3600000


                Viele Grüße,
                Frank
                • Roland_Ster
                • vor 7 JahrenFri, December 1, 2017 at 4:45 AM UTC
                • Gemeldet - anzeigen
                Danke Frank
                Hat super funktioniert !

                Vielen Dank !
                Liebe Grüße Roland
                • Leonid_Semik
                • vor 7 JahrenSun, December 3, 2017 at 6:33 AM UTC
                • Gemeldet - anzeigen
                in der Macbook App erscheint der Wochentag des Datums ( format(Datum, "dddd")) immer in English, obwohl die Einstellungen auf deutsch gesetzt sind. In der Web ist alles Deutsch.

                Grüße
                Leo
                • Leonid_Semik
                • vor 7 JahrenSun, December 3, 2017 at 6:35 AM UTC
                • Gemeldet - anzeigen
                nehme alles zurück. Die App war zuerst in englisch. Und es reicht nicht, einfach die Einstellungen zu ändern. Man muss die App neu starten.
                Grüße
                Leo
                • a_deppe
                • vor 7 JahrenWed, December 6, 2017 at 3:15 PM UTC
                • Gemeldet - anzeigen
                Hallo,

                wie kann ich denn Sonderzeichen encodieren? Zielstellung ist einen Zeilenumbruch in der Druckansicht durchzuführen:

                Versucht habe ich u.a.
                replace(concat(Rechnungen.Rechnungspositionen.'Gerätedaten'.Typ), ",",\n\r)

                Leider funktioniert weder noch \n\r noch +\n\r.

                Noch komfortabler währe es natürlich wenn man der concat Funktion gleich beibringen könnte statt einem Komma einen Zeilenumbruch zu verwenden. Geht das?
                • Birger_H
                • vor 7 JahrenWed, December 6, 2017 at 3:27 PM UTC
                • Gemeldet - anzeigen
                Versuchen Sie es so:
                –––
                replace(concat(Rechnungen.Rechnungspositionen.'Gerätedaten'.Typ), ", ", "
                ")
                –––


                Encodierung ist nicht notwendig, da Ninox durchgehend unicode verwendet.

                Birger - Ninox Support

                      Content aside

                      • vor 7 JahrenSun, June 10, 2018 at 8:49 AM UTCZuletzt aktiv
                      • 254Antworten
                      • 72944Ansichten