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.
357 lines
14 KiB
357 lines
14 KiB
<?xml version="1.0" encoding="UTF-8"?> |
|
<xsl:stylesheet version="1.0" |
|
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> |
|
<xsl:import href="xsl_functions.xsl" /> |
|
<xml:output method="xml" /> |
|
<xsl:template match="/"> |
|
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
|
xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" |
|
language="groovy" |
|
pageWidth="842" pageHeight="595" |
|
orientation="Landscape" |
|
columnWidth="782" |
|
leftMargin="16" rightMargin="16" topMargin="14" bottomMargin="16"> |
|
<xsl:attribute name="name"><xsl:value-of select="/ergebnisse/ergebnis/maskenname"/></xsl:attribute> |
|
<xsl:text> |
|
</xsl:text> |
|
<property name="ireport.zoom" value="1.0"/><xsl:text> |
|
</xsl:text> |
|
<property name="ireport.x" value="0"/><xsl:text> |
|
</xsl:text> |
|
<property name="ireport.y" value="0"/><xsl:text> |
|
</xsl:text> |
|
<queryString language="xPath"><xsl:text><![CDATA[/ergebnisse/ergebnis/ergebniselement/sqlerg/row]]></xsl:text> |
|
</queryString><xsl:text> |
|
</xsl:text> |
|
<!-- nun die Felder: zuerst der Berichtsname--> |
|
<field name="Berichtsname" class="java.lang.String"> |
|
<xsl:text> |
|
</xsl:text> |
|
<fieldDescription> |
|
<xsl:choose> |
|
<xsl:when test="/ergebnisse/@isMakro='true'"> |
|
<xsl:text><![CDATA[/ergebnisse/makro/name]]></xsl:text></xsl:when> |
|
<xsl:otherwise><xsl:text><![CDATA[/ergebnisse/ergebnis[ @ordnr='0']/maskenname]]></xsl:text></xsl:otherwise> |
|
</xsl:choose> |
|
</fieldDescription><xsl:text> |
|
</xsl:text> |
|
</field><xsl:text> |
|
</xsl:text> |
|
<!-- dann der Erläuterungstext--> |
|
<field name="Erlaeuterung" class="java.lang.String"> |
|
<xsl:text> |
|
</xsl:text> |
|
<fieldDescription><xsl:text><![CDATA[/ergebnisse/ergebnis[ @ordnr='0']/explanation]]></xsl:text></fieldDescription><xsl:text> |
|
</xsl:text> |
|
</field><xsl:text> |
|
</xsl:text> |
|
|
|
<field name="REPORT_HEADING_INSTITUTION" class="java.lang.String"> |
|
<xsl:text> |
|
</xsl:text> |
|
<fieldDescription><xsl:text><![CDATA[/ergebnisse/generalinfo/REPORT_HEADING_INSTITUTION]]></xsl:text></fieldDescription><xsl:text> |
|
</xsl:text> |
|
</field><xsl:text> |
|
</xsl:text> |
|
|
|
<field name="REPORT_HEADING_URL" class="java.lang.String"> |
|
<xsl:text> |
|
</xsl:text> |
|
<fieldDescription><xsl:text><![CDATA[/ergebnisse/generalinfo/REPORT_HEADING_URL]]></xsl:text></fieldDescription><xsl:text> |
|
</xsl:text> |
|
</field><xsl:text> |
|
</xsl:text> |
|
|
|
<field name="REPORT_LOGO_FILE" class="java.lang.String"> |
|
<xsl:text> |
|
</xsl:text> |
|
<fieldDescription><xsl:text><![CDATA[/ergebnisse/generalinfo/REPORT_LOGO_FILE]]></xsl:text></fieldDescription><xsl:text> |
|
</xsl:text> |
|
</field><xsl:text> |
|
</xsl:text> |
|
|
|
<field name="REPORT_HEADING_ADRESS" class="java.lang.String"> |
|
<xsl:text> |
|
</xsl:text> |
|
<fieldDescription><xsl:text><![CDATA[/ergebnisse/generalinfo/REPORT_HEADING_ADRESS]]></xsl:text></fieldDescription><xsl:text> |
|
</xsl:text> |
|
</field><xsl:text> |
|
</xsl:text> |
|
|
|
<field name="REPORT_EMAIL" class="java.lang.String"> |
|
<xsl:text> |
|
</xsl:text> |
|
<fieldDescription><xsl:text><![CDATA[/ergebnisse/generalinfo/REPORT_EMAIL]]></xsl:text></fieldDescription><xsl:text> |
|
</xsl:text> |
|
</field><xsl:text> |
|
</xsl:text> |
|
|
|
<field name="REPORT_DOCUMENTATION_URL" class="java.lang.String"> |
|
<xsl:text> |
|
</xsl:text> |
|
<fieldDescription><xsl:text><![CDATA[/ergebnisse/generalinfo/REPORT_DOCUMENTATION_URL]]></xsl:text></fieldDescription><xsl:text> |
|
</xsl:text> |
|
</field><xsl:text> |
|
</xsl:text> |
|
|
|
<!-- dann die Tabellenspalten --> |
|
<xsl:for-each select="/ergebnisse/ergebnis/ergebniselement"> |
|
<xsl:variable name="ordnr"><xsl:value-of select="@ordnr" /></xsl:variable> |
|
<xsl:for-each select="sqlerg/complete_headers/header"> |
|
<xsl:variable name="jasperFieldname"> |
|
<xsl:call-template name="createJasperFieldname"> |
|
<xsl:with-param name="fieldName_orig" select="wert"/> |
|
</xsl:call-template> |
|
</xsl:variable> |
|
<xsl:variable name="fldPrefix"> |
|
<xsl:choose> |
|
<xsl:when test="/ergebnisse/@isMakro='true'"> |
|
<xsl:text>tab_</xsl:text><xsl:value-of select="$ordnr" /></xsl:when> |
|
<xsl:otherwise><xsl:text></xsl:text></xsl:otherwise> |
|
</xsl:choose> |
|
</xsl:variable> |
|
<field name="{concat($fldPrefix,$jasperFieldname)}"> |
|
<xsl:attribute name="class"><xsl:call-template name="getJavaType"> |
|
<xsl:with-param name="ordnr"><xsl:value-of select="$ordnr"/></xsl:with-param> |
|
<xsl:with-param name="col_id"><xsl:value-of select="@id"/></xsl:with-param></xsl:call-template></xsl:attribute> |
|
<xsl:text> |
|
</xsl:text> |
|
<fieldDescription><xsl:text><![CDATA[col[@id="]]></xsl:text> |
|
<xsl:value-of select="@id"/><xsl:text><![CDATA[" and wert!=""]]></xsl:text> |
|
<xsl:if test="/ergebnisse/@isMakro='true'"> |
|
<xsl:text><![CDATA[ and ../../../@ordnr=']]></xsl:text><xsl:value-of select="$ordnr" /><xsl:text>'</xsl:text> |
|
</xsl:if> |
|
<xsl:text><![CDATA[]/wert]]></xsl:text> |
|
</fieldDescription><xsl:text> |
|
</xsl:text> |
|
</field><xsl:text> |
|
</xsl:text> |
|
</xsl:for-each> |
|
</xsl:for-each> |
|
<!-- dann die Legende--> |
|
<xsl:for-each select="distinct-values(//ergebnisse/ergebnis/completefields/feld/@varname)"> |
|
<xsl:variable name="jasperFieldname"> |
|
<xsl:call-template name="createJasperFieldname"> |
|
<xsl:with-param name="fieldName_orig" select="."/> |
|
</xsl:call-template> |
|
</xsl:variable> |
|
<xsl:variable name="varname"> |
|
<xsl:value-of select="." /> |
|
</xsl:variable> |
|
<!-- zuerst Label --> |
|
<field name="{concat('legende_',$jasperFieldname,'_label')}" class="java.lang.String"> |
|
<xsl:text> |
|
</xsl:text> |
|
<fieldDescription><xsl:text><![CDATA[/ergebnisse/ergebnis/completefields/feld [@varname="]]></xsl:text><xsl:value-of select="$varname"/><xsl:text><![CDATA["]/@varname]]></xsl:text></fieldDescription><xsl:text> |
|
</xsl:text> |
|
</field><xsl:text> |
|
</xsl:text> |
|
<!--dann Wert--> |
|
<field name="{concat('legende_',$jasperFieldname,'_value')}" class="java.lang.String"> |
|
<xsl:text> |
|
</xsl:text> |
|
<fieldDescription><xsl:text><![CDATA[/ergebnisse/ergebnis/felder/feld [@varname="]]></xsl:text><xsl:value-of select="$varname"/><xsl:text><![CDATA["]/value_caption]]></xsl:text></fieldDescription><xsl:text> |
|
</xsl:text> |
|
</field><xsl:text> |
|
</xsl:text> |
|
|
|
</xsl:for-each> |
|
<!--Standatum und User:--> |
|
|
|
<field name="standdatum" class="java.lang.String"> |
|
<xsl:text> |
|
</xsl:text> |
|
<fieldDescription><xsl:text><![CDATA[/ergebnisse/ergebnis[ @ordnr='0']/stand]]></xsl:text></fieldDescription><xsl:text> |
|
</xsl:text> |
|
</field><xsl:text> |
|
</xsl:text> |
|
<field name="user" class="java.lang.String"> |
|
<xsl:text> |
|
</xsl:text> |
|
<fieldDescription><xsl:text><![CDATA[/ergebnisse/user]]></xsl:text></fieldDescription><xsl:text> |
|
</xsl:text> |
|
</field><xsl:text> |
|
</xsl:text> |
|
<background><xsl:text> |
|
</xsl:text> |
|
<band splitType="Stretch"/><xsl:text> |
|
</xsl:text> |
|
</background><xsl:text> |
|
</xsl:text> |
|
<!-- <detail><xsl:text> |
|
</xsl:text> |
|
<band height="290" splitType="Stretch"><xsl:text> |
|
</xsl:text> |
|
</band><xsl:text> |
|
</xsl:text> |
|
</detail><xsl:text> |
|
</xsl:text> --> |
|
|
|
<title> |
|
<band height="76"> |
|
<textField> |
|
<reportElement x="0" y="0" width="285" height="12"/> |
|
<textElement> |
|
<font fontName="Liberation Sans"/> |
|
</textElement> |
|
<textFieldExpression class="java.lang.String"><![CDATA[$F{REPORT_HEADING_INSTITUTION}]]></textFieldExpression> |
|
</textField> |
|
<textField> |
|
<reportElement x="0" y="20" width="285" height="12"/> |
|
<textElement> |
|
<font fontName="Liberation Sans"/> |
|
</textElement> |
|
<textFieldExpression class="java.lang.String"><![CDATA[$F{REPORT_HEADING_URL}]]></textFieldExpression> |
|
</textField> |
|
<textField> |
|
<reportElement x="0" y="44" width="303" height="18"/> |
|
<textElement> |
|
<font fontName="Liberation Sans" size="14" isBold="true"/> |
|
</textElement> |
|
<textFieldExpression class="java.lang.String"><![CDATA[$F{Berichtsname}]]></textFieldExpression> |
|
</textField> |
|
<textField> |
|
<reportElement x="24" y="62" width="100" height="10"/> |
|
<textElement> |
|
<font fontName="Liberation Sans" size="8"/> |
|
</textElement> |
|
<textFieldExpression class="java.lang.String"><![CDATA[$F{standdatum}]]></textFieldExpression> |
|
</textField> |
|
<staticText> |
|
<reportElement mode="Transparent" x="0" y="62" width="24" height="10" forecolor="#000000" backcolor="#FFFFFF"/> |
|
<textElement textAlignment="Left" verticalAlignment="Top" rotation="None" lineSpacing="Single" markup="none"> |
|
<font fontName="Liberation Sans" size="8" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfFontName="Liberation Sans" pdfEncoding="Cp1252" isPdfEmbedded="false"/> |
|
</textElement> |
|
<text><![CDATA[Stand:]]></text> |
|
</staticText> |
|
<image> |
|
<reportElement x="730" y="0" width="80" height="32"> |
|
<printWhenExpression><![CDATA[$F{REPORT_LOGO_FILE}!=null && !$F{REPORT_LOGO_FILE}.equals("") && !$F{REPORT_LOGO_FILE}.equals("@@REPORT_LOGO_FILE@@")]]></printWhenExpression> |
|
</reportElement> |
|
<imageExpression class="java.lang.String"><![CDATA["../"+$F{REPORT_LOGO_FILE}]]></imageExpression> |
|
</image> |
|
</band> |
|
</title> |
|
<detail> |
|
<band height="323" splitType="Stretch"/> |
|
</detail> |
|
<pageFooter> |
|
<band height="15"> |
|
<staticText> |
|
<reportElement mode="Transparent" x="0" y="3" width="89" height="12" forecolor="#000000" backcolor="#FFFFFF"/> |
|
<textElement textAlignment="Left" verticalAlignment="Top" rotation="None" lineSpacing="Single" markup="none"> |
|
<font fontName="Liberation Sans" size="10" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfFontName="Liberation Sans" pdfEncoding="Cp1252" isPdfEmbedded="false"/> |
|
</textElement> |
|
<text><xsl:text><![CDATA[Erzeugungsdatum:]]></xsl:text></text> |
|
</staticText> |
|
<textField pattern="dd.MM.yyy"> |
|
<reportElement mode="Transparent" x="89" y="3" width="96" height="12" forecolor="#000000" backcolor="#FFFFFF"/> |
|
<textElement textAlignment="Left" verticalAlignment="Top" rotation="None" lineSpacing="Single" markup="none"> |
|
<font fontName="Liberation Sans" size="10" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfFontName="Liberation Sans" pdfEncoding="Cp1252" isPdfEmbedded="false"/> |
|
</textElement> |
|
<textFieldExpression class="java.util.Date"><xsl:text><![CDATA[new java.util.Date()]]></xsl:text></textFieldExpression> |
|
</textField> |
|
<textField evaluationTime="Report" isBlankWhenNull="false"> |
|
<reportElement key="textField" x="770" y="3" width="39" height="12"/> |
|
<box> |
|
<topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> |
|
<leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> |
|
<bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> |
|
<rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> |
|
</box> |
|
<textElement> |
|
<font fontName="Liberation Sans"/> |
|
</textElement> |
|
<textFieldExpression class="java.lang.String"><xsl:text><![CDATA["" + $V{PAGE_NUMBER} + ""]]></xsl:text></textFieldExpression> |
|
</textField> |
|
<textField isBlankWhenNull="false"> |
|
<reportElement key="textField" x="676" y="3" width="94" height="12"/> |
|
<box> |
|
<topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> |
|
<leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> |
|
<bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> |
|
<rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> |
|
</box> |
|
<textElement textAlignment="Right"> |
|
<font fontName="Liberation Sans"/> |
|
</textElement> |
|
<textFieldExpression class="java.lang.String"><xsl:text><![CDATA["Seite " + $V{PAGE_NUMBER} + " von "]]></xsl:text></textFieldExpression> |
|
</textField> |
|
</band> |
|
</pageFooter> |
|
|
|
|
|
</jasperReport><xsl:text> |
|
</xsl:text> |
|
</xsl:template> |
|
<xsl:template name="getJavaType"> |
|
<xsl:param name="ordnr" /> |
|
<xsl:param name="col_id" /> |
|
<xsl:choose> |
|
<xsl:when test="count(/ergebnisse/ergebnis/ergebniselement[ @ordnr=$ordnr]/sqlerg/row)=0"> |
|
<xsl:text>java.lang.String</xsl:text> |
|
</xsl:when> |
|
<xsl:otherwise> |
|
<xsl:for-each select="/ergebnisse/ergebnis/ergebniselement[ @ordnr=$ordnr]/sqlerg/row [@no='0']/col [@id=$col_id]"> |
|
<!--Transformation: |
|
3=DecimalFormat |
|
4=integer |
|
-7=Boolean |
|
6=date |
|
8=timestamp |
|
9=time |
|
Default ist |
|
1=string--> |
|
<xsl:choose> |
|
|
|
<xsl:when test="@typ='3'"> <!-- DecimalFormat --> |
|
<xsl:text>java.lang.Double</xsl:text> |
|
</xsl:when> |
|
<xsl:when test="@typ='4'"> <!-- Integer --> |
|
<xsl:text>java.lang.Integer</xsl:text> |
|
</xsl:when> |
|
<xsl:when test="@typ='-7'"> |
|
<xsl:text>java.lang.Boolean</xsl:text> |
|
</xsl:when> |
|
<xsl:when test="@typ='6'"> |
|
<xsl:text>java.util.Date</xsl:text> |
|
</xsl:when> |
|
<xsl:when test="@typ='8'"> |
|
<xsl:text>java.lang.Timestamp</xsl:text> |
|
</xsl:when> |
|
<xsl:when test="@typ='9'"> |
|
<xsl:text>java.lang.Time</xsl:text> |
|
</xsl:when> |
|
<xsl:otherwise> |
|
<!--Typ=1 ist string und wird defaultmäßig behandelt --> |
|
<xsl:text>java.lang.String</xsl:text> |
|
</xsl:otherwise> |
|
</xsl:choose> |
|
</xsl:for-each> |
|
</xsl:otherwise> |
|
</xsl:choose> |
|
</xsl:template> |
|
<xsl:template name="createJasperFieldname"> |
|
<xsl:param name="fieldName_orig" /> |
|
<xsl:variable name="feldname_ohne_umbruch"> |
|
<xsl:call-template name="remove_linebreaksAndQuot"><xsl:with-param name="volltext"><xsl:value-of select="$fieldName_orig" /></xsl:with-param></xsl:call-template> |
|
</xsl:variable> |
|
<xsl:variable name="feldnameOhneBackslashN"> |
|
<xsl:call-template name="search_replace"> |
|
<xsl:with-param name="string"><xsl:value-of select="$feldname_ohne_umbruch" /></xsl:with-param> |
|
<xsl:with-param name="search"><xsl:text>\n</xsl:text></xsl:with-param> |
|
<xsl:with-param name="replace"><xsl:text> </xsl:text></xsl:with-param> |
|
</xsl:call-template> |
|
</xsl:variable> |
|
<xsl:call-template name="search_replace"> |
|
<xsl:with-param name="string"><xsl:value-of select="$feldnameOhneBackslashN" /></xsl:with-param> |
|
<xsl:with-param name="search"><xsl:text>\000</xsl:text></xsl:with-param> |
|
<xsl:with-param name="replace"><xsl:text> </xsl:text></xsl:with-param> |
|
</xsl:call-template> |
|
|
|
<!-- |
|
<xsl:call-template name="ohne_umlaut"> |
|
<xsl:with-param name="s1"><xsl:value-of select="$feldname_ohne_umbruch" /></xsl:with-param> |
|
</xsl:call-template>--> |
|
</xsl:template> |
|
</xsl:stylesheet>
|
|
|