DataVision 1.0.0 released

DataVision 1.0.0 is now available from SourceForge at
<http://sourceforge.net/project/showfiles.php?group_id=33343>.

DataVision (http://datavision.sf.net) 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, 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 uses JRuby to add Ruby scripting.

Changes

* DataVision now requires Java 1.4.X. (I don't know if it will work with
Java 1.5.)

* New aggregate fields, replacing the single ``subtotal'' aggregate field.
Field type values may be ``sum'', ``min'', ``max'', ``count'', ``average'',
and ``stddev''. The old ``subtotal'' type will still be accepted and will be
turned into ``sum''. The old ``Running Total'' dialog now lets you select
the aggregate type at each level (group or report footer).

* The file parsing API has been simplified. Almost everywhere in the public
interface, such as the report reading methods, that used to take a String
file path, a Reader, an InputStreamReader, an InputSource, or anything else
now just takes one of two types: a File or a InputSource.

* The old readFile() methods, that were deprecated, have been removed. Use the
read() equivalents. See the previous item, though: read() only takes a File
or an InputSource.

* The old Report.setParameterXMLFile method, that was deprecated, has been
removed. Use setParameterXMLInput, which now only takes a File or an
InputSource.

* Stopped using the MinML2 SAX parser, in favor of the built-in Java SAX
parser.

* Removed the GNU regex library, since Java 1.4 includes regex support.

* Upgraded to iText PDF generation library version 1.3.

* Upgraded to JRuby 0.8.2.

* Added Rick Kramer's patch which adds a delete menu item to the field picker
window's edit menu.

* Stop using ``enum'' as a variable name. It's a reserved word as of Java
1.5.

* The class ConnectionTest in examples/ConnectionTest.java is now in the
package named ``examples''. The class TranslateOMatic in
jimm/properties/TranslateOMatic.java is now in the package
``jimm.properties''.

* I've switched to using Subversion (SVN) instead of CVS for source code
control. SourceForge will be offering SVN in the future. For now, I'm
hosting the repository at http://jimm.textdriven.com/svn/datavision/trunk. I
haven't bothered to try to import the existing CVS repository, since I don't
think anybody really cares about the complete revision history of all the
code since I've checked it in to CVS. To check out the source anonymously,
assuming you have a SVN client, type

svn co http://jimm.textdriven.com/svn/datavision/trunk datavision

which will create a new directory called datavision. You can also point your
browser at that URL and browse the latest revision online.

* Remember the last-used layout engine in the export window. This is the first
of a hopefully long line of things that DataVision will remember for you. I
plan to add more, like the windows positions, last-opened report, default
formats, paper sizes, database connections, and more.

Bug Fixes

* Fixed creation of datavision-versiontar.gz. When unarchived, the files
appear in a subdirectory named datavision-version instead of being unpacked
in the current directory.

* Fixed a bug in the GUI: when a field format was changed, then the report was
run, then another field's format was changed, the changed format was not
used when you ran the report again. (The format was saved correctly when you
saved the report.)

* Fixed bug where saving a report didn't save it to the right directory; it
was saved in the datavision dir.

* Improved the PDF layout engine's font selection. It wasn't using the correct
font name when it looked for the PDF equivalent standard font. The Java font
family name is used to pick the PDF font. The family can be the font name
("Helvetica", "Arial") or a logical name ("sansserif", "serif",
"monospace"). "Helvetica" or "sansserif" map to Helvetica, "Courier" or
"monspace" map to Courier, "Symbol" and "ZapfDingbats" map to themselves,
and everything else (including "serif", for example) maps to Times.

Posted by Jim Menard 2005-11-08