2013-03-14 57 views
0

我正在嘗試使用Apache-FOP生成發票。 使用<fo:retrieve-marker/><fo:marker/>我可以爲每個頁面創建小計。使用<fo:retrieve-marker />檢索Apache-FOP-howto格式編號

我想正確地格式化這個數字:

  <fo:block text-align="right"> 
      <fo:retrieve-marker retrieve-class-name="invoice-subtotal" retrieve-boundary="page" retrieve-position="last-starting-within-page"/> 
      </fo:block> 

只是給了我平淡總和(如12045),要我想有是120,45。這可能只是Apache-FOP 1.1?檢索這個數字是在XSLT處理器之後完成的,所以我不能使用XSLT格式化函數。

感謝您的幫助。

+1

您是否在使用XSLT創建XSL-FO?如果是這樣,你在創建'fo:marker'時不能使用'format-number()'?如果你需要格式化和非格式化,你可以創建2'fo:marker's。 – 2013-03-14 19:10:28

+0

請參閱下面的答案。我確實使用XSLT來創建XSL-FO,但我也是在計算XSLT中的數字。 – bjoernhaeuser 2013-03-15 10:11:20

回答

1

好的。我所問的似乎不可能。我所做之前計算中間和使用XSLT:

<fo:marker marker-class-name="invoice-subtotal"><xsl:value-of select="itemTax/grossPriceRaw + sum(preceding::itemTax/grossPriceRaw)"/></fo:marker> 

我所做的要解決的問題是,在我的發票每一個位置現在持有的中間和值。所以計算和格式化取決於編程語言(在這種情況下是java)。

我的標記定義現在看起來是這樣的:

<fo:marker marker-class-name="invoice-subtotal"><xsl:value-of select="intSum"/></fo:marker> 

所以現在的一切工作正常。

感謝您的幫助。