Benutzer-Werkzeuge

Webseiten-Werkzeuge


export:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
export:start [2019/01/07 17:34]
pbudenz [Individuelle Datenbankabfragen für den Export]
export:start [2020/01/15 06:36] (aktuell)
pbudenz
Zeile 25: Zeile 25:
 Der grundsätzliche vorgeschlagene Aufbau einer XSL-Exportvorlage ist folgender (die anzupassenden Bereiche sind farbig markiert): Der grundsätzliche vorgeschlagene Aufbau einer XSL-Exportvorlage ist folgender (die anzupassenden Bereiche sind farbig markiert):
  
-<HTML>+<code>
 <?xml version="​1.0"​ encoding="​ISO-8859-1"?>​ <?xml version="​1.0"​ encoding="​ISO-8859-1"?>​
 <​xsl:​stylesheet xmlns:​xsl="​http://​www.w3.org/​1999/​XSL/​Transform"​ version="​1.0"> ​ <​xsl:​stylesheet xmlns:​xsl="​http://​www.w3.org/​1999/​XSL/​Transform"​ version="​1.0"> ​
Zeile 46: Zeile 46:
  
 </​xsl:​stylesheet>​ </​xsl:​stylesheet>​
-</HTML>+</code>
  
 Für den Export wird die gleiche XML-Datenstruktur generiert wie für die entsprechenden Druckerzeugnisse,​ so dass in der Export-Vorlage die gleichen Zugriffspfade auf die XML-Struktur wie in den XSL-Dateien der PDF-Druckerzeugnisse verwendet werden können. Um alle für den Export verfügbaren Daten anzuzeigen kann ebenso wie bei der Erstellung von XSl-Dateien für den Druck das System Log verwendet werden. Für den Export wird die gleiche XML-Datenstruktur generiert wie für die entsprechenden Druckerzeugnisse,​ so dass in der Export-Vorlage die gleichen Zugriffspfade auf die XML-Struktur wie in den XSL-Dateien der PDF-Druckerzeugnisse verwendet werden können. Um alle für den Export verfügbaren Daten anzuzeigen kann ebenso wie bei der Erstellung von XSl-Dateien für den Druck das System Log verwendet werden.
Zeile 52: Zeile 52:
 Beispiel einer einfachen Exportvorlage für einen Report: Beispiel einer einfachen Exportvorlage für einen Report:
  
-<HTML>+<code>
 <?xml version="​1.0"​ encoding="​ISO-8859-1"?>​ <?xml version="​1.0"​ encoding="​ISO-8859-1"?>​
 <​xsl:​stylesheet xmlns:​xsl="​http://​www.w3.org/​1999/​XSL/​Transform"​ version="​1.0"> ​ <​xsl:​stylesheet xmlns:​xsl="​http://​www.w3.org/​1999/​XSL/​Transform"​ version="​1.0"> ​
Zeile 73: Zeile 73:
  
 </​xsl:​stylesheet>​ </​xsl:​stylesheet>​
-</HTML>+</code>
  
 ===== Individuelle Datenbankabfragen für den Export ===== ===== Individuelle Datenbankabfragen für den Export =====
Zeile 86: Zeile 86:
 Die Verwendung beider Funktionen soll das folgende Beispiel verdeutlichen:​ Die Verwendung beider Funktionen soll das folgende Beispiel verdeutlichen:​
  
-<HTML>+<code>
 <?xml version="​1.0"​ encoding="​ISO-8859-1"?>​ <?xml version="​1.0"​ encoding="​ISO-8859-1"?>​
 <​xsl:​stylesheet xmlns:​xsl="​http://​www.w3.org/​1999/​XSL/​Transform"​ version="​1.0"​ xmlns:​ext="​http://​ihb-eg.de/​xsl"> ​ <​xsl:​stylesheet xmlns:​xsl="​http://​www.w3.org/​1999/​XSL/​Transform"​ version="​1.0"​ xmlns:​ext="​http://​ihb-eg.de/​xsl"> ​
Zeile 118: Zeile 118:
  
 </​xsl:​stylesheet>​ </​xsl:​stylesheet>​
-</HTML>+</code>
  
 Diese Exportvorlage wird für eine XML-Struktur genutzt, die nur Matrikelnummern und Namen von Studierenden liefert, aber keine weiteren Angaben zur Person oder deren Studienverlauf. Der Export soll nun aber zusätzlich um das Geburtsdatum und die belegten Studienabschnittsversionen ergänzt werden. Diese Exportvorlage wird für eine XML-Struktur genutzt, die nur Matrikelnummern und Namen von Studierenden liefert, aber keine weiteren Angaben zur Person oder deren Studienverlauf. Der Export soll nun aber zusätzlich um das Geburtsdatum und die belegten Studienabschnittsversionen ergänzt werden.
  
 Zunächst ist es erforderlich,​ dass im Stylesheet-Tag (hier in der 2. Zeile) die Angabe für den Namespace "​ext"​ mit angegeben wird. Dies erfolgt durch den zusätzlichen Parameter ​ Zunächst ist es erforderlich,​ dass im Stylesheet-Tag (hier in der 2. Zeile) die Angabe für den Namespace "​ext"​ mit angegeben wird. Dies erfolgt durch den zusätzlichen Parameter ​
-<HTML>​xmlns:​ext="​http://​ihb-eg.de/​xsl"</​HTML>+<code>​xmlns:​ext="​http://​ihb-eg.de/​xsl"</​code>
 Ohne diesen Paramter können die Funktionen nicht verwendet werden bzw. es führt zu einer Fehlermeldung. Ohne diesen Paramter können die Funktionen nicht verwendet werden bzw. es führt zu einer Fehlermeldung.
  
 Da die Sql-Abfragen umfangreicher sein können und auch darin auf Daten der XML-Struktur verwiesen werden kann, ist es ratsam, dass für jede Abfrage eine eigene XSL-Variable definiert wird. Dies erfolgt im Beispiel für zwei Abfragen in den folgenden Zeilen: Da die Sql-Abfragen umfangreicher sein können und auch darin auf Daten der XML-Struktur verwiesen werden kann, ist es ratsam, dass für jede Abfrage eine eigene XSL-Variable definiert wird. Dies erfolgt im Beispiel für zwei Abfragen in den folgenden Zeilen:
    
-<HTML>+<code>
 <​xsl:​variable name="​sql1">​select gdatum from student where matrnr=<​xsl:​value-of select="​nMatrNr"/></​xsl:​variable>​ <​xsl:​variable name="​sql1">​select gdatum from student where matrnr=<​xsl:​value-of select="​nMatrNr"/></​xsl:​variable>​
  
Zeile 140: Zeile 140:
  and studentver.studabver = studabver.studabver  and studentver.studabver = studabver.studabver
 </​xsl:​variable>​ </​xsl:​variable>​
-</HTML>+</code>
  
 Die erste Abfrage **sql1** liefert das Geburtsdatum der Studierenden. Hier ist auch zu sehen, wie diese Abfrage mit der Matrikelnummer aus der XML-Struktur parametrisiert wird. Die Ausgabe des Geburtsdatums erfolgt nun mit der Funktion ext:​SqlSingle:​ Die erste Abfrage **sql1** liefert das Geburtsdatum der Studierenden. Hier ist auch zu sehen, wie diese Abfrage mit der Matrikelnummer aus der XML-Struktur parametrisiert wird. Die Ausgabe des Geburtsdatums erfolgt nun mit der Funktion ext:​SqlSingle:​
  
-<HTML>+<code>
 <​xsl:​value-of select="​ext:​SqlSingle($sql1)"/>​ <​xsl:​value-of select="​ext:​SqlSingle($sql1)"/>​
-</HTML>+</code>
  
 Die zweite Abfrage **sql2** ermittelt die Bezeichnungen der belegten Studienabschnitte und Versionen. Damit selektiert diese Abfrage sowohl mehrere Attribute, wie auch mehrere mögliche Datensätze als Resultat. Daher wird hierfür die Funktion ext:Sql verwendet, die z.B. folgendes Resultat wiederum als XML-Struktur liefert (dies wird zur Kontrolle auch im [[sysemlog:​start|System Log]] ausgegeben):​ Die zweite Abfrage **sql2** ermittelt die Bezeichnungen der belegten Studienabschnitte und Versionen. Damit selektiert diese Abfrage sowohl mehrere Attribute, wie auch mehrere mögliche Datensätze als Resultat. Daher wird hierfür die Funktion ext:Sql verwendet, die z.B. folgendes Resultat wiederum als XML-Struktur liefert (dies wird zur Kontrolle auch im [[sysemlog:​start|System Log]] ausgegeben):​
  
-<HTML>+<code>
 <sql> <sql>
         <row>         <row>
Zeile 161: Zeile 161:
         </​row>​         </​row>​
 </​sql>​ </​sql>​
-</HTML>+</code>
  
 Über diese XML-Struktur kann nun mit einer for-each-Schleife iteriert und die gewünschten Attribute ausgegeben werden (im Beispiel mit Semikolon getrennt). Dabei ist zu beachten, dass sich die for-each-Schleife bereits auf das row-Tag bezieht, d.h. der Zugriff auf untergeordneten Attribute kann ohne Pfadangabe erfolgen. Über diese XML-Struktur kann nun mit einer for-each-Schleife iteriert und die gewünschten Attribute ausgegeben werden (im Beispiel mit Semikolon getrennt). Dabei ist zu beachten, dass sich die for-each-Schleife bereits auf das row-Tag bezieht, d.h. der Zugriff auf untergeordneten Attribute kann ohne Pfadangabe erfolgen.
  
-<HTML>+<code>
 <​xsl:​for-each select="​ext:​Sql($sql2)">;<​xsl:​value-of select="​bez"/>​ (<​xsl:​value-of select="​version"/>​)</​xsl:​for-each>​ <​xsl:​for-each select="​ext:​Sql($sql2)">;<​xsl:​value-of select="​bez"/>​ (<​xsl:​value-of select="​version"/>​)</​xsl:​for-each>​
-</HTML>+</code>
  
 ===== Export durchführen ===== ===== Export durchführen =====
export/start.txt · Zuletzt geändert: 2020/01/15 06:36 von pbudenz