Tobi: XSL-FO: Tabellenumbruch auf nächste Seite

Beitrag lesen

Du hast recht. Mit document anstatt "erste" taucht der header nur noch auf der ersten Seite auf. Mir leuchtet auch ein warum. Allerdings fehlt auf den nachfolgenden Seiten nun noch der kleinere Header. Dieser taucht dann 11 Seiten weiter hinten wieder auf, wenn die komplette Tabelle nochmals dargestellt wird.

Ich kann mir denken wie das funktionieren soll, kann mir aber nicht vorstellen wie ich das umsetzten soll.

Also, der <fo:page-sequence-master master-name="document"> fungiert jetzt als Vorlage für das gesammte Dokument. Hier wird die Seitenfolge festgelegt. Also brauche ich doch für jede Seite (die erste und die restlichen) jeweils eine Vorlage. In diesen Vorlagen sollte eigentlich nur der Header stehen, und die Tabelle sollte ausgegliedert werden, sonst ist klar dass die Tabelle doppelt auftaucht (da ja in jeder Vorlage die Tabelle drinsteht).

Kann ich die Tabelle in document Schreiben und die verschiedenen Header in erste und restliche ausgliedern (und zwar nur die header) ? Und dann in document auf die Header verweisen?

Habe das jetzt mal folgendermassen versucht, aber jetzt tauchen die Header gar nicht mehr auf:

fo:layout-master-set
  <fo:simple-page-master master-name="erste" page-width="210mm" page-height="297mm">
   <fo:region-body region-name="xsl-region-body" margin-top="63mm" margin-bottom="1cm"/>
   <fo:region-before region-name="xsl-region-before" margin-left="1cm"/>
  </fo:simple-page-master>

<fo:simple-page-master master-name="restliche" page-width="210mm" page-height="297mm">
   <fo:region-body region-name="xsl-region-body" margin-top="25mm" margin-bottom="1cm"/>
   <fo:region-before region-name="xsl-region-before" margin-left="1cm"/>
  </fo:simple-page-master>

<fo:page-sequence-master master-name="document">
   <fo:single-page-master-reference page-position="first" master-reference="erste"/>
   <fo:repeatable-page-master-reference page-position="rest" master-reference="restliche"/>
  </fo:page-sequence-master>
 </fo:layout-master-set>

<fo:page-sequence master-reference="document">
  <fo:flow flow-name="xsl-region-body">
    <fo:table border-style="solid" border-width="1pt">
    <fo:table-column border-style="solid" border-width="1pt"/>
    <fo:table-column border-style="solid" border-width="1pt"/>
    <fo:table-column border-style="solid" border-width="1pt"/>
    <fo:table-column border-style="solid" border-width="1pt"/>
    <fo:table-column border-style="solid" border-width="1pt" background-color="grey"/>
    <fo:table-column border-style="solid" border-width="1pt" background-color="grey"/>
    <fo:table-column border-style="solid" border-width="1pt" background-color="grey"/>
    <fo:table-column border-style="solid" border-width="1pt"/>
    <fo:table-column border-style="solid" border-width="1pt"/>
    <fo:table-column border-style="solid" border-width="1pt"/>
    <fo:table-column border-style="solid" border-width="1pt"/>
    <fo:table-column border-style="solid" border-width="1pt"/>
    <fo:table-column border-style="solid" border-width="1pt"/>
    <fo:table-column border-style="solid" border-width="1pt"/>
    <fo:table-column border-style="solid" border-width="1pt"/>

fo:table-header
     <fo:table-row background-color="black" color="white">
      <xsl:for-each select="xml/tableheader/tableheadercol">
       <fo:table-cell border-style="solid" border-width="1pt">
        <fo:block font-weight="bold"><xsl:value-of select="name"/></fo:block>
       </fo:table-cell>
      </xsl:for-each>
     </fo:table-row>
    </fo:table-header>

fo:table-body
     <xsl:for-each select="xml/body/bodyrow">
      fo:table-row
       <xsl:for-each select="bodycol">
       fo:table-cell
        fo:block<xsl:value-of select="name"/></fo:block>
       </fo:table-cell>
       </xsl:for-each>
      </fo:table-row>
     </xsl:for-each>
    </fo:table-body>

</fo:table>
  </fo:flow>
 </fo:page-sequence>

<fo:page-sequence master-reference="erste">
  <fo:static-content flow-name="xsl-region-before">
   <fo:block margin-left="5mm" margin-bottom="5mm" margin-top="10mm" font-size="28pt" font-weight="bold">
    <fo:external-graphic src="pix/globe_50.GIF" margin-right="3mm"/><xsl:value-of select="xml/bigpageheader/h1"/>
   </fo:block>
   <fo:block margin-left="22mm" margin-bottom="3mm" font-size="12pt" font-weight="bold">
    <fo:inline color="rgb(0,100,255)"><xsl:value-of select="xml/bigpageheader/sub1"/></fo:inline>
   </fo:block>
   <fo:block margin-left="22mm" margin-bottom="5mm" font-size="12pt">
    <fo:inline color="rgb(0,100,255)"><xsl:value-of select="xml/bigpageheader/sub2"/></fo:inline>
   </fo:block>
   <fo:block margin-left="22mm" font-size="12pt">
    <fo:inline color="rgb(0,100,255)"><xsl:value-of select="xml/bigpageheader/sub3"/></fo:inline>
   </fo:block>
   <fo:block margin-left="22mm" font-size="12pt">
    <fo:inline color="rgb(0,100,255)"><xsl:value-of select="xml/bigpageheader/sub4"/></fo:inline>
   </fo:block>
  </fo:static-content>
 </fo:page-sequence>

<fo:page-sequence master-reference="restliche">
  <fo:static-content flow-name="xsl-region-before">
   <fo:block margin-left="5mm" margin-top="10mm" font-size="10pt" font-weight="bold">
    <fo:external-graphic src="pix/globe_20.gif" margin-right="33mm"/>
    <xsl:value-of select="xml/smallpageheader/sub1"/>
   </fo:block>
   <fo:block margin-left="44mm" margin-bottom="3mm" font-size="10pt">
    <xsl:value-of select="xml/smallpageheader/sub2"/> fo:page-number/
   </fo:block>
  </fo:static-content>
 </fo:page-sequence>

</fo:root>
</xsl:template>

</xsl:stylesheet>