diff artifacts/doc/datacage_ref_de.rst @ 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 e07dc8854a8f
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
 ~~~~~~~~~~~~~~~~~~~~

http://dive4elements.wald.intevation.org