You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
169 lines
5.6 KiB
169 lines
5.6 KiB
<?xml version="1.0" encoding="UTF-8"?> |
|
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" |
|
xmlns:fo="http://www.w3.org/1999/XSL/Format" |
|
version="1.0"> |
|
<xsl:decimal-format name="German" grouping-separator="." NaN="" zero-digit ="0" decimal-separator="," /> |
|
<xsl:template match="/ergebnis"> |
|
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"> |
|
<fo:layout-master-set> |
|
<fo:simple-page-master master-name="page" |
|
page-height="200mm" page-width="300mm" |
|
margin-top="10mm" margin-bottom="10mm" |
|
margin-left="20mm" margin-right="20mm"> |
|
|
|
<fo:region-body |
|
margin-top="0mm" margin-bottom="10mm" |
|
margin-left="0mm" margin-right="0mm"/> |
|
|
|
<fo:region-after extent="10mm"/> |
|
</fo:simple-page-master> |
|
</fo:layout-master-set> |
|
|
|
<fo:page-sequence master-reference="page"> |
|
<fo:flow flow-name="xsl-region-body"> |
|
<xsl:if test="/ergebnis/Makro/@tid !=''"> |
|
<fo:block font-family="sans-serif" line-height="20pt" font-size="20pt" font-weight="bolder" margin-bottom="20mm"> |
|
<xsl:value-of select="/ergebnis/Makro/@name" /> |
|
</fo:block> |
|
</xsl:if> |
|
<xsl:for-each select="tabelle"> |
|
<fo:block font-family="sans-serif" line-height="48pt" font-size="20pt" font-weight="bold" color="blue" margin-bottom="20mm"> |
|
<xsl:value-of select="maskenname" /></fo:block> |
|
<xsl:call-template name="legende" /> |
|
|
|
<fo:block font-family="sans-serif" line-height="26pt" font-size="14pt">Stand: <xsl:value-of select="stand" /></fo:block> |
|
<xsl:if test="errmsg !=''"> |
|
<fo:block font-family="sans-serif" line-height="20pt" font-size="20pt"> |
|
<xsl:copy-of select="errmsg" /></fo:block></xsl:if> |
|
|
|
<fo:table><xsl:text> |
|
</xsl:text> |
|
<xsl:for-each select="sqlerg/headers/header"><xsl:text> |
|
</xsl:text> |
|
<fo:table-column> |
|
<xsl:attribute name="column-width"> |
|
<xsl:choose> |
|
<xsl:when test="@width != ''" > |
|
<!--<xsl:value-of select="concat((@width*2),'mm')" />--> |
|
30mm |
|
</xsl:when> |
|
<xsl:otherwise> |
|
<xsl:value-of select="'auto'" /> |
|
</xsl:otherwise> |
|
</xsl:choose> |
|
</xsl:attribute> |
|
<xsl:attribute name="column-number"> |
|
<xsl:value-of select="@id" /> |
|
</xsl:attribute> |
|
</fo:table-column> |
|
</xsl:for-each> |
|
<fo:table-body> |
|
<fo:table-row> |
|
<xsl:for-each select="sqlerg/headers/header"> |
|
<fo:table-cell border-width="0.5mm" border-style="solid"><xsl:text> |
|
</xsl:text> |
|
<fo:block font-size="18pt" |
|
font-weight="bold"> |
|
<xsl:value-of select="wert" /><xsl:text> |
|
</xsl:text> |
|
</fo:block> |
|
</fo:table-cell><xsl:text> |
|
</xsl:text> |
|
</xsl:for-each> |
|
</fo:table-row> |
|
<xsl:for-each select="sqlerg/row"> |
|
<fo:table-row><xsl:text> |
|
</xsl:text> |
|
<xsl:for-each select="col"> |
|
<xsl:call-template name="spalte" /><xsl:text> |
|
</xsl:text> |
|
</xsl:for-each> |
|
</fo:table-row><xsl:text> |
|
</xsl:text> |
|
</xsl:for-each> |
|
</fo:table-body> |
|
</fo:table> |
|
</xsl:for-each> |
|
</fo:flow> |
|
</fo:page-sequence> |
|
</fo:root> |
|
</xsl:template> |
|
<xsl:template name="spalte"> |
|
<fo:table-cell border-width="0.5mm" border-style="solid"> |
|
<fo:block font-size="18pt"> |
|
|
|
<xsl:choose> |
|
|
|
<xsl:when test="@typ='2'"> <!-- DecimalFormat --> |
|
<!--<xsl:attribute name="class">decimal</xsl:attribute>--> |
|
|
|
<xsl:value-of select="format-number(wert,'###.###.###.###.##0,00','German')" /> |
|
</xsl:when> |
|
<xsl:when test="@typ='3'"> <!-- DecimalFormat --> |
|
<!--<xsl:attribute name="class">decimal</xsl:attribute>--> |
|
<!--<xsl:value-of select="wert" />--> |
|
<xsl:value-of select="format-number(wert,'###.###.###.###.##0,00','German')" /> |
|
</xsl:when> |
|
<xsl:when test="@typ='4'"> <!-- Integer --> |
|
<!--<xsl:attribute name="class">integer</xsl:attribute>--> |
|
<!--<xsl:value-of select="wert" />--> |
|
<xsl:value-of select="format-number(wert,'###.###.###.###.###','German')" /> |
|
</xsl:when> |
|
<xsl:otherwise> |
|
<!--Typ=1 ist string und wird defaultmäßig behandelt --> |
|
<xsl:choose> |
|
<xsl:when test="f_name='email'"> |
|
|
|
<xsl:value-of select="wert" /> |
|
</xsl:when> |
|
<xsl:when test="f_name='url'"> |
|
<!--<a target="_blank"><xsl:attribute name="href"><xsl:value-of select="wert" /></xsl:attribute>--> |
|
<xsl:value-of select="wert" /><!--</a>--> |
|
</xsl:when> |
|
<xsl:when test="f_name='nextmask'"> |
|
|
|
|
|
</xsl:when> |
|
<xsl:when test="f_name='nexttable'"> |
|
|
|
</xsl:when> |
|
<xsl:otherwise> |
|
<xsl:value-of select="wert" /> |
|
</xsl:otherwise> |
|
</xsl:choose> |
|
</xsl:otherwise> |
|
</xsl:choose> |
|
|
|
|
|
</fo:block> |
|
</fo:table-cell><xsl:text> |
|
</xsl:text> |
|
</xsl:template> |
|
<xsl:template name="legende"> |
|
<fo:block font-family="sans-serif" line-height="16pt" font-size="14pt" border-width="0.5mm" border-style="solid" border-color="gray" margin-bottom="40mm"> |
|
<xsl:for-each select="/ergebnis/felder/feld"> |
|
<xsl:if test="wert !=''"> |
|
|
|
<fo:inline><xsl:value-of select="wert/@varname" /></fo:inline><fo:inline>: </fo:inline> |
|
<fo:inline font-style="italic" font-weight="bold"> |
|
<xsl:if test="string-length(wert/caption) < 50"> |
|
<xsl:value-of select="wert/caption" /> |
|
</xsl:if> |
|
<xsl:if test="string-length(wert/caption) > 49"> |
|
<xsl:value-of select="substring(wert/caption,0,50)" />... |
|
</xsl:if> |
|
; </fo:inline> |
|
</xsl:if> |
|
</xsl:for-each> |
|
</fo:block> |
|
|
|
<xsl:for-each select="/ergebnis/felder/msgs/msg"> |
|
<xsl:if test="wert !=''"> |
|
<fo:block space-after="10mm" font-family="sans-serif" line-height="16pt" font-size="14pt"> |
|
<xsl:value-of select="wert" /> |
|
</fo:block> |
|
</xsl:if> |
|
</xsl:for-each> |
|
</xsl:template> |
|
</xsl:stylesheet> |
|
|
|
|