Introduction
DataVision is an Open Source reporting tool similar to Crystal Reports. Reports can be designed using a drag-and-drop GUI. They may be run, viewed, and printed from the application or exported as HTML, XML, PDF, Excel, LaTeX2e, DocBook, or tab- or comma-delimited text files. The output files produced by LaTeX2e and DocBook can in turn be used to produce PDF, text, HTML, PostScript, and more.
DataVision is written in Java and runs almost anywhere. It can generate reports from databases or text data files. Any database with an available JDBC driver should work: Oracle, PostgreSQL, MySQL, Informix, hsqldb, Microsoft Access, Progress, and more. Columns read from text files can be separated by any character.
Report descriptions are stored as XML files. This means you can not only use the DataVision GUI but you may also edit reports using your favorite text editor.
DataVision was developed by Jim Menard (jimm@io.com). The project's leader is now Frank W. Zammetti (fzlists@omnytex.com). The latest version of DataVision can be found on the DataVision Web page. New releases are also announced on Freshmeat and on the DataVision mailing list.
News
July 13, 2008 After an unexpected delay, the official DataVision version 1.2.0 is now available! This release is the first to be made available as a single easy to install Windows .exe file, as well as in the traditional 'tarball' form. The Windows installer was created using the very flexible open source NSIS installer creation system.
April 21, 2008 Hot on the heels of 1.2.0rc1, version 1.2.0rc2 is now available. Thanks to those who tested 1.2.0rc1, especially those who rapidly reported issues with it! Please also test this release, so we can soon get to a 'real' 1.2.0 release!
April 13, 2008 Version 1.2.0rc1 is now available. Thanks to everyone that helped make this happen. Please do test this release so we can soon get to a 'real' 1.2.0 release!
February 29, 2008 Jonathan Marsden has joined the DataVision team as a developer.
December 12, 2007 Version 1.1.0 is now available. Thanks to everyone that helped get to this point!
June 14, 2007 Pete Williams of Seriosoft has posted some tutorials showing how to use DataVision on his blog here and here. He says more are to follow, so stay tuned to his blog! These tutorials are geared towards first-time users and can serve as a good starting point for anyone just coming to DataVision. Thanks Pete!
February 9, 2004 Frank W. Zammetti has published Reporting For The Web With DataVision, an article that shows you how to design a simple report and run it from within a Web application.
Features
Here is a list of DataVision's features, presented in a mind-jarring random order:
- Drag-and-drop report builder.
- Runs anywhere Java runs: Windows, Linux, Mac OS X, BSD, Solaris, and more.
- Works with any database that has a JDBC driver: Oracle, PostgreSQL, MySQL, Informix, hsqldb, Microsoft Access, DB/2, and more.
- Report headers and footers, page headers and footers, group headers and footers.
- Report field formatting: color, numeric and date format, italic, bold, border lines, etc.
- Editable report-wide default field format.
- Subreports.
- Visual table linker.
- Aggregates (sum, min, max, count, average, stddev) by group and at report's end.
- Record sorting.
- Sub-selects allowed within SQL WHERE clauses.
- Formulas, using any language supported by the Bean Scripting Framework (BSF). The default formula language shipped with DataVision is Ruby (via JRuby).
- Record selection (SQL WHERE clause for database data sources, BSF script that accepts/rejects records for character-separated file data sources).
- Run-time parameters; asks the user for values when the report runs; if running from the command line, reads values in from an XML file.
- Run-time variables (again thanks to the BSF). A script run at the start of each report run is the perfect place to set all your initial values.
- User-defined SELECT clause columns; useful for calling stored procedures or SQL functions.
- Hide columns and entire sections.
- Reports can read data from different data sources. Currently, data sources are defined for databases and text data files (comma-separated, tab-separated, etc.)
- When reading text data files, translates date and numeric columns into the appropriate Java classes so they can be manipulated as such (formatted, used in formulas, etc.)
- Run and view reports on-screen.
- Print report from DataVision.
- Exports to HTML, XML, PDF, comma-separated, tab-separated, DocBook, LaTeX.
- GUI translated into eleven languages.
- Report definitions stored as human-readable XML.
- Open source, so you get all the code to play with and use.
- DataVision is embeddable within your own application.
- The download contains the Java source code, a jar file (so you don't have to compile anything), scripts for running DataVision, examples, and the documentation.
Changes
Other than updating the version number, there are no changes in DataVision between 1.2.0rc2 and the 1.2.0 release.
Here is a summary of the changes in DataVision version 1.2.0rc2 since version 1.2.0.rc1.
- Build the tarball tree under ${tmp} not under ../
Avoids trashing working dir named datavision-
- Merge first 3 lines of intro.html source file, so that the resulting HTML output validates.
- Updated Derby library (derby.jar) to version 10.3.2.1
- Updated sqlitejdbc driver to version v044. Also used Pure Java version so the driver will work on all platforms, not just Windows.
- Set source and target parameters to 1.4 for all Ant javac tasks. This should allow resulting compiled bytecode to be run on all Java runtimes from 1.4 to the present.
- DataVision now requires Java version 1.4 or higher. Install instructions edited to reflect new dvclasspath variable rather than classpath.
Here is a summary of the changes in DataVision version 1.2.0rc1 since version 1.1.0.
- Updated COPYING file to reference ASL 2.0
- Include Bundle-Name: and Numble-Version: attributes in manifest file. Generate the manifest automatically.
- Output DataVision version before the usage message.
- Generate datavision_version.txt automatically.
- Allow Ruby versionNumber.rb to deal with a version suffix (such as rc1).
- Set version to 1.2.0rc1 ready for release candidate.
- Removed -u look and feel switch from code. Removed liquidlnf.jar file from lib directory. Reverted default look and feel to "default". Fixes bug 1923244 Cut and Paste on OS X does not work.
- Allow column set retrieval in Dervy and SQLite again. (Fixes issue introduced by r136 use of beforeFirst()).
- Added URLs to download locations for third party libraries.
- Allow sorted reports to work again.
- Re-enable use of the first column of every table, a fix to FWZ's fix for SQlite issue enumerating columns.
- Fix for Tracker Issue 1777081 regarding quoting issues. Now DV uses getIdentifierQuoteString() to decide which quote character to quote identifiers with.
- Switched to modified .bat and .sh files, courtesy of Jonathan Marsden.
- Corrected mistakes in a few language files where it said "CSS-based XLS" instead of the correct "CSS-based HTML" export option and layout engine specification. Also added that string to one file that was missing it.
- Addressed issue reported by Byron Hurder dealing with SQLite not showing database columns. Also as part of this, added new sqlite_example.xml report, and test database (unfortunately the database has to be in the root directory rather than /examples where I'd prefer it be, just so that it can be found when DataVision is run... might just need to specify the path differentlyin the connection string, but nothing I tried seem to work, so we'll live with the file being somewhere it would be better off not being).
- Bug #865491 was fixed. Check SVN commit messages on 12/23/2007 for details (a bunch of files needed to be modified to address this). Commit message is also a part of the bug ticket for reference.
- Applied patch #1816739 from Marcel Jager who provided Dutch translations. Thank you Marcel!
- Applied patch #1463294 from David Bennett do address an issue when using JavaScript as your formula language. Thanks David!
- Added the ObjectSource and related example code. This allows you to run a report against an ArrayList (where each element is a row) of ArrayLists (where each element is a column). This works very much like CharSepSource does, except that you define the data, as well as the columns, in code. See the example for usage details.
Documentation errata may be found on the Documentation page.
User Community
This list of countries includes those from which I have received emails and those subscribed to the DataVision Users mailing list. It exists solely because I have an ego, and that ego likes to see how widely DataVision is used.
- Afghanistan
- Australia
- Austria
- Belgium
- Brazil
- Bulgaria
- Canada
- Colombia
- China
- Czech Republic
- Denmark
- Dominican Republic
- Egypt
- France
- Germany
- Greece
- India
- Indonesia
- Ireland
- Italy
- Latvia
- Malaysia
- Mexico
- Netherlands
- New Zealand
- Pakistan
- Panama
- Paraguay
- Philippines
- Poland
- Portugal
- Romania
- Russia
- Singapore
- Slovak Republic
- South Africa
- Spain
- Sri Lanka
- Sweden
- Switzerland
- Taiwan
- Uganda
- Ukraine
- United Arab Emirates
- United Kingdom
- Uruguay
- USA
- Yugoslavia
- Vietnam
- Zimbabwe
Copying and Warranty
The notices that were displayed here have moved to the Copying and Warranty section of the User's Manual.
Other Projects
Projects Used by DataVision
The images (toolbar icons) are courtesy of Sun Microsystems. They can be
found at the Java
Look and Feel Graphics Repository. On that page is a link to the file
jlfgr-1_0.jar
which contains the images.
JCalendar is the calendar widget by Kai Toedter (kai@toedter.com).
The Bean Scripting Framework (BSF) is an Apache Jakarta project is a Java framework for executing scripting languages that can access Java objects.
JRuby is a Ruby interpreter for Java that also implements the BSF interface.
iText is the free Java-PDF library by Bruno Lowagie used in the PDF layout engine.
Thanks to FindBugs for helping me find some potential bugs in the code.
MinML2 is the XML parser that DataVision used to use. It has been superceded by the built-in Java 1.4 SAX parser.
Contributions
Pascal Pochet of P3 Consulting has written a Mac OS X wrapper for DataVision (here's a mirror). It's freeware, and includes source code.
Projects Using DataVision
Evaristo is an open source ERP solution. Evaristo includes an embedded version of DataVision.
The Open For Business Project is an open source enterprise automation software project licensed under the MIT Open Source License. The goal of the project is to build a community of end users and developers that work together directly to create easy to customize business software based on best practices. Open For Business uses DataVision.
Cotsec plans to use DataVision as its preferred/default reporting Enterprise Component for their Enterprise Components suite.
Other Reporting Tools
JasperReports is a powerful report-generating tool that has the ability to deliver rich content onto the screen, to the printer or into PDF, HTML, XLS, CSV and XML files.
JFreeReport is an open source report writer for Java with features like full on-screen print preview, XML-based report definitions and output to PDF.
JFreeChart is an open source Java class library for generating charts. JFreeChart is brought to you by the same people that created JFreeReport.
Report Manager "is a reporting application (Report Manager Designer) and also a set of components for Delphi, Builder and Kylix, also supports development environment accepting ActiveX controls (Visual Basic, Visual FoxPro, any Visual Studio.Net language...), also a C dynamic standard library with exported functions is provided to use the engine with any other language like GNU C. It also includes a TCP enabled Report Server so thin clients can obtain reports processed in the server. Also a fully functional web report server application is available, generating Adobe PDF files on the fly. A true net and web report server with no license fees and multiprocessor support."
Agata Report is a Database Reporting Tool and EIS, MIS tool (graph generation), like Crystal Reports. Its written in PHP-GTK and allows you to edit and get SQL results from several databases as Text or PostScript Files.
Business Objects, makers of Crystal Reports and other fine reporting and analysis tools.
RLIB, a LAMP (Linux, Apache, MySQL, PHP) reporting engine.
"SpoolTemplate is a report system based on templates. Based on XML configuration file it allows to build easyily report from database query, using few lines of PHP code."