- PR -

FOPで作成される帳票の出力について

1
投稿者投稿内容
会議室デビュー日: 2007/04/17
投稿数: 3
投稿日時: 2007-04-17 11:32
はじめまして。私は現在仕事でFOPを使った帳票出力機能を担当している者です。
半角スペースや改行などのテンプレートについて
ここの過去記事をいろいろと参考にさせてもらいました。有難うございます。

そこで一つ質問があります。

症状
帳票が2ページ以上に渡り、改行して改ページとなるような場合帳票が出力されない

という事象が発生します。

以下のような場合です。

|----------|
|1ページ目  |
|ああ      |
|いうえ     |
|ここで改行  |
|_____ |

| ̄ ̄ ̄ ̄ ̄ |
|2ページ目  |
|に内容が   |
|渡る。     |
|         |
|__________|


ただ、このような場合に帳票が出力されないということで
はっきりと原因はわかりません。
どうやらFOP内部で無限ループしてしまうようです。

以下当該xslの内容です。

<!-- 改行を行うためのテンプレートとして InsertLineBreak を定義 -->
<xsl:template name="InsertLineBreak">
<xsl:param name="value" select="あ"/>
<xsl:choose>
<xsl:when test="contains($value,'')">
<xsl:value-of select="substring-before($value,'')"/>
<fo:block white-space-collapse="false">
</fo:block>
<xsl:call-template name="InsertLineBreak">
<xsl:with-param name="value" select="substring-after($value,'')"/>
</xsl:call-template>
</xsl:when>
</xsl:choose>
</xsl:template>
<!-- InsertLineBreak の定義終了 -->


<!-- InsertLineBreak を実際に適用する箇所 -->
<fo:block hyphenate="true">
<xsl:for-each select="XXXXXX"> <!-- XXXXXXは項目名です。 -->
<fo:inline font-size="10.0pt" font-family="MS 明朝" font-weight="bold">
<xsl:call-template name="InsertLineBreak">
<xsl:with-param name="value" select="concat(text(),'')">
<xsl:apply-templates />
</xsl:with-param>
</xsl:call-template>
</fo:inline>
</xsl:for-each>
</fo:block>
<!-- InsertLineBreak の適用おわり -->


お手数ですが、どなたかアドバイス頂けると助かります。
以上、よろしくお願いします。

[ メッセージ編集済み 編集者: 恥 編集日時 2007-04-17 11:39 ]

[ メッセージ編集済み 編集者: 恥 編集日時 2007-04-17 14:31 ]

[ メッセージ編集済み 編集者: 恥 編集日時 2007-04-17 15:54 ]
MMX
ぬし
会議室デビュー日: 2001/10/26
投稿数: 861
投稿日時: 2007-04-17 14:19
丸括弧の対応を確認、 ちゃんと した エディタ使ってます?
会議室デビュー日: 2007/04/17
投稿数: 3
投稿日時: 2007-04-17 15:52
引用:

MMXさんの書き込み (2007-04-17 14:19) より:
丸括弧の対応を確認、 ちゃんと した エディタ使ってます?



すみません。
編集しました。
1

スキルアップ/キャリアアップ(JOB@IT)