« Return to Thread: Currency format in a PDF

Re: Currency format in a PDF - another question concerning cents portion

by Chawla :: Rate this Message:

Reply to Author | View in Thread

My code which is responsible for displaying unti price is given below :
<fo:table-cell><fo:block></fo:block></fo:table-cell>
<fo:table-cell xsl:use-attribute-sets="table.cell5"> <fo:block xsl:use-attribute-sets="form_data1">
<xsl:value-of  select="UNIT_PRICE"/>
</fo:block> </fo:table-cell>

So, I have to manipulate this code in such a way that instead of displaying ,45 or .45, it should display 0,45 or 0.45 but 0 should not be appended in case when unit price is like 1.26 or 3.45..etc etc. How can I incorporate this condition in the above code?

Regards,
Sumir

Hi,

What i want is if unit price is coming as ,33 or .33 in the output, instead it should come 0,33 or 0.33 in the output. How can I pad 0 before , or . ?

Regards,
Sumir
dahepe wrote:
Hi,

actually I have no idea of what exactly you are trying to do with your code.
But if your only problem is to get a decimal point instead of the comma to
separate the decimal place of the number, i'd have a look at the example on
http://www.w3schools.com/xsl/el_decimal-format.asp and adapt it to your
needs:

<xsl:decimal-format name="us"
decimal-separator="." grouping-separator=","/>
 
<xsl:template match="/">
<xsl:value-of
select="format-number(26825.8, '#.###,00', 'us')"/>
</xsl:template>

Haven't tried it but it should do the trick, if you want to call it a trick...

Regards

Am Dienstag 02 Dezember 2008 08:05:30 schrieb Chawla:
> Hi,
>
> I am facing the same issue. Instead of 1,70 or 0,33..i want 1.70 or 0.33
> respectively as my output.
> I dont know what is wrong with my code. Please suggest.
>
>
>                       <xsl:choose>
>
>                       <xsl:when test="(UNIT_PRICE,1,1 > 1) and
> (substring-before(UNIT_PRICE,',') > 0)">
>                                       <fo:table-cell
> xsl:use-decimal-format="euro2"> <fo:table-cell
> xsl:use-attribute-sets="table.cell5">  <fo:block
> xsl:use-attribute-sets="form_data1">
>                                                       <xsl:value-of
> select="format-number(substring-before(UNIT_PRICE,','),'#.###','euro2')"/>,
><xsl:if test="(substring(substring-after(UNIT_PRICE,','),3,1)) >
> 4"><xsl:value-of
> select="(substring(substring-after(UNIT_PRICE,','),1,5))"/></xsl:if>
>
> <xsl:if test="(substring(substring-after(UNIT_PRICE,','),3,1))
> =''"><xsl:value-of
> select="(substring(substring-after(UNIT_PRICE,','),1,5))"/></xsl:if>
>
> <xsl:if test="(substring(substring-after(UNIT_PRICE,','),3,1)) =
> 1"><xsl:value-of
> select="(substring(substring-after(UNIT_PRICE,','),1,5))"/></xsl:if>
>
> <xsl:if test="(substring(substring-after(UNIT_PRICE,','),3,1)) =
> 2"><xsl:value-of
> select="(substring(substring-after(UNIT_PRICE,','),1,5))"/></xsl:if>
>
> <xsl:if test="(substring(substring-after(UNIT_PRICE,','),3,1)) =
> 3"><xsl:value-of
> select="(substring(substring-after(UNIT_PRICE,','),1,5))"/></xsl:if>
>
> <xsl:if test="(substring(substring-after(UNIT_PRICE,','),3,1)) =
> 4"><xsl:value-of
> select="(substring(substring-after(UNIT_PRICE,','),1,5))"/></xsl:if>
>
> <xsl:if test="(substring(substring-after(UNIT_PRICE,','),2,1)) =
> ''"><xsl:value-of
> select="((substring(substring-after(UNIT_PRICE,','),1,1))-(substring(substr
>ing-after(UNIT_PRICE,','),1,1)))"/></xsl:if>
>
> </fo:block>
>                                       </fo:table-cell>
>                                      </fo:table-cell>
>                               </xsl:when>
>                                  <xsl:when
test="(substring(UNIT_PRICE,1,1)=',')">
>                                       <fo:table-cell
> xsl:use-attribute-sets="table.cell5">  <fo:block
> xsl:use-attribute-sets="form_data1">
>                                                 <xsl:value-of  select="UNIT_PRICE"/>
>                                                </fo:block>
>                                       </fo:table-cell>
>                               </xsl:when>
>                               <!--changed , to . in the following xsl
value-of for SCR PO-503 -->
>                          <xsl:when test="(UNIT_PRICE,1,1 > 1) and
> (substring-after(UNIT_PRICE,'.') > 0)">
>                                       <fo:table-cell
> xsl:use-decimal-format="euro2"> <fo:table-cell
> xsl:use-attribute-sets="table.cell5">  <fo:block
> xsl:use-attribute-sets="form_data1">
>                                                        <xsl:value-of
> select="format-number(substring-before(UNIT_PRICE,'.'),'#.###','euro2')"/>,
><xsl:if test="(substring(substring-after(UNIT_PRICE,'.'),3,1)) >
> 4"><xsl:value-of
> select="(substring(substring-after(UNIT_PRICE,'.'),1,5))"/></xsl:if>
>
> <xsl:if test="(substring(substring-after(UNIT_PRICE,'.'),3,1))
> =''"><xsl:value-of
> select="(substring(substring-after(UNIT_PRICE,'.'),1,5))"/></xsl:if>
>
> <xsl:if test="(substring(substring-after(UNIT_PRICE,'.'),3,1)) =
> 1"><xsl:value-of
> select="(substring(substring-after(UNIT_PRICE,'.'),1,5))"/></xsl:if>
>
> <xsl:if test="(substring(substring-after(UNIT_PRICE,'.'),3,1)) =
> 2"><xsl:value-of
> select="(substring(substring-after(UNIT_PRICE,'.'),1,5))"/></xsl:if>
>
> <xsl:if test="(substring(substring-after(UNIT_PRICE,'.'),3,1)) =
> 3"><xsl:value-of
> select="(substring(substring-after(UNIT_PRICE,'.'),1,5))"/></xsl:if>
>
> <xsl:if test="(substring(substring-after(UNIT_PRICE,'.'),3,1)) =
> 4"><xsl:value-of
> select="(substring(substring-after(UNIT_PRICE,'.'),1,5))"/></xsl:if>
>
> <xsl:if test="(substring(substring-after(UNIT_PRICE,'.'),2,1)) =
> ''"><xsl:value-of
> select="((substring(substring-after(UNIT_PRICE,'.'),1,1))-(substring(substr
>ing-after(UNIT_PRICE,'.'),1,1)))"/></xsl:if>
>
> </fo:block>
>
> </fo:table-cell>
>                                      </fo:table-cell>
>                               </xsl:when>
>                     <xsl:when test="(UNIT_PRICE,1,1 > 1 ) and
> (substring-after(UNIT_PRICE,',') ='') ">
>                                       <fo:table-cell
> xsl:use-decimal-format="euro"> <fo:table-cell
> xsl:use-attribute-sets="table.cell5">  <fo:block
> xsl:use-attribute-sets="form_data1">
>                                       <xsl:value-of
> select="format-number(UNIT_PRICE,'#,###','euro')"/>
>                                               </fo:block>
>                                       </fo:table-cell>
>                                        </fo:table-cell>
>                               </xsl:when>
>
> Thanks,
> Sumir
>

 « Return to Thread: Currency format in a PDF