我下面this教程傳遞JSON來JRXML。 我的虛擬json文件成功分析成好看的報告。的java iREPORT分享到人人傳遞JSON作爲表達
,但我有麻煩,同時通過JSON代碼JRXML。 在this教程有一個像圖片配置如下
我試圖通過JSON這樣
Map<String,Object> params = new HashMap<String,Object>();
String sPath = "/reports/master_standar_test_kertas.jrxml";
URL uReport = this.getClass().getResource(sPath);
String sJson = "{\"parameter\": { \"status\":\"success\" },\"data\":[{\"kode\":\"001\",\"title\":\"ENAMEL\"}]}";
System.out.println((new JSONObject(sJson)));
InputStream is = new ByteArrayInputStream(sJson.getBytes());
JsonDataSource source = new JsonDataSource(is);
params.put(JsonQueryExecuterFactory.JSON_SOURCE, is);
JasperReport jr = JasperCompileManager.compileReport(uReport.getPath());
JasperPrint jpPrint = JasperFillManager.fillReport(jr, params,source);
JasperViewer jpView = new JasperViewer(jpPrint);
,但我得到的錯誤
net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression for source text: $P{net.sf.jasperreports.json.source}
我的問題:
- 我相信我的代碼是錯誤的,但我不知道確切的錯誤代碼
- 我真的想了解jasperreport的是如何工作的,但我在Java中新,想要什麼就有什麼,我可以讀取任何教程...?
其實我只是3個月創建一個使用Java桌面應用程序,請給我舉例代碼使用JsonQueryExecuterFactory.JSON_INPUT_STREAM,只是一個小例子,請... ...? – yuda
您的代碼應該這樣做,只是用'JsonQueryExecuterFactory.JSON_INPUT_STREAM',而不是'JsonQueryExecuterFactory.JSON_SOURCE' – Narcis