Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- *** on UI ***
- Button print = new Button("Print");
- print.addClickListener(new ClickListener() {
- @Override
- public void buttonClick(ClickEvent event) {
- AppUI.stampaReport("report.jasper", report.getId(), print);
- }
- });
- addComponent(print);
- *** on helper class ***
- public static void stampaReport(final String nomeFile, long p1, Button print) {
- String path = "/com/myapp/reports/";
- final String reportFile = path + nomeFile;
- final HashMap parameters = new HashMap();
- parameters.put("id", p1);
- try {
- StreamResource.StreamSource source = new StreamResource.StreamSource() {
- public InputStream getStream() {
- byte[] b = null;
- Connection conn = null;
- try {
- InputStream report = getClass().getClassLoader().getResourceAsStream(reportFile);
- if (report == null) {
- Notification.show("No report!", Type.ERROR_MESSAGE);
- return null;
- }
- conn = getDbHelp().getJDBCConnectionPool().reserveConnection();
- b = JasperRunManager.runReportToPdf(report, parameters, conn);
- conn.commit();
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- getDbHelp().getJDBCConnectionPool().releaseConnection(conn);
- }
- return new ByteArrayInputStream(b);
- }
- };
- StreamResource resource = new StreamResource(source, "report.pdf");
- resource.getStream().setParameter("Content-Disposition", "attachment;filename=\"report.pdf\"");
- resource.setMIMEType("application/pdf");
- resource.setCacheTime(0);
- //Page.getCurrent().open(resource, "_blank", false);
- BrowserWindowOpener opener = new BrowserWindowOpener(resource);
- opener.extend(print);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement