0

Datumsfunktion und Division mit Datumsergebnis

Hallo Forum,

Aufgabe war es aus dem Wasserverbrauch die Differenz zur letzten Ablesung , die Anzahl der Tage seit der letzten Ablesung und den durchschnittlichen Verbrauch pro Tag zu rechnen. 
Anzahl der Tage rechnet er teilweise auf Minute so dass Tage plus Stunden angezeigt werden. Durchschnittlichen Verbrauch rechnet er gar nicht vermutlich unterschiedliche 
Feldeigenschaften (Zahl und Zeit).

So sieht die Tabelle aus (siehe unten, hoffe das Bild ist besser lesbar wenn geöffnet): Die Felder, die im Namen Funktion tragen, sind die durch Ninox berechneten Felder. Die Felder links davon sind die Daten, die ich aus excel gerechnet und importiert hatte , sozusagen die Kontrolle und Basisdaten.

1. Frage: Warum rechnet er die Tage teilweise in Stunden um. Das kommt in diesem Feld öfter vor.
2. Den Durchschnittsverbrauch rechnet er gar nicht. Das ist das Script :
Verbrauch_Funktion / Tage_Funktion

Wer im Forum kann mir weiterhelfen? Und wenn Sie eine Lösung schicken, wo kann ich die im Handbuch finden?

 

Herzlichen Dank und schöne Grüße Faik

Ninox Wasserverbrauch

5 Antworten

null
    • Ninox-Professional
    • planoxpro
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Faik, das Problem entsteht vermutlich(!) dadurch, dass in 'Tage_Funktion' einfach mit der Formel "Datum - Vordatum" gerechnet wird. Nimmt man statt dessen die Funktion days(), sollte es funktionieren:

     

    days(Vordatum, Datum)

     

    Damit bekommt man einen rein numerischen Wert, mit dem dann auch weitere mathematische Operationen durchgeführt werden können.

    • Faik_Yargucu
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Danke Copytexter wie immer für die super schnelle Antwort. Stehe aber noch auf dem Schlauch. Mir ist nicht klar, wo ich die Funktion days(Vordatum, Datum) einsetzen kann?

    Das Feld Tage_Funktion wird folgendermaßen ermittelt, wie der Verbrauch pro Tag (mit den entsprechenden Feldnamen) im übrigen auch. Dann soll mit beiden weiter gerechnet werden. 

    let my := this;
    let akt_Feld_X := my.Datum;
    let letztes_DS_Feld_X := last((select Wasserverbrauch where Messung < my.Messung) order by Messung).Datum;
    akt_Feld_X - letztes_DS_Feld_X

    • Torsten_Stang.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hi,

     

    in der letzten Zeile müsste es dann heissen

     

    days(letztes_DS_Feld_X, akt_Feld_X)

     

    lg, Torsten

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

    Genau. Damit werden sich wahrscheinlich automatisch auch die Werte des Berechnungsfeldes 'Verbrauch pro Tag_Funktion' ändern. Um auch noch das "Infinity" bei Nullwerten wegzubekommen, könnte man die Formel zur Berechnung des durchschnittlichen Tagesverbrauchs wie folgt ergänzen:

     

    if Verbrauch_Funktion > 0 and Tage_Funktion > 0 then
        Verbrauch_Funktion / Tage_Funktion
    end

    • Faik_Yargucu
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Ein ganz großes Dankeschön! Funktioniert! Bin wirklich beeindruckt von Eurer schnellen und kompetenten Reaktion. Schöne Ostern!