Java 使用DynamicJasper API:使用交叉表获取空报告

Java 使用DynamicJasper API:使用交叉表获取空报告,java,jasper-reports,crosstab,dynamic-jasper,Java,Jasper Reports,Crosstab,Dynamic Jasper,我尝试创建动态交叉表。当我尝试时,我有一个错误,而不是我解决了它。但是我的报告是空的。我不明白为什么。我检查我的结果集是否为空。但它不是空的 这是我的密码: 公共类动态AsperTemplate{ ..…//变量在此定义 public void buildReport()引发异常{ ..//I在此处创建查询并获取行、列和度量字段名称 jrdasource ds=getDataSource(query,a,b,c);//我从数据库中获取数据作为jrdasource DynamicReport dr

我尝试创建动态交叉表。当我尝试时,我有一个错误,而不是我解决了它。但是我的报告是空的。我不明白为什么。我检查我的结果集是否为空。但它不是空的

这是我的密码:

公共类动态AsperTemplate{
..…//变量在此定义
public void buildReport()引发异常{
..//I在此处创建查询并获取行、列和度量字段名称
jrdasource ds=getDataSource(query,a,b,c);//我从数据库中获取数据作为jrdasource
DynamicReport dr=buildReportLayout(a,b,c,ds);//构建报告布局并在此方法中添加交叉表。
params.put(“sr”,ds);//我设置了报表参数值
JasperReport jr=DynamicJasperHelper.generateJasperReport(dr,new-ClassicLayoutManager(),params);
JasperPrint jp=JasperFillManager.fillReport(jr,params,ds);
JasperExportManager.exportReportToPdfFile(jp,“C:/report out.pdf”);
}
专用DynamicReport buildReportLayout(字符串[]a、字符串[]b、字符串[]c、JRDataSource ds){
FastReportBuilder drb=新的FastReportBuilder();
drb.setwhennodatalsectionnodetail();
initStyles();
CrosstabBuilder cb=新的CrosstabBuilder();
cb.设置高度(200)
.设置宽度(500)
.setHeaderStyle(主HeaderStyle)
.setDatasource(“sr”,DJConstants.DATA\u SOURCE\u ORIGIN\u REPORT\u DATASOURCE,DJConstants.DATA\u SOURCE\u TYPE\u数据源)
.setUseFullWidth(真)
.setColorScheme(4)
.setAutomaticTitle(真)
.setCellBorder(Border.PEN_1_POINT());
对象obj=“编号”;
对象obj1=“VARCHAR2”;
字符串类型=null;

对于(int i=0;i我在这里解决了我的问题解决方案: 当ıdelete
drb.addParameter(“sr”、“java.util.Collection”);
b.toString()
时,我会出错,因为未知列将其更改为b[0],而我的问题就解决了