Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hallo Zusammen,
ich will in einer Listenbox das Datum von gestern (oder wenn es geht des letzten Werktages) darstellen, also als einzelner Eintrag. Dieses soll dann auch aus wählbar sein, also wenn ich dieses Anklicke soll in den restlichen Datumsfelder(Tag, Montag, Jahr) im Arbeitsblatt überall dieses Ausgewählt sein.
Hier ein Beispiel zum Veranschaulichen:
Versucht habe ich es mit folgenden zwei Varianten:
= today(Buchung.Datum)-1
= max(%KEY_Kalender_Datum) (letztes verfügbares Datum wäre das gestrige Datum)
- Bei der ersten Variante wählt es statt dessen "Alle" aus wie in dem Auswahlstatus zu sehen ist.
- Und bei der zweiten zeigt es gar kein Datum an, also bleibt die Listenbox einfach ohne Eintrag.
- Auch Versucht habe ich es, indem ich in der Listbox das komplette Buchung.Datum angezeigt habe und dann über eine Aktion des Arbeitsblattes, also "Auswahl in Feld" - "LB08[also die Listbox gestern]" - "=(Today() ) -1". Dieses zeigt garkeine Reaktion
Ich hoffe Ihr versteht was ich suche und könnt mir helfen.
Vielen Dank im Voraus.
Um das in einer Listbox abzubilden, benötigt man eine aggr() um die max() herum, da man ansonsten keine Aggregationen in "dynamischen" Dimensionen erstellen kann. Hierfür könnte man z.B. etwas nehmen wie das hier:
= aggr(only({< %Datum = {"$(=date(max({< #IST = {'*'}>} %Datum)))"}>} %Datum), %Datum)
Das Datumsfeld müsstest Du mit Deinem ersetzen und möglicherweise auch die Bedingung innerhalb der max() oder einfach rausnehmen.
Eine weitere Möglichkeit wäre etwas wie das hier:
= aggr(
if(%Datum = today(), dual('heute: ' & date(today()), date(today())),
if(num(%Datum) = today()-1, dual('gestern: '& date(today()-1), date(today()-1)),
if(%Datum = max(total %Datum), dual('max. Datum: ' & %Datum, %Datum),
dual('Sonstige', 100000)))), %Datum)
das bei mir zu dem führt:
Insbesondere falls man noch ein paar mehr solcher Zeitraum-Cluster hat, wäre eine Skript-Lösung, z.B. mit Flags im Master-Kalender aber sicher sinnvoll.
- Marcus
Versuchs mal so:
1:
LOAD * INLINE [
Datum, Data
14.05.2018, 543
13.05.2018, 76
12.05.2018, 678
11.05.2018, 768
10.05.2018, 45
];
NoConcatenate
2:
Load Data, max(Datum) AS MaxDate Resident 1 Group by Datum, Data;
und dann in der Listbox als Expression:
Date(MaxDate)
Wenn das nicht hilft, dann lade mal eine Beispiel qvw hoch, welche dein Problem zeigt, damit man damit rumspielen kann!
hoffe das hilft
Gruß Franky
Um das in einer Listbox abzubilden, benötigt man eine aggr() um die max() herum, da man ansonsten keine Aggregationen in "dynamischen" Dimensionen erstellen kann. Hierfür könnte man z.B. etwas nehmen wie das hier:
= aggr(only({< %Datum = {"$(=date(max({< #IST = {'*'}>} %Datum)))"}>} %Datum), %Datum)
Das Datumsfeld müsstest Du mit Deinem ersetzen und möglicherweise auch die Bedingung innerhalb der max() oder einfach rausnehmen.
Eine weitere Möglichkeit wäre etwas wie das hier:
= aggr(
if(%Datum = today(), dual('heute: ' & date(today()), date(today())),
if(num(%Datum) = today()-1, dual('gestern: '& date(today()-1), date(today()-1)),
if(%Datum = max(total %Datum), dual('max. Datum: ' & %Datum, %Datum),
dual('Sonstige', 100000)))), %Datum)
das bei mir zu dem führt:
Insbesondere falls man noch ein paar mehr solcher Zeitraum-Cluster hat, wäre eine Skript-Lösung, z.B. mit Flags im Master-Kalender aber sicher sinnvoll.
- Marcus
Super vielen Dank die erste Formel funktioniert perfekt!
Ich hab es ohne und mit der Bedingung ({< #IST = {'*'}>}) versucht, es klappt beides.
Was sollte mit dieser anders sein?
Gruß Merry
Die #IST Bedingung ist hier deshalb drin, weil %Datum mein Schlüsselfeld zwischen der Transaktionstabelle und dem Master-Kalender ist und dort auch zukünftige Datumswerte für die Planzahlen drin sind und die werden damit dann ausgeschlossen. Es hängt also davon ab, was man zeigen will und wie man das Datenmodell strukturiert hat, ob man solche Bedingungen braucht oder nicht.
- Marcus
Danke der Erklärung!
Ok das Brauche ich indem Fall vermutlich eher nicht.
Gruß Merry