gpt4 book ai didi

java - Vaadin 与 JasperReports?

转载 作者:行者123 更新时间:2023-12-01 12:57:27 24 4
gpt4 key购买 nike

我正在寻找一种使用 JasperReports 为我的应用程序创建报告的解决方案。我找到了一些例子,但仍然无法使其工作。我正在使用 Vaadin7

我正在尝试这个

public class Report {

public Report(){
createShowReport();
}

private void createShowReport(){
final Map map = new HashMap();

StreamResource.StreamSource source = new StreamResource.StreamSource() {
public InputStream getStream() {
byte[] b = null;
try {
b = JasperRunManager.runReportToPdf(getClass().getClassLoader().getResourceAsStream("br/ind/ibg/reports/report3.jasper"), map, new JREmptyDataSource());
} catch (JRException ex) {
ex.printStackTrace();
}

return new ByteArrayInputStream(b);
}
};


StreamResource resource = new StreamResource(source, "report3.pdf");
resource.setMIMEType("application/pdf");

VerticalLayout v = new VerticalLayout();
Embedded e = new Embedded("", resource);
e.setSizeFull();
e.setType(Embedded.TYPE_BROWSER);
v.addComponent(e);

Window w = getWindow();
w.setContent(v);
UI.getCurrent().addWindow(w);
}


private Window getWindow(){
Window w = new Window();
w.setSizeFull();
w.center();
return w;
}

}

有什么想法吗?

最佳答案

问题似乎出在 JasperPrint Printer = JasperFillManager.fillReport(file, parametros,dados); 行上。

确保找到您的报告(file 不为空)。

为了显示报告,我通常所做的是将生成的 pdf 放入流中,然后使用 mimeType='application\pdf' 创建一个 streamResource 并使用 window.open(resource) 来显示它。

示例:

StreamResource.StreamSource source = new StreamResource.StreamSource() {

public InputStream getStream() {
byte[] b = null;
try {
b = JasperRunManager.runReportToPdf(getClass().getClassLoader().getResourceAsStream("reports/report3.jasper"), map, con);
} catch (JRException ex) {
ex.printStackTrace();
}

return new ByteArrayInputStream(b);
}
};

StreamResource resource = new StreamResource(source, "report3.pdf", getApplication());
resource.setMIMEType("application/pdf");

getApplication().getMainWindow().open(resource, "_new");

关于java - Vaadin 与 JasperReports?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23766146/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com