0

Untertabelle nach Kriterien filter und mit last den gefiltert-letzten Eintrag wählen

Hallo,

da dies mein erster Post ist vorab mal großes Lob an die Community welche hier wirklich mit rat & tat zu Seite steht - ich habe schon etliche hilfreiche tips & tricks verwendet.

derzeit hab ich eine Haupttabelle in welcher ich Einzelne Maschinen, Geräte, usw. aufnehme.
in dieser Tabelle gibt es dann ein/zwei/drei Auswahlfeld(er) wo man den Wartungsinterwall festlegen kann und daneben ein Funktionsfeld welches die Tage zur nächsten Wartung rechnet.

in dieser Haupttabelle gibt es dann eine Untertabelle "Wartungen" um die durchgeführten Wartungen zu erfassen und Protokollieren.
die Untertabelle enthällt ein Auswahlmenü mit "Art der Wartung" welches sich auf den Wartungsintervall bezieht ob zb. die monatliche, jährliche oder eine Außertourliche wartung durchgeführt wurde,
als auch ein Funktionsfeld mit Datumsstempel "Durchgeführt am:"

dies ist aktuell der Code der im Funktionsfeld steht:

if 'Wartungsintervall 1' = 2 and last(Wartungen.'Art der Wartung') = 1 then
let myEndDate := date(year(max(Wartungen.'Durchgeführt am:')), month(max(Wartungen.'Durchgeführt am:')) +1, day(max(Wartungen.'Durchgeführt am:')));
let myDuration := days(today(), myEndDate);
styled(myDuration + if myDuration = 1 or myDuration = -1 then
" Tag"
else
" Tage"
end, if myDuration > 0 then "green" else "red" end, "", "")
end

mein Problem dabei ist, dass er mit der Funktion "last" nicht zuerst nach dem Kriterium sortiert und dann den letzten Tabelleneintrag auswertet, sondern immer den letzten Tabelleneintrag nimmt und dort abfragt ob die Auswahlfelder richtig gesetzt sind.
mit der Funktion "sort" bin ich aktuell auch noch auf keinen grünen zweig gekommen.

simpel erklärt:

wenn 'Wartungsintervall 1' = 2
dann Filter nach Wartungen.'Art der Wartung' = 1
hole Datum aus letzem Datensatz und zähle anzahl tage dazu

 

ich hoffe dass mir diesbezüglich jemand helfen kann

lg

Robert

Antwort

null