Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • JRXML File - Wählen Sie hier das .jrxml File aus, welches durch das JasperSoft Studio erstellt wurde. Geben Sie hier nicht das .jasper, also die fertige Compilierte Datei an. Diese Datei sollte sich immer im Projekt eigenen Resources - reports Ordner befinden. 
  • Resource - Geben Sie bei Resource die Datenmenge oder Collection an welche die Daten für die Fields enthält. Dies kann über mehrere Weg passieren:
    • Auswahl einer DAO Methode - Klicken Sie auf die drei Punkte links neben dem Feld, wählen Sie eine DAO-Klasse und eine QueryMethode in dieser Klasse
    • Laden Sie selbst eine Ergebnismenge vor dem Aufruf des QueryWizards z.B. über

      Code Block
      languagejava
      themeEclipse
      firstline1
      linenumberstrue
      List<Customer> allCustomers = new CustomerDAO().findAll();

      oder 

      Code Block
      languagejava
      themeEclipse
      firstline1
      linenumberstrue
      Order find = new OrderDAO().find(10248);
      Set<Orderdetail> orderdetails = find.getOrderdetails();

      oder

      Code Block
      languagejava
      themeEclipse
      firstline1
      linenumberstrue
      List<BeanItem<Customer>> selectedItems = table.getSelectedItems();

      und weisen Sie dann den Variablennamen in diesem Beispiel "allCustomers", "orderdetails" oder "selectedItems" diesem Feld zu.

  • Parameters - Das Parameter-Mapping. Hier werden die im Report zur Verfügung stehenden Parameter auf zu Verfügung stehende Variablen gemapped. Haben Sie die .jrxml angegeben so werden die zu befüllenden Parameter ausgelesen und automatisch angezeigt.
  • Mapping - Das Field-Mapping. Hier werden die im Report zur Verfügung stehenden Fields auf die in der Resource enthaltenen Attribute gemapped. Haben Sie die .jrxml und die Resource ordnungsgemäß befüllt sollten sich einige Inhalte bereits selbst eintragen. Sie brauchen diese jetzt nur noch zu kontrollieren und ggf. nachbessern oder vervollständigen.
  • Export Type - Wählen Sie hier den Typ des Dokuments welches dann zur Laufzeit generiert werden soll. Folgende Export Types stehen zu Verfügung: PDF, HTML, XML, RTF, CSV, TEXT, XLSX, XLS, DOCX, PPTX, ODT
  • Export Target - Folgende Export Targets stehen zur Verfügung:
    • Resource
      • Wird verwendet wenn Sie den erstellen Report sofort im Browser anzeigen wollen. Zum Beispiel in Verwendung mit dem XdevBrowserFrame
    • byte[]
      • Wird verwendet wenn Sie den erstellten Report zum Beispiel in die Datenbank schreiben oder Ihn per Stream an eine andere Stelle weitergeben wollen.

...

  1. Nach dem Wizard wird folgender Code generiert:

    Code Block
    languagejava
    themeEclipse
    firstline1
    linenumberstrue
    Report.New().jrxml("/report.jrxml")
    	.dataSource(com.xdev.dal.DAOs.get(com.company.jasperreportsdemo.dal.ProductDAO.class)
    	.getProductsOrderedByCategory())
    	.parameter("creator", "CK").parameter("created", new Date()).exportToResource(Format.Pdf());


  2. Weisen Sie einer Variable das erzeugt Statement zu
    a) Positionieren Sie nun den Cursor an das Ende des gesamten Statements also nach "exportToResource(Format.Pdf());"
    b) Drücken Sie Strg + 1 → Wählen Sie "Assing statement to new local variable (Strg+2, L)"
    c) Bestätigen Sie die Auswahl mit Enter.
    Es wird jetzt automatisch eine Variable vor dem Statement erzeugt welche die Resource entgegen nimmt.

    Code Block
    languagejava
    themeEclipse
    firstline1
    linenumberstrue
    Resource exportToResource = Report.New().jrxml("/report.jrxml")
    	.dataSource(com.xdev.dal.DAOs.get(com.company.jasperreportsdemo.dal.ProductDAO.class)
    	.getProductsOrderedByCategory())
    	.parameter("creator", "CK").parameter("created", new Date()).exportToResource(Format.Pdf());


  3. Erstellen Sie eine Komponente, mit welcher Sie PDF-Resources anzeigen können:

    Code Block
    languagejava
    themeConfluence
    @Tag("object")
    public class EmbeddedPdfDocument extends Component implements HasSize
    {
    	public EmbeddedPdfDocument(final StreamResource pdfResource)
    	{
    		this();
    		this.getElement().setAttribute("data", pdfResource);
    	}
    
    	public EmbeddedPdfDocument(final String url)
    	{
    		this();
    		this.getElement().setAttribute("data", url);
    	}
    	
    	protected EmbeddedPdfDocument()
    	{
    		this.getElement().setAttribute("type", "application/pdf");
    		this.setSizeFull();
    	}
    }
    
    


  4. Fügen Sie dann diese Komponente zu Ihren View hinzu:

    Code Block
    languagejava
    themeConfluence
    Resource exportToResourceresource = Report.New().jrxml("/report.jrxml")
    	.dataSource(com.xdev.dal.DAOs.get(com.company.jasperreportsdemo.dal.ProductDAO.class)
    	.getProductsOrderedByCategory())
    	.parameter("creator", "CK").parameter("created", new Date()).exportToResource(Format.Pdf());
    
    this.add(new EmbeddedPdfDocument(exportToResource)final HtmlObject htmlPreview = new HtmlObject(resource, "application/pdf");
    htmlPreview.setSizeFull();
    
    final Dialog dialog = new Dialog(htmlPreview);
    	dialog.setWidth("900px");
    	dialog.setHeight("700px");
    	dialog.open();