0

Beim öffnen von Ninox (Mac Standalone Version) soll xxx ausgeführt werden

Hallo Ninox Gemeinde,

ich möchte einen automatischen "Zahlung fällig" Rechnungslauf generieren bei jedem öffnen von Ninox. 

 

Klappt nur leider nicht...

in der Tabelle Aufträge habe ich zu jedem Auftrag in einem Datumsfeld die Fälligkeit der Zahlung stehen.

Das möchte ich mit Today vergleichen und wenn überschritten, dann setze Projektstatus = 5 ... 

Der Code funktioniert nicht.. es passiert nix

in den Optionnel der Datenbank "Trigger nach Öffnen" hab ich folgenden Code eingesetzt:

let Auftrag := (select 'Aufträge');
if Auftrag.'Zahlung fällig' <= today() and Auftrag.'Rechnung bezahlt' = false then
    Auftrag.(Projektstatus := 5)
else
    if Auftrag.'Rechnung bezahlt' = true then
        Auftrag.(Projektstatus := 3)
    end
end

geht leider nicht...


Wenn ich als Test in der Tabelle Aufträge einen Button setze mit folgendem Code funktioniert es für den einzelnen geöffneten Auftrag. Ich möchte es aber für alle beim Öffnen von der Datenbank machen...

if 'Zahlung fällig' <= today() and 'Rechnung bezahlt' = false then
    Projektstatus := 5
else
    if 'Rechnung bezahlt' = true then
        Projektstatus := 3
    end
end


 

was mache ich Falsch? Kann mir da jemand helfen?

2 Antworten

null
    • Head of Product Design
    • toby
    • vor 1 Monat
    • Gemeldet - anzeigen

    Hallo ,

    in dem Skript referenzierst Du die gesamte Tabelle Aufträge. Das bedeutet, dass dann jeder einzelne Datensatz entsprechend geprüft werden muss. Dazu kommt dass wenn du für ‚Rechnung bezahlt‘ ein ja/nein Feld benutzt der Standardwert ‚null‘ ist und nicht ‚ Nein‘.

    Mit einem for … in Loop können wir jeden Datensatz prüfen, und statt 'Rechnungbezahlt' = false können wir 'Rechnungbezahlt' != true nehmen, was false und null beinhaltet.

    Hier das Skript das bei mir in Trigger nach öffnen funktioniert hat:

    let jobs := (select Jobs);
    for job in jobs do
        if job.'Payment due date' <= today() and job.'Payment received' != true then
            job.(ProjectStatus := 5)
        else
            if job.'Payment received' = true then
                job.(ProjectStatus := 3)
            end
        end
    end

      • siegfried_toews
      • vor 1 Monat
      • Gemeldet - anzeigen

       DANKE :) 

      Virtuell geb ich dir ein Wochenvorat an Kaffee aus

Content aside

  • Status Answered
  • vor 1 MonatZuletzt aktiv
  • 2Antworten
  • 25Ansichten
  • 2 Folge bereits