Discussions

News: DynamicJasper makes possible dynamic reporting in Java

  1. DynamicJasper is an open source java library that complements and empowers Jasper Reports to the point of enabling dynamic report generation in runtime. You can define in runtime which fields will be shown, which groups to add, define crosstabs, add sub reports and more taking care of the report layout. No need of jrxml files, and not leaving your IDE. Integration with popular MVC frameworks: Struts 2 and WebWork are supported out of the box. A Grails plugin is available. Dynamic column report: Columns can be defined at runtime, which means you also control (at runtime) the column positioning, width, title, etc. Repeating groups / Breaking groups: Create repeating groups dynamically using simple expressions as criteria or complex custom expressions. Each repeating group may have a header and/or footer, which can have a variable showing the result of an operation (SUM, COUNT or any other provided by Jasper Reports). Automatic report layout: Just define a minimum set of options and DJ will take care of the layout. It's not an issue to generate the same report for different page sizes and orientation many more! Dynamic Crosstabs: Jasper Report's popular crosstabs can now be created dynamically in an easy and convenient way. Sub reports: Sub reports are supported; they can also be dynamically created. Styles: Each column can have its own style for its title and detail data (defining border, border color, font size, type and color, background color, etc.). Style library from jrxml files are supported. Calculation Variables: Repeating groups can have variables that hold the result of an operation on a given field (column). With DJ adding variables is a 1 line of code task. JRXML template files support: You can use a base template jrxml file in which common styles, company logo, water mark, etc can be pre defined. Conditional Format: DJ provides a very simple way to define conditional formats. You can use simple conditions or custom conditions. Charts: Easy to add simple charts Barcode columns: As simple as adding a regular column Export to most popular formats: As DJ stands over Jasper Reports, it can export to PDF, XML, HTML, CSV, XLS, RTF, TXT. Clean Excel export: DJ provides exporting plain reports to Excel, with no data formatting, no page break, etc. This is useful for end users that use this report to create dynamic tables in Excel, creating this reports just with Jasper Reports can demand a lot of design time. Most of the features are provided directly by Jasper Reports, nevertheless through the DJ API some of the results are achieved with really no effort.

    Threaded Messages (15)

  2. Is there any example of using DynamicJasper with JSF?
  3. Unfortunately, there are no examples with JSF. So far, there are examples with GWT, and Struts2 and lately a Grails plugin. We are going to invite the community to a contest to build a reporting component using DJ, in wich we expect any version with Seam + JSF, but we are focusing our effort to Grails, trying to improve the plugin to be integrated with the Scaffold, making reporting pretty much easier.
  4. What improvements have DJ in comparison with BIRT and what does integrate with scaffold mean?
  5. What improvements have DJ in comparison with BIRT?
    BIRT will satisfy complex report design, but it may be too much for simple to medium complexity reports. Here is where DJ can be of great help, plus you can easily embed it to your application (web or desktop) while BIRT is only for web apps. The runtime report designing can be a life savior when requirements ask for adding or removing columns from the report, positioning them on user's will, always maintaining a neat and consistent layout... too many pre-compiled report design would be needed... here is where DJ helps the most. It is not a silver bullet (not at all!!!) but it fulfills a not-easy-to-get-in-java requirement, which are the dynamic column reports.
    what does integrate with scaffold mean?
    Oh... it's related to Grails. It means that DJ would come automatically integrated to grails applications when using the default scaffold, which makes the web application almost out of nothing, enabling reporting capabilities besides the CRUD operations.
  6. I don't think DynamicJasper can be compared to BIRT at all. I do like what DynamicJasper does though.
    while BIRT is only for web apps
    Not true. I use BIRT in Swing apps and Eclipse RCP apps.
    but it may be too much for simple to medium complexity reports
    BIRT works well on all types of reports.
  7. Sorry, you are right about web apps... I'm the first to say there is no comparison between BIRT and DJ. We are aware of DJ limitations, and we also know it's great potential. I said it in my previous post, it is not a silver bullet in terms of reporting, yet it fulfills dynamic column reporting pretty well in a very flexible way.
  8. Sorry, you are right about web apps...

    I'm the first to say there is no comparison between BIRT and DJ.
    We are aware of DJ limitations, and we also know it's great potential.
    I said it in my previous post, it is not a silver bullet in terms of reporting, yet it fulfills dynamic column reporting pretty well in a very flexible way.
    Sorry. I wasn't putting DJ down. I was just saying they do different things. BIRT and JasperReports are where the comparison should be.
  9. live GWT demo of DynamicJasper here: http://dynamicjasperplayground.fdvs.com.ar/ar.com.fdvs.dj.example.djApp/djApp.html
  10. Hi , i am also searching for how to integrate Dynamic jasper with Seam . Thanks in advance

  11. I've been using dj for a while, it is a extremely versatile tool. Its creators deserve all the recognition, well designed and functional to the needs for reporting.
  12. Congratulations for the latest release! I'm glad to see that this already robust tool keeps evolving.
  13. How about limiting the resultset? I didn' see that right offhand.
  14. Hi Mark. DJ helps on how to show the data in the report, and it automates the process of making the report layout. I thing that limiting the resultset should be part of the business layer. I also think it would be very ambitious to add such feature, since data source may not be only JDBC Resultsets, there are many others types such as Bean collections, XML, Mondrean cubes, CSV, Hibernate HQL, etc... plus not all engines support limiting the result, and have many different syntax to achieve that. Of course, we can always wrap the data source and use an internal counter and force it to tell "no more records" when the counter reaches the desired limit, but it would result in a waste of resources if the original data source comes with 10.000 rows and we are only showing 100. In terms of data sources, DJ only passes by it to JasperReports, we don't touch it at all.
  15. Reports typically have "prompts". Some don't.
  16. Looks great. I think it may save you a lot of time of writing .jrxml files, dealing with iReport, compiling those files, etc for just simple reports that could be defined more easily. We're thinking of using it in our platform, specially because of the dynamic crosstab funcionality. Is it possible to do column/row rotation, drill down, sorting (when clicking in a column title) or drill through (for instance click on any cell and see the details of that value)?