刚学birt,遇到了问题
报表文件是这样的
open下面
importPackage(Packages.com.jw.report.util);
importPackage(Packages.com.jw.report.service);
importPackage(Packages.com.jw.report.entity);
importPackage(Packages.java.lang);
empService=ReportManageUtil.getBean("com.jw.report.service.EmpService");
eDetail=empService.getEmpList(params["start_date"],params["end_date"]);
empDetailList = eDetail.iterator();
fetch下面
if(empDetailList.hasNext()){
var e = empDetailList.next();
row.ename = e.getEname();
row.job = e.getJob();
row.mgr = e.getMgr();
row.sal=e.getSal();
row.comm =e.getComm();
row.hiredate = e.getHireDate();
return true;
}else{
return false;
}
close下面
empService=null;
eDetail=null;
empDetailList=null;
报表总出不来.problem窗口还显示
第一个错:
org.eclipse.birt.report.engine.api.EngineException: Data Set script method "Fetch" returned null; expected a Boolean value. (Element ID:1)
at org.eclipse.birt.report.engine.script.internal.ScriptExecutor.addException(ScriptExecutor.java:158)
at org.eclipse.birt.report.engine.script.internal.ScriptExecutor.addException(ScriptExecutor.java:147)
at org.eclipse.birt.report.engine.script.internal.ScriptDataSetScriptExecutor.handleFetch(ScriptDataSetScriptExecutor.java:162)
at org.eclipse.birt.data.engine.impl.ScriptDataSetRuntime.fetch(ScriptDataSetRuntime.java:103)
at org.eclipse.birt.data.engine.impl.PreparedScriptDSQuery$ScriptDSQueryExecutor$CustomDataSet.fetch(PreparedScriptDSQuery.java:260)
at org.eclipse.birt.data.engine.executor.dscache.DataSetToCache.fetchFromDataSet(DataSetToCache.java:242)
at org.eclipse.birt.data.engine.executor.dscache.DataSetToCache.fetch(DataSetToCache.java:171)
at org.eclipse.birt.data.engine.executor.cache.OdiAdapter.fetch(OdiAdapter.java:218)
at org.eclipse.birt.data.engine.executor.cache.RowResultSet.next(RowResultSet.java:105)
at org.eclipse.birt.data.engine.executor.cache.ExpandableRowResultSet.next(ExpandableRowResultSet.java:63)
at org.eclipse.birt.data.engine.executor.cache.SmartCacheHelper.populateData(SmartCacheHelper.java:316)
at org.eclipse.birt.data.engine.executor.cache.SmartCacheHelper.initInstance(SmartCacheHelper.java:285)
at org.eclipse.birt.data.engine.executor.cache.SmartCacheHelper.getResultSetCache(SmartCacheHelper.java:246)
at org.eclipse.birt.data.engine.executor.cache.SmartCache.<init>(SmartCache.java:73)
at org.eclipse.birt.data.engine.executor.transform.pass.PassUtil.populateOdiResultSet(PassUtil.java:132)
at org.eclipse.birt.data.engine.executor.transform.pass.PassUtil.pass(PassUtil.java:62)
at org.eclipse.birt.data.engine.executor.transform.pass.PassManager.doSinglePass(PassManager.java:211)
.......................
第二个错:
org.eclipse.birt.report.engine.api.EngineException: 判定脚本“if(empDetailList.hasNext()){
var e = empDetailList.next();
row.ename = e.getEname();
row.job = e.getJob();
row.mgr = e.getMgr();
row.sal=e.getSal();
row.comm =e.getComm();
row.hiredate = e.getHireDate();
return true;
}else{
return false;
}”时出错:
Fail to execute script in function __bm_FETCH(). Source:
------
" + if(empDetailList.hasNext()){
var e = empDetailList.next();
row.ename = e.getEname();
row.job = e.getJob();
row.mgr = e.getMgr();
row.sal=e.getSal();
row.comm =e.getComm();
row.hiredate = e.getHireDate();
return true;
}else{
return false;
} + "
-----
A BIRT exception occurred. See next exception for more information.
对 Javascript 表达式求值时出错。 脚本引擎错误: ReferenceError: "empDetailList" is not defined. (/report/data-sets/script-data-set[@id="8"]/method[@name="fetch"]#1)
脚本源: /report/data-sets/script-data-set[@id="8"]/method[@name="fetch"],行: 0,文本:
__bm_FETCH()。 (Element ID:1)
at org.eclipse.birt.report.engine.script.internal.DtEScriptExecutor.handleJS(DtEScriptExecutor.java:99)
at org.eclipse.birt.report.engine.script.internal.DataSetScriptExecutor.handleJS(DataSetScriptExecutor.java:246)
at org.eclipse.birt.report.engine.script.internal.ScriptDataSetScriptExecutor.handleFetch(ScriptDataSetScriptExecutor.java:140)
at org.eclipse.birt.data.engine.impl.ScriptDataSetRuntime.fetch(ScriptDataSetRuntime.java:103)
at org.eclipse.birt.data.engine.impl.PreparedScriptDSQuery$ScriptDSQueryExecutor$CustomDataSet.fetch(PreparedScriptDSQuery.java:260)
at org.eclipse.birt.data.engine.executor.dscache.DataSetToCache.fetchFromDataSet(DataSetToCache.java:242)
at org.eclipse.birt.data.engine.executor.dscache.DataSetToCache.fetch(DataSetToCache.java:171)
at org.eclipse.birt.data.engine.executor.cache.OdiAdapter.fetch(OdiAdapter.java:218)
at org.eclipse.birt.data.engine.executor.cache.RowResultSet.next(RowResultSet.java:105)
at org.eclipse.birt.data.engine.executor.cache.ExpandableRowResultSet.next(ExpandableRowResultSet.java:63)
at org.eclipse.birt.data.engine.executor.cache.SmartCacheHelper.populateData(SmartCacheHelper.java:316)
at org.eclipse.birt.data.engine.executor.cache.SmartCacheHelper.initInstance(SmartCacheHelper.java:285)
at org.eclipse.birt.data.engine.executor.cache.SmartCacheHelper.getResultSetCache(SmartCacheHelper.java:246)
at org.eclipse.birt.data.engine.executor.cache.SmartCache.<init>(SmartCache.java:73)
..........
求解答啊