Advertisement
Guest User

Vaadin print report

a guest
Apr 20th, 2015
362
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.46 KB | None | 0 0
  1. *** on UI ***
  2. Button print = new Button("Print");
  3. print.addClickListener(new ClickListener() {
  4.     @Override
  5.     public void buttonClick(ClickEvent event) {
  6.         AppUI.stampaReport("report.jasper", report.getId(), print);
  7.     }
  8. });
  9. addComponent(print);
  10.  
  11. *** on helper class ***
  12. public static void stampaReport(final String nomeFile, long p1, Button print) {
  13.         String path = "/com/myapp/reports/";
  14.         final String reportFile = path + nomeFile;
  15.         final HashMap parameters = new HashMap();
  16.         parameters.put("id", p1);
  17.  
  18.         try {
  19.                 StreamResource.StreamSource source = new StreamResource.StreamSource() {
  20.  
  21.                         public InputStream getStream() {
  22.                                 byte[] b = null;
  23.                                 Connection conn = null;
  24.                                 try {
  25.                                         InputStream report = getClass().getClassLoader().getResourceAsStream(reportFile);
  26.                                         if (report == null) {
  27.                                                 Notification.show("No report!", Type.ERROR_MESSAGE);
  28.                                                 return null;
  29.                                         }
  30.                                         conn = getDbHelp().getJDBCConnectionPool().reserveConnection();
  31.                                         b = JasperRunManager.runReportToPdf(report, parameters, conn);
  32.                                         conn.commit();
  33.                                 } catch (Exception e) {
  34.                                         e.printStackTrace();
  35.                                 } finally {
  36.                                         getDbHelp().getJDBCConnectionPool().releaseConnection(conn);
  37.                                 }
  38.  
  39.                                 return new ByteArrayInputStream(b);
  40.                         }
  41.                 };
  42.  
  43.                 StreamResource resource = new StreamResource(source, "report.pdf");
  44.                 resource.getStream().setParameter("Content-Disposition", "attachment;filename=\"report.pdf\"");
  45.                 resource.setMIMEType("application/pdf");
  46.                 resource.setCacheTime(0);
  47.  
  48.                 //Page.getCurrent().open(resource, "_blank", false);
  49.  
  50.                 BrowserWindowOpener opener = new BrowserWindowOpener(resource);
  51.                 opener.extend(print);
  52.  
  53.         } catch (Exception e) {
  54.                 e.printStackTrace();
  55.         }
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement