<?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:import href="pageComponents_html.xsl" />
<!--In diesem Stylesheet können Sie individuelle templates unterbringen,
  die in ihrer Präzedenz das normale Stylesheet 
  pageComponents_html.xsl überragt. --> 
<xsl:import href="pageComponents_html_final.xsl" />
<xsl:import href="resultset_html.xsl" />
<xsl:decimal-format name="German" grouping-separator="." NaN="" zero-digit ="0" decimal-separator="," />
    <xsl:template match="/">
        <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
            <fo:layout-master-set>
                 <fo:simple-page-master master-name="first"
                     page-height="200mm" page-width="300mm"
                     margin-top="10mm" margin-bottom="10mm"
                     margin-left="8mm" margin-right="8mm">

                     <fo:region-body
                       margin-top="0mm" margin-bottom="20mm"
                       margin-left="0mm" margin-right="0mm"/>
		       <fo:region-before extent="10mm"/>
                     <fo:region-after extent="10mm"/>
                 </fo:simple-page-master>
		 <fo:simple-page-master master-name="rest"
                     page-height="200mm" page-width="300mm"
                     margin-top="10mm" margin-bottom="10mm"
                     margin-left="8mm" margin-right="8mm">

                     <fo:region-body
                       margin-top="0mm" margin-bottom="20mm"
                       margin-left="0mm" margin-right="0mm"/>
		       <fo:region-before extent="10mm"/>
                     <fo:region-after extent="10mm"/>
                 </fo:simple-page-master>
		 
		 <fo:page-sequence-master master-name="sequence">
		     <fo:repeatable-page-master-alternatives>
		     <fo:conditional-page-master-reference master-reference="first"
		    />
		     <fo:conditional-page-master-reference master-reference="rest"
		     page-position="rest" />
		     </fo:repeatable-page-master-alternatives>
                 </fo:page-sequence-master>
             </fo:layout-master-set>
             <fo:page-sequence master-name="sequence" master-reference="sequence">
<fo:static-content flow-name="xsl-region-after">
<fo:block text-align="center" font-size="12pt">Seite <fo:page-number /> von <fo:page-number-citation ref-id="endofdoc" />
</fo:block>
</fo:static-content>
               <fo:flow flow-name="xsl-region-body">

	       <fo:block font-family="serif" line-height="20pt" font-size="20pt" font-weight="bolder"  color="rgb(0,0,255)" margin-bottom="20mm" text-align="end">
<fo:external-graphic src="../webapps/superx/images/logo.gif" /></fo:block>
<xsl:if test="/ergebnisse/makro/@id !=''">
<fo:block font-family="sans-serif" line-height="20pt" font-size="20pt" font-weight="bolder" margin-bottom="20mm">
<xsl:value-of select="/ergebnisse/makro/name" />
</fo:block>
</xsl:if>
<xsl:for-each select="ergebnisse/ergebnis/ergebniselement">
<xsl:choose>
<xsl:when test="@typ='image'">
<!-- klappt noch nciht<img>
<xsl:attribute name="src"><xsl:value-of select="@url" /></xsl:attribute>
</img>
<hr/>-->
<xsl:text>

</xsl:text>
</xsl:when>
<xsl:when test="@typ='tabelle'">

<fo:block font-family="sans-serif" line-height="48pt" font-size="20pt" font-weight="bold" color="rgb(0,0,255)"  space-after="10mm">
<xsl:value-of select="../maskenname" /></fo:block>
<xsl:call-template name="legende_fo" />

<!--<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 border="solid" border-collapse="collapse" table-layout="fixed"><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 != ''" >
<!--Im Applet ist die Breite definiert als Mulitplikator von einem Schriftzeichen (em).
In FOP ist 1em=ca.20pt, d.h. um zur Schriftgröße 12pt zu kommen, wird Faktor benutzt.--> 
<xsl:variable name="spbreite"><xsl:value-of select="@width * (12 div 20)" />
</xsl:variable>
<xsl:value-of select="concat($spbreite,'em')" />

</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+1)" />
</xsl:attribute>
</fo:table-column> 
</xsl:for-each>
<fo:table-header>
<!--Spaltenüberschriften: zunächst wird geprüft, ob Spaltenüberschriften verknüpft werden sollen -->
<xsl:variable name="spanned_cols"> 
<xsl:for-each select="sqlerg/headers/header">
<xsl:if test="contains(wert,'\000')"> 
    <xsl:text>true</xsl:text>
</xsl:if>
</xsl:for-each>
</xsl:variable>
<xsl:choose>
<xsl:when test="contains($spanned_cols,'true')"> 
<xsl:variable name="headers_str">
<xsl:for-each select="sqlerg/headers/header">
<xsl:value-of select="concat('^',wert)" />
</xsl:for-each>
</xsl:variable>
<!--Zurückgegeben werden html-<tr>-Tags -->

<!-- xsl:value-of select="HtmlUtils:headers2xslfo($headers_str)" disable-output-escaping="yes"/ -->
</xsl:when>
<xsl:otherwise>
<!--Normale headers-->
<fo:table-row>
<xsl:for-each select="sqlerg/headers/header">
<xsl:call-template name="foheader">
    <xsl:with-param name="derwert" select="wert" />
    </xsl:call-template>
    
    <xsl:text>
</xsl:text>
</xsl:for-each>
</fo:table-row>
</xsl:otherwise>
</xsl:choose>

</fo:table-header>
<fo:table-body>
<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:when>
<xsl:otherwise>
<xsl:text>
Nicht unterstützter Ergebnistyp </xsl:text><xsl:value-of select="@type" />
</xsl:otherwise>
</xsl:choose>
<xsl:call-template name="datensatzzaehler" />

</xsl:for-each>
<!-- Ende des Dokuments zur Ermitttlung der Seitenzahl -->
<fo:table  table-layout="fixed" border-collapse="collapse" border="solid">
<fo:table-column column-width="2cm"/>
<fo:table-column column-width="2cm" number-columns-repeated="2"/>
<fo:table-header>
<fo:table-row>
<fo:table-cell padding="6pt"
border="1pt solid blue"
background-color="silver"
number-columns-spanned="3">
<fo:block text-align="center" font-weight="bold">
Header
</fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-header>

<fo:table-body>
<fo:table-row>
<fo:table-cell padding="6pt"
border="1pt solid blue"
background-color="silver"
number-rows-spanned="2">
<fo:block text-align="end" font-weight="bold">
Bereich 2 Zeilen
</fo:block>
</fo:table-cell>
<fo:table-cell padding="6pt" border="0.5pt solid black">
<fo:block> 1 : 1 </fo:block>
</fo:table-cell>
<fo:table-cell padding="6pt" border="0.5pt solid black">
<fo:block> 1 : 2 </fo:block>
</fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell padding="6pt" border="0.5pt solid black">
<fo:block> 2 : 1 </fo:block>
</fo:table-cell>
<fo:table-cell padding="6pt" border="0.5pt solid black">
<fo:block> 2 : 2 </fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>
<fo:block id="endofdoc" />
</fo:flow>
</fo:page-sequence>
</fo:root>
</xsl:template>
<xsl:template name="spalte">
<fo:table-cell border-width="0.1mm" border-style="solid"  padding-left="0.5mm"   padding-right="0.5mm">
<xsl:if test="starts-with(f_name,'next') = false">
<fo:block font-size="10pt" font-family="serif" line-height="9pt" space-before.optimum="6pt" space-after.optimum="6pt"
 language="en" hyphenate="true">

    <xsl:choose>
      
	<xsl:when test="@typ='2' or @typ='8' or @typ='3'"> <!-- DecimalFormat -->
		<xsl:attribute name="text-align">end</xsl:attribute>
		
		<xsl:value-of select="format-number(wert,'###.###.###.###.##0,00','German')" />
	</xsl:when>
	
	<xsl:when test="@typ='4'"> <!-- Integer -->
	<xsl:attribute name="text-align">end</xsl:attribute>
		<!--<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:attribute name="text-align">start</xsl:attribute>
	<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>
	      </xsl:if>
          </fo:table-cell><xsl:text>
</xsl:text>
</xsl:template>
<xsl:template name="legende_fo">
<fo:block font-family="sans-serif" line-height="20pt" font-size="14pt" border-width="0.5mm" border-style="solid" border-color="gray" space-after="10mm">
<xsl:for-each select="../felder/feld">
	<xsl:if test="value !=''  and @varname != 'sort' and @varname != 'maxoffset'">

		<fo:inline>
		<xsl:choose>
		<xsl:when test="string-length(caption_short) &gt; 0 and caption_short != 'null'" >
		<![CDATA[]]><xsl:value-of select="caption_short" /><![CDATA[]]>
		</xsl:when>
		<xsl:otherwise>
		<xsl:value-of select="@varname" />
		</xsl:otherwise>
		</xsl:choose></fo:inline><fo:inline>:&#160;</fo:inline>
		<fo:inline font-style="italic" font-weight="bold">
		<xsl:if test="string-length(value_caption) &lt; 50">
			<![CDATA[]]><xsl:value-of select="value_caption" /><![CDATA[]]>
		</xsl:if>
		<xsl:if test="string-length(value_caption) &gt; 49">
			<![CDATA[]]><xsl:value-of select="substring(value_caption,0,50)" />...<![CDATA[]]>
		</xsl:if>
		;&#160;</fo:inline>
		
	</xsl:if>
	
</xsl:for-each>
Stand: <xsl:value-of select="../stand" />
</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:template name="foheader">
<xsl:param name="derwert" /> 
<fo:table-cell border-width="0.5mm" padding-left="1mm" border-style="solid"><xsl:text>
</xsl:text>
                                     <fo:block font-size="10pt" 
                                         font-weight="bold"
					  language="en" hyphenate="true">
                                         <xsl:variable name="header1"> 
	<xsl:choose>
		<xsl:when test="(contains(string($derwert),'\n'))">
		<xsl:value-of select="substring-before($derwert,'\n') "/>
		 <xsl:text>
</xsl:text>
		<xsl:value-of select="substring-after($derwert,'\n') "/>
		</xsl:when>
		<xsl:otherwise>
		<xsl:copy-of select="$derwert" />
		</xsl:otherwise>
	</xsl:choose>
	</xsl:variable>
	<xsl:variable name="header2"> 
	<xsl:choose>
		<xsl:when test="(contains(string($header1),'\n'))">
		<xsl:value-of select="substring-before($header1,'\n') "/>
		<xsl:text>
</xsl:text>
		<xsl:value-of select="substring-after($header1,'\n') "/>
		</xsl:when>
		<xsl:otherwise>
		<xsl:value-of select="$header1" />
		</xsl:otherwise>
	</xsl:choose>
	</xsl:variable>
	<xsl:choose>
		<xsl:when test="(contains(string($header2),'\000'))">
		<xsl:value-of select="substring-before($header2,'\000') "/>
		<xsl:text>
</xsl:text>
		<xsl:value-of select="substring-after($header2,'\000') "/>
		</xsl:when>
		<xsl:otherwise>
		<xsl:value-of select="$header2" />
		</xsl:otherwise>
	</xsl:choose><xsl:text>
</xsl:text>
</fo:block>
</fo:table-cell><xsl:text>
</xsl:text>

</xsl:template>
</xsl:stylesheet>