SuperX

KontaktMail für InfosSuchenLogin

Ergebniszellen anklickbar machen

Statt eigener Navigationsspalten ist es auch möglich einzelne Zahlen bzw. Zellen in einem Bericht selbst anklickbar zu machen.

Dies kann z.B. genutzt werden, um per "DrillDown"

  • von Kontoständen (wie 80.000 Euro) zu den zugehörigen Buchungen zu kommen,
  • sich bei einer Summe von Studierenden die zugehörigen Matrikelnummern ausgeben zu lassen oder
  • bei einem Flächenbericht mit Quadratmetern sich beim Anklicken der Quatdratmeterzahl die zugehörigen Räume anzeigen zu lassen.

Beispiel:
In einem einfachen Flächenbericht gibt es eine Ergebnisspalte "flaeche", die anklickbar gemacht werden soll und wenn eine Zahl angeklickt wird, soll ein Detailbericht mit den Räumen dazu (10250) aufgerufen werden.

Für die Ergebnisspalte wie

flaeche decimal(14,2)

muss es zusätzliches Feld in Ergebnistabelle geben

hidden_flaeche text

-> durch das hidden wird erkannt, dass die Spalte selbst nicht dargestellt werden sol und auch nicht nach Excel/PDF exportiert werden soll , _flaeche sorgt für die Zuordnung zu Ergebnisspalte.

Dann beim insert z.B.

insert into tmp_erg (kostenstelle,hidden_flaeche,flaeche)
select kostenstelle,'?tid=10250&Kostenstelle='||kostenstelle||'&cachingcontrol=clearmask',sum(flaeche)
from tmp_rohdaten group by 1,2;

Heißt: Für jede Ergebniszeile wird die Kostenstellennummer dargestellt und der Wert "flaeche" wird anklickbar gemacht (hidden_flaeche). Wenn die Flächenzahl in einer Ergebniszeile angeklickt wird, wird der Bericht 10250 mit dem Parameter z.B. Kostenstelle=1000 in einem neuen Tab aufgerufen.

Cachingcontrol=clearmask

sorgt dafür, dass die Maske neue geladen wird mit den Defaulteinstellungen und keine vorher auf anderen Masken getätigte Auswahl (z.B. Raumnutzungsart=500) eingetragen wird.

Aufpassen muss man noch, wenn man zusätzliche Felder auf der Maske hat.

z.B: Flächenart.

Wenn der User sich nicht die Gesamtfläche ausgeben lässt, sondern eine Einschränkung auf eine oder mehrere Flächenarten gemacht habt, muss diese Einschränkung ja auch an den Detailbericht mit übergeben werden.

Im einfachsten Fall bei obligatorischen numerischen Feld mit einfacher Auswahl - da ja immer etwas ausgewählt sein muss, wird der Tag <> auf jeden Fall ersetzt.

insert into tmp_erg (kostenstelle,hidden_flaeche,flaeche)
select kostenstelle,'?tid=10250&Kostenstelle='||kostenstelle||'&Flächenart=<>&cachingcontrol=clearmask',sum(flaeche)

from tmp_rohdaten group by 1,2;

Ist bei Flächenart eine Mehrfachauswahl oder ist nicht numerisch möglich, muss man evtl machen

insert into tmp_erg (kostenstelle,hidden_flaeche,flaeche)
select kostenstelle,'?tid=10250&Kostenstelle='||kostenstelle||'&Flächenart=${Flächenart?replace("|",",")}&cachingcontrol=clearmask',sum(flaeche)
from tmp_rohdaten group by 1,2;

Die Variable ${Flächenart} wird durch die Auswahl des Users gefüllt, dabei werden Pipezeichen bei Mehrfachauswahl durch das Replace mit Kommas ersetzt.

Wenn das Feld nicht obligatorisch ist oder für Gesamtsummenzeile nicht berücksichtigt werden soll, muss man etwas mit freemarker tricksen.

Man erstellt mit assign eine leere Freemarker-Variable für den Flächenartparameter (flart=""), wenn etwas ausgewählt ist, wird die Variable mit Inhalt gefüllt, z:B. &Flächenart=NF1,NF2 - für die zwei ausgewählten Flächenarten NF1 und NF2. In den Link wird dann der Inhalt der FreemarkerVariable mit ${flart} eingebaut.

Eine Beispielmaske (mit noch mehr Freemarker Tricks) ist der Bericht 10320 "Flächen nach Kostenstellen-Flächenarten-Gebäuden (Zeitreihe)"