2013-03-14 2 views
0

현재 인보이스 생성에 Apache-FOP을 사용하려고합니다. <fo:retrieve-marker/><fo:marker/>을 사용하면 모든 페이지에 대해 부분합을 만들 수 있습니다.Apache-FOP - <fo : retrieve-marker />로 검색 한 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'를 생성 할 수 있습니다. –

+0

내 대답보기. XSL-FO를 만들기 위해 XSLT를 사용했지만, 내가 한 것은 XSLT에서 숫자를 계산하는 것이 었습니다. – bjoernhaeuser

답변

1

확인. 내가 물었던 것은 가능하지 않은 것 같습니다. 나는이 문제를 해결하기 위해 무슨 짓을

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

내 송장의 모든 위치가 지금 중간 합계를 보유하고 있다는 것입니다 : 내가 전에 XSLT와 함께 중간 합계를 계산 한 무슨 짓을. 따라서 계산 및 형식 지정은 프로그래밍 언어 (이 경우 java)에 달려 있습니다.

내 마커 정의는 이제 다음과 같습니다

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

그래서 모든 것이 지금 잘 작동합니다.

도움 주셔서 감사합니다.