Mercurial > dive4elements > river
changeset 7322:7be4425eaca9
Datacage doc ref: Explain dc:group
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Mon, 14 Oct 2013 16:38:16 +0200 |
parents | b33a2a437ab8 |
children | 80c14a7e35f3 |
files | artifacts/doc/datacage_ref_de.rst |
diffstat | 1 files changed, 67 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/artifacts/doc/datacage_ref_de.rst Mon Oct 14 16:06:36 2013 +0200 +++ b/artifacts/doc/datacage_ref_de.rst Mon Oct 14 16:38:16 2013 +0200 @@ -156,14 +156,14 @@ <dc:filter expr="XPath-Ausdruck"> ... - <dc:filter> + </dc:filter> Evaluiert pro Zeile des aktuellen Datensatzes den XPath-Ausdruck 'expr' und erzeugt einen neuen Datensatz, der nur die Zeilen des Originaldatensatzes enthält für den die Auswertung logisch wahr ergab. Im XPath-Ausdruck stehen die aufgefalteten Werte der jeweiligen Zeile zur Verfügung. -Folgends Beipiel soll dies verdeutlichen: +Folgends Beispiel soll dies verdeutlichen: +----+ +Zahl+ @@ -199,7 +199,71 @@ realisiert werden. Nach Verlassen des `dc:filter`-Elementes ist wieder der vormalige Datensatz aktuell. -``dc:group`` **TODO** +``dc:group`` Datensätzen in Gruppen ordnen +.......................................... + +.. code:: xml + + <dc:group expr="XPath-Ausdruck"> + ... + </dc:group> + +Pro Zeile der Originaldatensatzes wird der XPath-Ausdruck 'expr' ausgewertet. +Wie bei `dc:filter` stehen hier die aufgefalteten Werte der einzelnen Spalten zur +Verfügung. Das Resultat der XPath-Auswertung wird als Schlüssel für zu erzeugende +Gruppen benutzt, denen dann die Zeilen zugeordnet werden. +Nachdem alle Zeilen ihren entsprechenden Gruppen zugeordnet wurden, wir der +Inhalt des `dc:group`-Elements für jede Gruppe durchlaufen. Innerhalb des +`dc:group`-Elementes steht der jeweilige Schlüssel der aktuellen Gruppe über +die Funktion `dc:group-key()` zur Auswertung zu Verfügung. Innerhalb der +jeweiligen Gruppen kann mittel `dc:for-each` der jeweilige Unterdatensatz +realisiert werden. + +Zur Verdeutlichung folgendes Beispiel: + + +-------+-----------+ + +Marke +Bezeichnung+ + +=======+===========+ + +Ferrari+Testarossa + + +-------+-----------+ + +Volvo +V40 + + +-------+-----------+ + +Volvo +780 + + +-------+-----------+ + +Ferrari+F40 + + +-------+-----------+ + +VW +Käfer + + +-------+-----------+ + +.. code:: xml + + <marken> + <dc:group expr="$Marke"> + <marke name="{dc:group-key()}"> + <dc:for-each> + <bezeichnung name="$Bezeichnung"/> + </dc:for-each> + </marke> + </dc:group> + </marken> + +Dies führt zu folgender Ausgabe: + +.. code:: xml + + <marken> + <marke name="Ferrari"> + <bezeichnung name="F40"/> + <bezeichnung name="Testarossa"/> + </marke> + <marke name="Volvo"> + <bezeichnung name="V40"/> + <bezeichnung name="780"/> + </marke> + <marke name="VW"> + <bezeichnung name="Käfer"/> + </marke> + </marken> Datensätze auffalten ~~~~~~~~~~~~~~~~~~~~