Welcome to GNUe Enterprise Putting the 'free' back into 'free enterprise'...

  GNUe Project  

 

  GNUe Tools  

 

  GNUe Packages  

 

  GNUe Community  

  0.5.3 releases available for download.

GNUe Project
  Home Page
  News
  Media Resources
  Downloads
  Documentation
  FAQs
  Screenshots
  More...

GNUe Tools
  Forms
  Designer
  Reports
  Application Server
  Common
  Bayonne
  More...

GNUe Packages
  Financials
  Customer Relations
  Human Resources
  Manufacturing
  Sales
  Supply Chain
  DCL
  More...

GNUe Community
  Get Involved!
  IRC
  Sponsors
  Contributors
  Other Projects
  History
  Bug Tracking
  More...

Status of GNUe Reports

19th November 2001

GNUe Reports has seen a lot of activity in the last few months. We are nearing our initial release. In light of the 0.1.0 release of Forms, Designer, and Common, I thought a status report would be in order.


Overview of Reports:

Reports is composed of three "modules":

* The Reports Engine:
This module (and it is literally a Python module :) is responsible for parsing an XML-based report definition, connecting to the datasources via GNUe-Common, and converting the results to a developer-specified XML format (as defined in the Report Definition.) This module is the backbone of GNUe-Reports (and hopefully GNUe Integrator, once development on it starts). The Reports Engine is basically a database-to-XML translation engine with a lot of nifty features to make the translations as easy, and versatile, as possible.

* The Reports Server:
This module (yet to be completed -- see the notes below) maintains a cache of Reports Engines and exposes the Reports Engine's methods to the public via GNUe-Common's RPC abstraction (see description below).

* The Reports Client:
This module (also yet to be completed) calls the Reports Server via one of GNUe-Common's RPC methods. A client can be run via the command line, or other tools, such as GNUe Forms, can act as a Reports client.

Status

What reports can do now:

* Reports fully utilizes the GNUe-Common package, which means it supports all major relational databases.

* Reports does not use any platform-specific code, so it should run on any system that GNUe-Common and Python runs on. (Note: [1] it has only been tested on Linux to date; [2] even though GNUe-Common runs on most platforms, the database driver you need may not!)

* Reports does not currently have a working server/daemon interface. However, a command-line tool, grrun, does create a temporary Reports Engine. This means that you can currently run reports from the command line using single instances of the engine.

* Reports supports runtime sort options. Basicially, this means a report designer can create a variety of methods in which a report can be sorted and give each method an id. When running the report, the user can pass this id to the report and this will determine how the report will be sorted.

* Reports supports runtime parameters that can be dynamically placed in the datasource's where clause at runtime.

* Reports supports banding, or grouping, of datasources. Basically, this means if you have a set of rows like such:

Joe Cool's Blues, Winton Marsalis, Track 1, Linus & Lucy
Joe Cool's Blues, Winton Marsalis, Track 2, Buggy Ride
Joe Cool's Blues, Winton Marsalis, Track 3, Peppermint Patty
Joe Cool's Blues, Winton Marsalis, Track 4, On Peanuts Playground
Voice of an Angel, Charlotte Church, Track 1, Pie Jesu
Voice of an Angel, Charlotte Church, Track 2, Panis Angelicus
Voice of an Angel, Charlotte Church, Track 3, In Trutina
Voice of an Angel, Charlotte Church, Track 4, Danny Boy

Reports can group them into a format such as this:

Joe Cool's Blues by Winton Marsalis
Track 1 Linus & Lucy
Track 2 Buggy Ride
Track 3 Peppermint Patty
Track 4 On Peanuts Playground

Voice of an Angel by Charlotte Church
Track 1 Pie Jesu
Track 2 Panis Angelicus
Track 3 In Trutina
Track 4 Danny Boy

and even run aggregate functions at various levels.


What Reports will do "Real Soon" (hopefully by the premiere release):

* Reports can output any form of XML. However, we are trying to formalize the GNUe reporting format so that all of our packaged apps will use a common XML format. This will allow us to write some nifty XML-to-whatever translators and convert our report output to text, PS, PDF, HTML, spreadsheet formats, etc, etc, etc.

* We are working on an RPC abstraction layer in GNUe-Common. This interface will allow us to export our methods in a variety of ways (via CORBA, XML-RPC, SOAP, etc.)

As soon as this is functional, Reports will become a Server-based application and grrun will become a command-line client to this server.

* Basic summary functions (field aggregate functions such as Sum, Count, Average, etc.) Work has started on this, but is not fully debugged.


Short-term Goals for Reports (hopefully within 6 months):

* Add trigger/event support to do complex summaries, etc.


Long Term Goals for Reports:

* The Reports engine will hopefully be a base for the GNUe Integrator tool.


Final Notes


Please do not ask for timelines on when various reporting features will be completed. This is a volunteer project and, as such, a timeline is nothing more than guesswork. However, several GNUe core developers need a reports application as soon as possible, so this project is actively being worked on.


-- Jason


Return to GNUe News Archive

News items are the property of their posters. All the rest © 1999, 2001 - 2003 by Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA
Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved