我是贾斯珀报告的新手。我成功地显示了一个带有碧玉报告的表格。但是如何通过Spring控制器在碧玉报告中显示多个表格?
我没有使用数据库作为数据源,只是在ArrayList中使用普通的POJO。
这是我的Spring配置
@Configuration
public class JasperReportConfig {
@Bean
public JasperReportsViewResolver getJasperReportsViewResolver() {
JasperReportsViewResolver resolver = new JasperReportsViewResolver();
resolver.setPrefix("classpath:/reports/");
resolver.setSuffix(".jrxml");
resolver.setViewNames("report_*");
resolver.setViewClass(JasperReportsMultiFormatView.class);
resolver.setOrder(0);
return resolver;
}
}
这是我的控制器。
@Controller
public class MyReportController {
@RequestMapping("/thereport")
public ModelAndView showReport(ModelAndView mv) {
// the first list to be the first table
List<Person> theFirstList = new ArrayList<>();
theFirstList.add(new Person("Joni", "Jakarta"));
theFirstList.add(new Person("Michel", "Singapore"));
mv.addObject("dataSource", theFirstList);
// the second list to be the second table
List<Person> theSecondList = new ArrayList<>();
theSecondList.add(new Person("Annie", "Thailand"));
theSecondList.add(new Person("Barry", "India"));
mv.addObject("dataSource", theSecondList);
mv.addObject("format", "pdf");
mv.setViewName("report_address");
return mv;
}
}
人员类
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@AllArgsConstructor
@NoArgsConstructor
@Getter
@Setter
public class Person {
private String name;
private String address;
}
如何定义不同的数据源,以便我可以在报表中使用两个(或更多)列表?或者,也许我可以使用一个包含多个列表的数据源?
我认为最好像这样使用子数据集: 在您的控制器中:
JRBeanCollectionDataSource beanColDataSource = new JRBeanCollectionDataSource(distinctSymbolRespCounts);
parameterMap.put("DS1", beanColDataSource);
在您的jrxml中:
<parameter name="DS1" class="net.sf.jasperreports.engine.data.JRBeanCollectionDataSource"/>
定义表时使用此数据集:
<jr:table xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd" whenNoDataType="Blank">
<datasetRun subDataset="datasourceTable" uuid="95223e22-f4cd-4749-9f65-6fa4b068a27b">
<datasetParameter name="REPORT_DATA_SOURCE">
<datasetParameterExpression><![CDATA[$P{DS1}]]></datasetParameterExpression>
</datasetParameter>
</datasetRun>
...
</jr:table>
我的JSF2.0web应用程序旨在生成PDF报告。问题是在资源管理器窗口中没有显示PDF报告。我正在使用eclipse kepler,带有apache-tomcat-7.0.52,并且jasper Ireport的版本是4.8。 我将提供整个java类: 我可以在控制台看到消息,并且页面被刷新,但是没有PDF报告出现在explorer屏幕上 我已经用下面的代码替换了上面的PDF方法,但是徒劳的是,
这是我的主报告, 我的子报表 我的bean工厂类,bean被填充,但主报表类字段显示,但子报表列表不显示,请帮助,我已经长出了几缕白发,试图解决这个问题
我目前的技能只能通过使用JRBeanCollectionDataSource(list)作为数据源,在不使用子报表的情况下制作pdf。(数据打印成功) 谁能告诉我如何制作包含多个子报表的pdf报表,主jrxml文件和子报表jrxml文件中应该包含哪些内容,以及java代码中应该包含哪些内容?以及如何使用多个JRBeanCollectionDataSource(列表)?我唯一知道的是使用Map pa
诸如此类。 我尝试使用iReport将“组页脚”频段中的最大化频段高度属性设置为true,但当我尝试查看时,会添加一些空页。
我已将图像保存在oracle数据库中为BLOB。我的模型类包含Byte[]图像;对应于数据库中的BLOB feild。我必须将数据库中的所有图像导出为PDF格式。在java中,我使用了以下代码: 我需要PDF格式的图像。