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 6 Jahren
    • 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 6 Jahren
    • Gemeldet - anzeigen
    ps. die Anführungszeichen wurden mir hier geändert, ich hatte die richtigen verwendet.
    • Leonid_Semik
    • vor 6 Jahren
    • 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 6 Jahren
    • Gemeldet - anzeigen
    Var hat die selbe Funktion wie let es gibt keinen Unterschied soweit ich weiß.
    • Birger_H
    • vor 6 Jahren
    • 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 6 Jahren
    • 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 6 Jahren
    • 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 6 Jahren
    • 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 6 Jahren
    • Gemeldet - anzeigen
    Habe bei mir einen Fehler gefunden. Letzte Zeile "=" statt ":="

    Leo
    • Birger_H
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Korrigiert :-)
    • Birger_H
    • vor 6 Jahren
    • 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 6 Jahren
    • 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 6 Jahren
    • 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 6 Jahren
    • 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 6 Jahren
    • 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 6 Jahren
    • 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 6 Jahren
    • 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 6 Jahren
    • 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 6 Jahren
    • 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 6 Jahren
    • Gemeldet - anzeigen
    Hallo Roland,

    versuch mal:

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


    Viele Grüße,
    Frank
    • Roland_Ster
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Danke Frank
    Hat super funktioniert !

    Vielen Dank !
    Liebe Grüße Roland
    • Leonid_Semik
    • vor 6 Jahren
    • 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 6 Jahren
    • 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 6 Jahren
    • 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 6 Jahren
    • 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 5 JahrenZuletzt aktiv
  • 254Antworten
  • 72700Ansichten