SuperX

KontaktMail für InfosSuchenLogin

Baumdarstellung

Um im XML-Frontend eine Baumstruktur (Treetable) zu erhalten die auf- und zugeklappt werden kann, muss nur in dem letzten select als erstes Feld die Spalte "ebene" angegeben werden. Dieses Feld soll Zahlen enthalten, welche die Ebene angeben (1= erste Ebene, 2= zweite Ebene …). Dabei ist darauf zu achten, dass es keine Sprünge zur übernächsten höheren Ebene gibt, z.B. nicht von Ebene 2 auf Ebene 4 gesprungen wird. Andersherum ist dies kein Problem, also z.B. von Ebene 4 auf Ebene 2. Wenn es nun zuerst eine Spalte mit Ebene 1 gibt und darauf mehrere mit der Ebene 2 sind diese alle unter der Spalte der Ebene 1. Die Reihenfolge der Auflistung entscheidet dabei den übergeordneten Knoten und nicht nur die Ebene.

Ein Beispiel:

650px

Zum Nachladen von Ergebniszeilen wird das Stylesheet tabelle_html_rows.xsl benutzt.

Wenn man ein spezielles Stylesheet hat, das auch die nachgeladenen Zeilen besonders darstellt, kann man eine eigene Variante von tabelle_html_rows.xsl erstellen und den Dateinamen in der Maske bei chartx eintragen.

Die Baumdarstellung lässt sich auch dynamisch mit Sichtenzugriff erstellen. Dazu kann mit .elements auf Sichten zugegriffen werden. Für Studiengangssichten also Studiengang.elements:

create table tmp_aggr (
Ebene integer,
strukturStr varchar(255),
name varchar (255),
key varchar(255),
anzahl integer,
nextsem integer,
anteil float,
inzweisem integer,
anteilzwei float,
abschlussarbeit integer
);

<#foreach einElement in Studiengang.elements<#foreach einElement in Studiengang.elements>
insert into tmp_aggr(Ebene,strukturStr, name, key,anzahl,nextsem,anteil,inzweisem,anteilzwei,abschlussarbeit)
select
${einElement.level}::smallint,
'${einElement.strukturStr}'::char(50),
'${einElement.name}'::char(200),
'${einElement.key}'::char(10),
count(E.matrikel_nr),
sum(E.nextsem),
(sum(E.nextsem)*100/count(E.matrikel_nr))::integer,
sum(E.inzweisem),
(sum(E.inzweisem)*100/count(E.matrikel_nr))::integer,
sum(E.abschlussarbeit)
from tmp_ergebnis E
where E.tid in ${einElement.subkeys}
order by 1,2,3,4
;