2014-02-07 22 views
2

是否可以在ChartCustomizer中獲取參數值(傳遞給JasperFillManager的fillReport方法)?如何在Jasper圖表定製器中獲取參數值?

實施例:

Map<String, Object> params = new HashMap<String, Object>(); 
params.put("SOME_PARAM", "some string"); 

JasperPrint jp = JasperFillManager.fillReport(jr, params, dataSource); 

然後,在自定義功能paramValue總是空:

public void customize(JFreeChart freeChart, JRChart jasperChart) { 
    String paramValue = (String)getParameterValue("SOME_PARAM"); // always null 
} 

預期結果:paramValue等於"some string";

實際結果:paramValue等於null

+0

java的代碼是正確的。 $ P {SOME_PARAM}是否顯示爲樂隊中的「某些字符串」,其中包含圖表? (創建文本字段並將其放在此樂隊中進行檢查) – sanBez

回答

0

方法getParameterValue是指圖表參數,它們與報表參數不一樣。 在設計中,你必須在表級別定義的參數:

  <categoryDataset> 
       <dataset> 
        <datasetRun subDataset="chartDataset"> 
         <datasetParameter name="SOME_CHART_PARAM"> 
          <datasetParameterExpression><![CDATA[$P{SOME_PARAM}]]></datasetParameterExpression> 
         </datasetParameter> 
         <dataSourceExpression><![CDATA[$P{XYZ}]]></dataSourceExpression> 
        </datasetRun> 
       </dataset> 
         ..... 
      </categoryDataset> 

然後你應該能夠得到它:

getParameterValue("SOME_CHART_PARAM") 
相關問題