2013-10-03 62 views
0

我必須使用JasperReports但我很努力獲取數據。
這裏是我的Java方面的聲明:在參數中使用字段值DefaultValueExpression

Map<String, List<TransactionBean>> shCredits = new HashMap<String, List<TransactionBean>>(); 

在宣佈的HashMap,我店的客戶,誰擁有交易。

我通過這個HashMap中該報告由客戶掛牌交易組。

這裏是JR方:

<parameter name="shareHolderCreditBeans" class="java.util.HashMap"> 
    <defaultValueExpression><![CDATA[$P{REPORT_PARAMETERS_MAP}.get("shCreditBeans")]]></defaultValueExpression> 
</parameter> 
<parameter name="credits" class="java.util.List"> 
    <defaultValueExpression><![CDATA[$P{shareHolderCreditBeans}.get("12")]]></defaultValueExpression> 
</parameter> 
... 
<field name="clientId" class="java.lang.String"> 
    <fieldDescription><![CDATA[clientId]]></fieldDescription> 
</field> 

我的問題是,如果我在「學分」參數使用硬編碼鍵(「12」),我能得到客戶交易清單。我也能夠使用在文本框的clientId領域,而不是像一個關鍵:

$P{shareHolderCreditBeans}.get($F{clientId}) 

如果我這樣做是與空返回。

這是正確的方法,使用字段作爲參數的關鍵?

請讓我知道,如果我不夠清晰有關說明這個問題

回答

0

最後,我可以用鑄造解決這個問題:

<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource((java.util.List)($P{shareHolderCreditBeans}.get($F{clientId})))]]></dataSourceExpression> 
相關問題