Anzeige der „richtigen" Daten in der Ansicht auf dem Dashboard
Mahlzeit,
auf meinem Dashboard kann ich über den Kundenamen bzw. -Nr. eine Suche starten und frage damit verschiedene Tabellen ab. U.a. meine Tabelle mit Aktivitäten, Verträgen und auch den Kalenderbesuchen.
Bei den Kalenderbesuchen möchte ich mir immer den aktuellsten (also jüngsten) Datensatz anzeigen lassen. Das sollte dann der neuste Eintrag im Feld Jahr sein. In den anzuzeigenden Spalten habe ich bisher dann immer z.B. first('Verteilung Jahre'.Wandkalender)
eingetragen.
Dann war natürlich nicht wirklich die beste Idee, denn das stimmt nur, wenn alle Felder entsprechend gefüllt sind, wenn nicht, dann werden mir die jeweils ersten Enträge in den Feldern angezeigt, die aber schon Jahre zurückliegen können.
So sieht das ganze aus:
Wie man allerdings sieht ist da zum einen nicht der erste Eintrag (2020 wird mir nicht angezeigt) und bei Wandkalender steht die Zahl von 2016 und bei Schreibtisch-Unterlagen die von 2015.
Das ist ziemlich verwirrend. Wenn z.B. 2020 im Feld Jahr
steht, dann soll mir auch nur diese Zeile angezeigt werden. Und wenn 2019 drin steht, dann die komplette Zeile für 2019. Die anderen Felder sollen dann ignoriert werden.
Ich vermute mal, dass ich das über die Funktion bei der Ansicht abfangen kann. Bisher lautet die Funktion so:
let me := Suchbegriff;
let mg := 'Mitglieds-Nr.';
if Suchbegriff then
select Kalenderbesuche where contains(lower(Firma), lower(me))
else
if 'Mitglieds-Nr.' then
select Kalenderbesuche where 'Mitglieds-Nr.' = mg
end
end
Ich habe es mit first
vor den beiden select
-Anweisungen versucht. Da wird mir aber gar nichts angezeigt
Wie muss denn eine solche Funktion aussehen, damit ich meine Anzeige so hinbekomme, wie ich es gerne hätte?
Für Ideen oder Lösungen wäre ich dankbar
Viele Grüße
Markus
2 Antworten
-
Hallo Markus,
du kannst auch mit last und order by versuchen:
---l
et me := lower(Suchbegriff);
let mg := 'Mitglieds-Nr.';
if Suchbegriff then
last( (select Kalenderbesuche where contains(lower(Firma), lower(me))) order by Jahr)
else
if 'Mitglieds-Nr.' then
last ((select Kalenderbesuche where 'Mitglieds-Nr.' = mg) order by Jahr))
end
end
---
Leo
-
Hallo Leo,
das haut leider nicht hin. Das Feld Jahr stammt aus der 'Kalender Verteilung Jahre'. Deswegen musste ich die Funktion noch abändern, damit kein Fehler gemeldet wird (irgendwo steht die Tabelle noch mit 'Verteilung Jahre' drin)
let me := lower(Suchbegriff);
let mg := 'Mitglieds-Nr.';
if Suchbegriff then
last((select Kalenderbesuche where contains(lower(Firma), lower(me))) order by 'Verteilung Jahre'.Jahr)
else
if 'Mitglieds-Nr.' then
last((select Kalenderbesuche where 'Mitglieds-Nr.' = mg) order by 'Verteilung Jahre'.Jahr)
end
end
Aber auch hier bleibt das Ergebnis leer bzw. es wird kein Datensatz angezeigt
Markus
Content aside
- vor 4 JahrenZuletzt aktiv
- 2Antworten
- 578Ansichten