0

BI パブリッシャー用の RTF テンプレートの作成中に問題が発生しました。RTF テンプレートのヘッダー (MS Word ヘッダーではなく、start:bodyタグの上にあるものとして識別されるヘッダー) に表を表示しています。そのテーブルには 3 つの行があります。これらの行の 1 つを最初のページにのみ表示し、他のページには表示しない必要があります。

ページ番号を照会する方法が見つかりませんでした。そこで、次のようにフラグを使用しました (ここで、サフィックス _f は RTF フィールドを示します)。私のRTFファイルは次のようになります。

+---------------------------------------------------------------------------------+
¦ init_f ¦    Row to be shown on all the pages     ¦                              ¦
¦--------+-----------------------------------------+------------------------------¦
¦ if_f   ¦ Row to be shown on the first page only. ¦   end_if_f change_variable_f ¦
+---------------------------------------------------------------------------------+

<?start:body?>

other stuff

<?end body?>

どこ、

init_f

<?if: (xdoxslt:get_variable($_XDOCTX,'FLAG')!='NONFIRST')?><?xdoxslt:set_variable($_XDOCTX,'FLAG','FIRST')?><?end if?>

if_f

<?if: (xdoxslt:get_variable($_XDOCTX,'FLAG'))='FIRST'?>

end_if_f

<?end if?>

change_variable_f

<?xdoxslt:set_variable($_XDOCTX,'FLAG','NONFIRST')?>

しかし、すべてのページのすべての行が表示されます。変数「FLAG」の値が異なるページ間で保持されていないようです。私には、ヘッダーが一度生成され、すべてのページで同じヘッダーが使用されているようです。解決策は何ですか?

4

1 に答える 1

0

別のテンプレートを作成し、次のように呼び出します

<?call-template:tHEADER_VERSO?>
<?start:body?>
<?call-template:tHEADER_RECTO?>
<?for-each@section:XMLELEMENT?>
<?call-template:tDETAILS?>
<?end for-each?>
<?end body?>
<?call-template:tFOOTER?>

テンプレートを定義するには

<?template:tDetail?>
  text content
<?end template?>
于 2013-10-10T14:41:55.203 に答える