2016-04-19 53 views
-1

我的查詢是
當用戶選擇的語言爲德語,數量應該顯示在格式 - 千位分隔符應, 小數點分隔符應。更改數字格式爲每個參數傳中碧玉報告

當選擇的語言是英語時,數字應該以格式 - 千分隔符應該顯示。 (標準) 小數點分隔符應該是(標準)

我們可以根據參數變化來更改數字格式嗎?

+0

如果您使用iReport工具來設計碧玉。那麼有格式化數字,日期等選項 –

+0

爲什麼PLSQL標籤爲此? –

回答

0

只需更改iReport中特定字段的屬性設置即可完成,或者您可以直接在xml文件中更改。

你可以從下面的代碼refrance。

<?xml version="1.0" encoding="UTF-8"?> 
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports 
http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" 
name="format_as_current" pageWidth="595" pageHeight="842" 
whenNoDataType="AllSectionsNoDetail" columnWidth="555" leftMargin="20" 
rightMargin="20" topMargin="20" bottomMargin="20"> 
<parameter name="intParam" class="java.lang.Integer"> 
    <defaultValueExpression><![CDATA[12345678]]></defaultValueExpression> 
</parameter> 
<parameter name="strParam" class="java.lang.String"> 
    <defaultValueExpression><![CDATA["12345678.95"]]></defaultValueExpression> 
</parameter> 
<title> 
    <band height="79" splitType="Stretch"> 
     <textField> 
      <reportElement x="137" y="18" width="291" height="20"/> 
      <textElement/> 
      <textFieldExpression><![CDATA[new java.text.DecimalFormat("$ #,##0.00").format($P{intParam})]]></textFieldExpression> 
     </textField> 
     <textField> 
      <reportElement x="137" y="48" width="291" height="20"/> 
      <textElement/> 
      <textFieldExpression><![CDATA[new java.text.DecimalFormat("$ #,##0.00").format(Double.valueOf($P{strParam} != null && $P{strParam}.length() > 0 ? Double.valueOf($P{strParam}) : 0))]]></textFieldExpression> 
     </textField> 
    </band> 
</title> 

+0

heyy Deepesh,但它不適用於一種語言,數字格式將根據語言運行 – spruha

+0

對不起,但它唯一可能的,如果你可以寫在Java或任何其他語言的邏輯和插件碧玉。 –

0

對於任何報告,有一個參數名爲$ P {} REPORT_LOCALE您 可以使用此參數來定義數字格式。使用第三個參數,可以將其稱爲$ P {Number_format},您可以根據區域設置來定義此格式。