Skip to main content
Announcements
Introducing Qlik Answers: A plug-and-play, Generative AI powered RAG solution. READ ALL ABOUT IT!
cancel
Showing results for 
Search instead for 
Did you mean: 
merry2018
Creator III
Creator III

Aktuelle Datum in einer Listenbox anzeigen

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:

selection.png

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.

1 Solution

Accepted Solutions
marcus_sommer

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

View solution in original post

5 Replies
Frank_Hartmann
Master II
Master II

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)

Unbenannt.png

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

marcus_sommer

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

merry2018
Creator III
Creator III
Author

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

marcus_sommer

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

merry2018
Creator III
Creator III
Author

Danke der Erklärung!

Ok das Brauche ich indem Fall vermutlich eher nicht.

Gruß Merry