2012-12-23 2 views
0

PDF 파일을 생성하는 데 사용되는 XSL-FO를 출력하는 XSLT 스타일 시트가 있습니다. 현재 주 예약을 반환하고 평일에 그룹화 된 PDF 파일로 예약을 인쇄하려고합니다. 예약이 속한 주중을 제외한 모든 것이 잘 작동합니다. 내 문제를 설명하기 위해.fo 파일이 예상대로 생성되지 않습니다.

, 내 생성 된 PDF 파일의 스크린 샷을 만들었습니다 : 당신이 그림에서 볼 수 있듯이, 처음 세 개의 예약이 25.Dezember.2012에 속하는

WeeklyBPlan

. 내가 게시 한 코드에 xsl:for-each을 넣으면 각 예약에 평일이 표시됩니다.

xsl:for-each을 테이블 본문에 넣으면 예약이 26.dezember 또는 27. dezember에 속하는지 여부에 상관없이 모든 예약이 25.dezember에 할당됩니다. 내가 뭘 잘못하고 있는지 모르겠다. 예약으로 평일을 올바르게 인쇄하려면 어떻게해야합니까? 날짜 별를위한 각 그룹 그룹에

<xsl:template match="/"> 

    <fo:root> 

     <!-- defines the layout master --> 
     <fo:layout-master-set> 
      <fo:simple-page-master master-name="first" 
            page-height="29.7cm" 
            page-width="21cm" 
            margin-top="1cm" 
            margin-bottom="2cm" 
            margin-left="2cm" 
            margin-right="2cm"> 
       <fo:region-body margin-top="3cm" margin-bottom="1.5cm"/> 

       <fo:region-before region-name="kopf" extent="3cm"/> 
       <fo:region-after region-name="fuss" extent="1.5cm"/> 
      </fo:simple-page-master> 

      <fo:simple-page-master master-name="quer" 
        page-width="29.7cm" 
        page-height="21cm" 
        margin-top="1cm" 
        margin-bottom="2cm" 
        margin-left="2cm" 
        margin-right="2cm"> 
       <fo:region-body margin-top="1cm" margin-bottom="1.5cm" /> 

       <fo:region-before region-name="kopf" extent="1cm"/> 
       <fo:region-after region-name="fuss" extent="0.5cm"/> 

      </fo:simple-page-master> 
     </fo:layout-master-set> 



     <!-- starts actual layout --> 
     <fo:page-sequence master-reference="quer"> 

      <fo:static-content flow-name="kopf"> 
       <fo:block font-weight="bold" text-align="center" font-family="Arial" font-size="18pt"> 
        <xsl:text>Test</xsl:text> 
       </fo:block> 

      </fo:static-content> 

      <fo:static-content flow-name="fuss"> 
       <fo:block border-bottom-width="thin" border-bottom-style="solid" 
       border-bottom-color="black" font-weight="bold" text-align="right" font-family="Arial" font-size="9pt"> 
        erstellt am: 
        <xsl:value-of select="lfsExtension:FormatDateTime(.//Erstellt, 'dd.MM.yy HH:mm')"/> 
        <xsl:text> Seite: </xsl:text><fo:page-number/>/<fo:page-number-citation ref-id="lastBlock"/> 
       </fo:block> 
      </fo:static-content> 


      <fo:flow flow-name="xsl-region-body"> 

       <!--this defines a title level 1 --> 

       <xsl:for-each select=".//WeeklyBPlan" > 

        <fo:block 


          line-height="24pt" 
          space-after.optimum="15pt" 
          padding-top="3pt"> 
         <xsl:value-of select=".//WEEKDAY" /> 
        </fo:block> 


       <!-- table start --> 
       <fo:table table-layout="fixed" border="solid" border-collapse="collapse" border-width="0.5pt"> 
        <fo:table-column column-width="25mm"/> 
        <fo:table-column column-width="12mm"/> 
        <fo:table-column column-width="20mm"/> 
           <fo:table-column column-width="50mm"/> 
        <fo:table-column column-width="20mm"/> 
        <fo:table-column column-width="25mm"/> 
           <fo:table-column column-width="10mm"/> 
        <fo:table-column column-width="30mm"/> 
        <fo:table-column column-width="35mm"/> 
        <fo:table-column column-width="35mm"/> 
        <fo:table-header> 
         <fo:table-row> 
          <fo:table-cell> 
           <fo:block background-color="grey" 
         color="white" text-align="center">Raum</fo:block> 
          </fo:table-cell> 
          <fo:table-cell> 
           <fo:block background-color="grey" 
         color="white" text-align="center">Zeit</fo:block> 
          </fo:table-cell> 
          <fo:table-cell> 
           <fo:block background-color="grey" 
         color="white" text-align="center">Abteilung</fo:block> 
          </fo:table-cell> 
              <fo:table-cell> 
           <fo:block background-color="grey" 
         color="white" text-align="center">Thema</fo:block> 
          </fo:table-cell> 
              <fo:table-cell> 
           <fo:block background-color="grey" 
         color="white" text-align="center">Mieter</fo:block> 
          </fo:table-cell> 
              <fo:table-cell> 
           <fo:block background-color="grey" 
         color="white" text-align="center">Tel.-Nr</fo:block> 
          </fo:table-cell> 
              <fo:table-cell> 
           <fo:block background-color="grey" 
         color="white" text-align="center">PAnz</fo:block> 
          </fo:table-cell> 
          <fo:table-cell> 
          <fo:block background-color="grey" 
         color="white" text-align="center">Bestuhlung</fo:block> 
          </fo:table-cell> 
              <fo:table-cell> 
           <fo:block background-color="grey" 
         color="white" text-align="center">Bemerkung</fo:block> 
          </fo:table-cell> 
              <fo:table-cell> 
           <fo:block background-color="grey" 
         color="white" text-align="center">Ausstattung</fo:block> 
          </fo:table-cell> 
          </fo:table-row> 
         <fo:table-row> 
         </fo:table-row> 
        </fo:table-header> 
        <fo:table-body> 

          <fo:table-row> 
           <fo:table-cell border-right-width="0.5pt" border-right-style="solid" border-bottom-width="0.5pt" border-bottom-style="solid" padding-right="6pt" padding-left="6pt" > 
            <fo:block font-family="Arial" font-size="9pt" padding="2pt"> 
             <xsl:value-of select=".//Raum" /> 
            </fo:block> 
           </fo:table-cell> 
           <fo:table-cell border-right-width="0.5pt" border-right-style="solid" border-bottom-width="0.5pt" border-bottom-style="solid"> 
            <fo:block font-family="Arial" font-size="9pt" padding="2pt" text-align="center"> 
             <xsl:value-of select=".//Zeit" /> 
            </fo:block> 
           </fo:table-cell> 
           <fo:table-cell border-right-width="0.5pt" border-right-style="solid" border-bottom-width="0.5pt" border-bottom-style="solid"> 
            <fo:block font-family="Arial" font-size="9pt" padding="2pt" text-align="center"> 
             <xsl:value-of select=".//Abteilung" /> 
            </fo:block> 
           </fo:table-cell> 
           <fo:table-cell border-right-width="0.5pt" border-right-style="solid" border-bottom-width="0.5pt" border-bottom-style="solid" padding-left="6pt" padding-right="6pt"> 

             <fo:block font-family="Arial" font-size="9pt" padding="2pt" wrap-option="no-wrap" > 
             <xsl:value-of select=".//Thema" /> 
             </fo:block> 

           </fo:table-cell> 
           <fo:table-cell border-right-width="0.5pt" border-right-style="solid" border-bottom-width="0.5pt" border-bottom-style="solid"> 
           <fo:block font-family="Arial" font-size="9pt" padding="2pt" text-align="center"> 
            <xsl:value-of select=".//Mieter" /> 
           </fo:block> 
           </fo:table-cell> 
           <fo:table-cell border-right-width="0.5pt" border-right-style="solid" border-bottom-width="0.5pt" border-bottom-style="solid"> 

           <fo:block font-family="Arial" font-size="9pt" padding="2pt" text-align="center"> 
            <xsl:value-of select=".//Mieter_Tel" /> 
           </fo:block> 

           </fo:table-cell> 
           <fo:table-cell border-right-width="0.5pt" border-right-style="solid" border-bottom-width="0.5pt" border-bottom-style="solid"> 
           <fo:block font-family="Arial" font-size="9pt" padding="2pt" text-align="center"> 
            <xsl:value-of select=".//Personen" /> 
           </fo:block> 
           </fo:table-cell> 
           <fo:table-cell border-right-width="0.5pt" border-right-style="solid" border-bottom-width="0.5pt" border-bottom-style="solid"> 
           <fo:block font-family="Arial" font-size="9pt" padding="2pt" text-align="center"> 
            <xsl:value-of select=".//Bestuhlung" /> 
           </fo:block> 
           </fo:table-cell> 
           <fo:table-cell padding-left="8pt" border-right-style="solid" border-bottom-width="0.5pt" border-right-width="0.5pt" border-bottom-style="solid" > 
           <fo:block font-family="Arial" font-size="9pt" padding="2pt"> 
            <xsl:value-of select=".//Bemerkung" /> 
           </fo:block> 
           </fo:table-cell> 
           <fo:table-cell padding-left="6pt" padding-right="6pt" border-bottom-width="0.5pt" border-bottom-style="solid"> 
           <fo:block font-family="Arial" font-size="9pt" padding="2pt"> 
            <xsl:value-of select=".//Ausstattung" /> 
           </fo:block> 
           </fo:table-cell> 
           </fo:table-row> 


        </fo:table-body> 
        </fo:table> 
        <!-- table end --> 


       </xsl:for-each> 


       <fo:block id="lastBlock"/> 
      </fo:flow> 




     </fo:page-sequence> 

    </fo:root> 

</xsl:template> 

답변

0

사용

<xsl:for-each-group select=".//WeeklyBPlan" group-by="/WEEKDAY"> 
<fo:block line-height="24pt" space-after.optimum="15pt" 
         padding-top="3pt"> 
        <xsl:value-of select="current-grouping-key()" /> 
       </fo:block> 
    //table header here 
    <xsl:for-each select="current-group()"> 
     // populate table row 
    </xsl:for-each> 
</xsl:for-each-group> 
관련 문제