Compare commits

..

No commits in common. 'e9d33449f332b88c77ebb27c99fe54837fda8362' and '1ef9a41ca29f059f8a738c838ac647ee2db5a86a' have entirely different histories.

  1. 56
      superx/xml/rpta_templates.xsl

56
superx/xml/rpta_templates.xsl

@ -426,8 +426,6 @@ isIgnorePagination="{$isIgnorePagination}" > @@ -426,8 +426,6 @@ isIgnorePagination="{$isIgnorePagination}" >
<xsl:param name="ergebniselementOrdnr" />
<xsl:param name="colId" />
<xsl:param name="colCount" />
<xsl:param name="isLastVisibleColumInRow" />
<xsl:variable name="x"><xsl:text>0</xsl:text>
<xsl:for-each select="/ergebnisse/ergebnis/ergebniselement[@ordnr=$ergebniselementOrdnr]/sqlerg/headers/header[ @width &gt; 0 and not(starts-with(f_name,'hidden')) and not(starts-with(f_name,'next')) and @id &lt; $colId ]">
<xsl:variable name="previousColumnWidth">
@ -438,7 +436,6 @@ isIgnorePagination="{$isIgnorePagination}" > @@ -438,7 +436,6 @@ isIgnorePagination="{$isIgnorePagination}" >
<xsl:with-param name="colId" select="@id" />
<xsl:with-param name="colCount" select="$colCount"/>
<xsl:with-param name="previousX" select="0"/>
<xsl:with-param name="isLastVisibleColumInRow" select="''"/>
</xsl:call-template>
</xsl:variable>
@ -458,17 +455,14 @@ isIgnorePagination="{$isIgnorePagination}" > @@ -458,17 +455,14 @@ isIgnorePagination="{$isIgnorePagination}" >
<xsl:param name="colId" />
<xsl:param name="colCount" />
<xsl:param name="previousX" />
<xsl:param name="isLastVisibleColumInRow" />
<xsl:variable name="defbreite"><xsl:value-of select="sum(/ergebnisse/ergebnis/ergebniselement[@ordnr=$ergebniselementOrdnr]/sqlerg/headers/header[ @width &gt; 0 and not(starts-with(f_name,'hidden')) and not(starts-with(f_name,'next')) ]/@width )" /></xsl:variable>
<xsl:variable name="ndefbreite"><xsl:value-of select="count(/ergebnisse/ergebnis/ergebniselement[@ordnr=$ergebniselementOrdnr]/sqlerg/headers/header[ @width = '' and not(starts-with(f_name,'hidden')) and not(starts-with(f_name,'next'))])" /></xsl:variable>
<xsl:variable name="gesamtbreite"><xsl:value-of select="$defbreite+($ndefbreite* $std_spaltenbreite)" /></xsl:variable>
<xsl:variable name="width"><xsl:value-of select="/ergebnisse/ergebnis/ergebniselement[@ordnr=$ergebniselementOrdnr]/sqlerg/headers/header[@id=$colId]/@width"/></xsl:variable>
<xsl:comment><xsl:value-of select="concat('defbreite=',$defbreite)" /></xsl:comment>
<xsl:choose>
<xsl:when test="$isLastVisibleColumInRow='+' or ($colCount - 1) =$colId">
<!-- letzte Spalte wird immer vom rechten Seitenrand minus vorherige Spalten gerechnet,
weil es Rundungsfehler bei der Spaltenbreite geben kann.-->
<xsl:when test="($colCount - 1) =$colId ">
<!-- letzte Spalte -->
<xsl:value-of select="$druckbreite - $previousX"/>
</xsl:when>
<xsl:when test="$width != ''">
@ -649,7 +643,7 @@ weil es Rundungsfehler bei der Spaltenbreite geben kann.--> @@ -649,7 +643,7 @@ weil es Rundungsfehler bei der Spaltenbreite geben kann.-->
<xsl:variable name="colCount">
<xsl:choose>
<xsl:when test="($rowCounter - 1)=$rowCount">
<xsl:value-of select="$currentRowColCount"/>
<xsl:value-of select="$totalColCount"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$totalColCount"/>
@ -660,17 +654,7 @@ weil es Rundungsfehler bei der Spaltenbreite geben kann.--> @@ -660,17 +654,7 @@ weil es Rundungsfehler bei der Spaltenbreite geben kann.-->
<xsl:for-each select="th" >
<xsl:variable name="colId"><xsl:value-of select="position()-1" /></xsl:variable>
<xsl:if test="@isHidden='false'">
<xsl:variable name="isLastVisibleColumInRow">
<xsl:call-template name="getLastVisibleColumInRow">
<xsl:with-param name="currentColId" select="$colId" />
<xsl:with-param name="remainingRows" select="$rowCount - ($rowCounter + 1)" />
</xsl:call-template>
</xsl:variable>
<xsl:comment><xsl:text>colId=</xsl:text><xsl:value-of select="$colId"/>
<xsl:text>
isLastVisibleColumInRow=</xsl:text><xsl:value-of select="$isLastVisibleColumInRow"/>
</xsl:comment>
<xsl:comment><xsl:text>colId=</xsl:text><xsl:value-of select="$colId"/></xsl:comment>
<xsl:variable name="columnX">
<xsl:call-template name="getColumnX">
<xsl:with-param name="druckbreite" select="$druckbreite"/>
@ -678,7 +662,6 @@ isLastVisibleColumInRow=</xsl:text><xsl:value-of select="$isLastVisibleColumInRo @@ -678,7 +662,6 @@ isLastVisibleColumInRow=</xsl:text><xsl:value-of select="$isLastVisibleColumInRo
<xsl:with-param name="ergebniselementOrdnr" select="$ordnr"/>
<xsl:with-param name="colId" select="$colId" />
<xsl:with-param name="colCount" select="$colCount"/>
<xsl:with-param name="isLastVisibleColumInRow" select="$isLastVisibleColumInRow"/>
</xsl:call-template>
</xsl:variable>
<xsl:comment><xsl:text>columnX=</xsl:text><xsl:value-of select="$columnX"/></xsl:comment>
@ -692,7 +675,6 @@ isLastVisibleColumInRow=</xsl:text><xsl:value-of select="$isLastVisibleColumInRo @@ -692,7 +675,6 @@ isLastVisibleColumInRow=</xsl:text><xsl:value-of select="$isLastVisibleColumInRo
<xsl:with-param name="colId" select="$colId" />
<xsl:with-param name="colCount" select="$colCount"/>
<xsl:with-param name="previousX" select="$columnX"/>
<xsl:with-param name="isLastVisibleColumInRow" select="$isLastVisibleColumInRow"/>
</xsl:call-template>
</xsl:variable>
@ -718,22 +700,10 @@ isLastVisibleColumInRow=</xsl:text><xsl:value-of select="$isLastVisibleColumInRo @@ -718,22 +700,10 @@ isLastVisibleColumInRow=</xsl:text><xsl:value-of select="$isLastVisibleColumInRo
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="computedWidth">
<!--wenn eine Spalte die letzte sichtbare ist, wird der berechnete Wert
genommen. Wenn nicht, wird mit colspan multipliziert.-->
<xsl:choose>
<xsl:when test="$isLastVisibleColumInRow='+'">
<xsl:value-of select="$columnWidth"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$columnWidth * $colspan"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<textField isStretchWithOverflow="true">
<reportElement style="TableColumnHeader" mode="Opaque" stretchType="ContainerHeight"
x="{$columnX}" y="{$y_offset+( $rowCounter * $zeilenhoehe )}" width="{$computedWidth}" height="{$zeilenhoehe*$rowspan}" />
x="{$columnX}" y="{$y_offset+( $rowCounter * $zeilenhoehe )}" width="{$columnWidth * $colspan}" height="{$zeilenhoehe*$rowspan}" />
<textFieldExpression><xsl:text>"</xsl:text>
<xsl:call-template name="newline_to_backslash_n">
<xsl:with-param name="string" select="."/>
@ -1130,20 +1100,4 @@ genommen. Wenn nicht, wird mit colspan multipliziert.--> @@ -1130,20 +1100,4 @@ genommen. Wenn nicht, wird mit colspan multipliziert.-->
<xsl:text disable-output-escaping="yes"><![CDATA[ +"Datenstand: "+ $F{standdatum} + "; " + "Erstellt: "+ DATEFORMAT( TODAY(), "dd.MM.YYYY")]]></xsl:text></textFieldExpression>
</textField>
</xsl:template>
<xsl:template name="getLastVisibleColumInRow">
<xsl:param name="currentColId" />
<xsl:param name="remainingRows" />
<!--ermittelt ob eine Spalte die letzte sichtbare ist
bei verknüpften Spalten ist die letzte Header-Zeile immer relevant, egal ob sichtbar oder nicht.
Zurückgegeben werden die Anzahl der sichtbaren Zellen als "+",
d.h. genau ein "+" bedeutet, dass es die letzte Spalte ist.
-->
<xsl:for-each select="../th">
<xsl:variable name="nr" select="position()" />
<xsl:if test="$nr &gt; $currentColId and (@isHidden='false' or $remainingRows=0)">
<xsl:text>+</xsl:text>
</xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>

Loading…
Cancel
Save