0

Auswahl eines Datensatzes nach Jahr und Monat

Vielleicht kann mir jemand das Brett vorm Kopf entfernen:

Auf dem Dashboard habe ich zwei Auswahlfelder "Jahr" und "Monat"
Beim anklicken einer Schaltfläche soll in "Buch_Abrechnung" der Datensatz geöffnet werden, dessen
Datum dem Jahr und Monat auf dem Dashboard entspricht.

closeFullscreen();
closeRecord();
let myDS := (select Buch_Abrechnung where text(year('Monat angelegt')) = text(Jahr) and text(month('Monat angelegt')) = text(Monat)).number(Nr);
openFullscreen(record(Buch_Abrechnung,number(myDS)))

Das gibt keine Fehlermeldung, aber auch keinen angezeigten Datensatz.
Woran könnte es liegen ?

6 Antworten

null
    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Holzi,

    ---

    if Jahr and Monat then
    let myYear:=text(Jahr);
    let myMonth:=text(Monat);
    let myDS := first (select Buch_Abrechnung where text(year('Monat angelegt')) = myYear and text(month('Monat angelegt')) = myMonth);
    closeFullscreen();
    closeRecord();
    openFullscreen(myDS)
    end

    ---

    Leo

    • Ninox-Professional
    • planoxpro
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Man könnte vielleicht auch yearmonth() nutzen:

    if Jahr and Monat then
       let myYM := text(Jahr) + "/" + text(Monat);
       let myDS := first(select Buch_Abrechnung where yearmonth('Monat angelegt') = myYM);
       openFullscreen(myDS)
    end

    • Holzi
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Leo, Hallo Copytexter,

    vielen Dank für die blitzschnelle Antwort.
    Leo: Leider gleiches Ergebnis: Keine Fehlermeldung, aber auch kein Datensatz.
    Mein Fehler: im Auswahlfeld für den Monat habe ich die Monatsnamen (Januar, Februar pp.) eingetragen und nicht 1,2 usw.

    Wie müßte
    text(month('Monat angelegt'))
    formuliert werden um die den Monatsnamen im Auswahlfeld zu vergleichen?

    Vielen Dank schon im voraus.

    • Ninox-Professional
    • planoxpro
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Holzi, sind die Monate denn wenigstens in der richtigen Reihenfolge eingetragen, also Januar - 1, Februar - 2 usw.? Dann würde ich es so probieren (immer unter der Voraussetzung, dass 'Monat angelegt' tatsächlich ein Datumsfeld ist):

     

    if Jahr and Monat then
       let myYM := text(Jahr) + "/" + format(number(Monat), "00");
       let myDS := first(select Buch_Abrechnung where yearmonth('Monat angelegt') = myYM);
       openFullscreen(myDS)
    end

    • Holzi
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Copytexter, genau so läuft es.
    Danke

    • Holzi
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Ach so Leo: Mit Deiner Version läuft's natürlich auch wenn ich den Monat entsprechend umforme:

    format(number(Monat), "00")