comparison 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
comparison
equal deleted inserted replaced
7321:b33a2a437ab8 7322:7be4425eaca9
154 154
155 .. code:: xml 155 .. code:: xml
156 156
157 <dc:filter expr="XPath-Ausdruck"> 157 <dc:filter expr="XPath-Ausdruck">
158 ... 158 ...
159 <dc:filter> 159 </dc:filter>
160 160
161 Evaluiert pro Zeile des aktuellen Datensatzes den XPath-Ausdruck 'expr' und erzeugt 161 Evaluiert pro Zeile des aktuellen Datensatzes den XPath-Ausdruck 'expr' und erzeugt
162 einen neuen Datensatz, der nur die Zeilen des Originaldatensatzes enthält für den 162 einen neuen Datensatz, der nur die Zeilen des Originaldatensatzes enthält für den
163 die Auswertung logisch wahr ergab. Im XPath-Ausdruck stehen die aufgefalteten Werte 163 die Auswertung logisch wahr ergab. Im XPath-Ausdruck stehen die aufgefalteten Werte
164 der jeweiligen Zeile zur Verfügung. 164 der jeweiligen Zeile zur Verfügung.
165 165
166 Folgends Beipiel soll dies verdeutlichen: 166 Folgends Beispiel soll dies verdeutlichen:
167 167
168 +----+ 168 +----+
169 +Zahl+ 169 +Zahl+
170 +====+ 170 +====+
171 + 1+ 171 + 1+
197 197
198 Innerhalb des `dc:filter`-Elementes kann der neue Datensatz wie gewohnt mit `dc:for-each` 198 Innerhalb des `dc:filter`-Elementes kann der neue Datensatz wie gewohnt mit `dc:for-each`
199 realisiert werden. Nach Verlassen des `dc:filter`-Elementes ist wieder der vormalige 199 realisiert werden. Nach Verlassen des `dc:filter`-Elementes ist wieder der vormalige
200 Datensatz aktuell. 200 Datensatz aktuell.
201 201
202 ``dc:group`` **TODO** 202 ``dc:group`` Datensätzen in Gruppen ordnen
203 ..........................................
204
205 .. code:: xml
206
207 <dc:group expr="XPath-Ausdruck">
208 ...
209 </dc:group>
210
211 Pro Zeile der Originaldatensatzes wird der XPath-Ausdruck 'expr' ausgewertet.
212 Wie bei `dc:filter` stehen hier die aufgefalteten Werte der einzelnen Spalten zur
213 Verfügung. Das Resultat der XPath-Auswertung wird als Schlüssel für zu erzeugende
214 Gruppen benutzt, denen dann die Zeilen zugeordnet werden.
215 Nachdem alle Zeilen ihren entsprechenden Gruppen zugeordnet wurden, wir der
216 Inhalt des `dc:group`-Elements für jede Gruppe durchlaufen. Innerhalb des
217 `dc:group`-Elementes steht der jeweilige Schlüssel der aktuellen Gruppe über
218 die Funktion `dc:group-key()` zur Auswertung zu Verfügung. Innerhalb der
219 jeweiligen Gruppen kann mittel `dc:for-each` der jeweilige Unterdatensatz
220 realisiert werden.
221
222 Zur Verdeutlichung folgendes Beispiel:
223
224 +-------+-----------+
225 +Marke +Bezeichnung+
226 +=======+===========+
227 +Ferrari+Testarossa +
228 +-------+-----------+
229 +Volvo +V40 +
230 +-------+-----------+
231 +Volvo +780 +
232 +-------+-----------+
233 +Ferrari+F40 +
234 +-------+-----------+
235 +VW +Käfer +
236 +-------+-----------+
237
238 .. code:: xml
239
240 <marken>
241 <dc:group expr="$Marke">
242 <marke name="{dc:group-key()}">
243 <dc:for-each>
244 <bezeichnung name="$Bezeichnung"/>
245 </dc:for-each>
246 </marke>
247 </dc:group>
248 </marken>
249
250 Dies führt zu folgender Ausgabe:
251
252 .. code:: xml
253
254 <marken>
255 <marke name="Ferrari">
256 <bezeichnung name="F40"/>
257 <bezeichnung name="Testarossa"/>
258 </marke>
259 <marke name="Volvo">
260 <bezeichnung name="V40"/>
261 <bezeichnung name="780"/>
262 </marke>
263 <marke name="VW">
264 <bezeichnung name="Käfer"/>
265 </marke>
266 </marken>
203 267
204 Datensätze auffalten 268 Datensätze auffalten
205 ~~~~~~~~~~~~~~~~~~~~ 269 ~~~~~~~~~~~~~~~~~~~~
206 270
207 ``dc:for-each`` Realisieren eines Datensatzes 271 ``dc:for-each`` Realisieren eines Datensatzes

http://dive4elements.wald.intevation.org