0

PDF ファイルの生成に使用される XSL-FO を出力する XSLT スタイルシートがあります。今週の予約を返しますが、平日ごとにグループ化された PDF ファイルに予約を印刷したいと考えています。予約が属する平日を除いて、すべて正常に機能します。

私の問題を説明するために、生成した PDF ファイルのスクリーンショットを作成しました。

ウィークリーBプラン

写真からわかるように、最初の 3 件の予約は 2012 年 12 月 25 日のものです。投稿したコードに likeを入れると、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>
4

1 に答える 1

0

for-each-group を使用して日付別にグループ化する

<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>
于 2012-12-30T13:12:32.600 に答える