Difference between revisions of "New Report Design - 2009"

From Catglobe Wiki
Jump to: navigation, search
(Introduction)
(Why a new system?)
Line 35: Line 35:
  
 
=== Current system drawbacks ===
 
=== Current system drawbacks ===
* Heavy XML
+
* Heavy XML processing
* Code duplication
+
* Heavy code duplication
* Not consistent generation process
+
* Inconsistent generation process
 +
 
 +
Thus it makes the cost of fixing bugs and maintain the old system greater than the cost of making an new system.
  
 
=== New system goals ===
 
=== New system goals ===
* Remove all intermediate XML processing
+
* Remove the drawbacks of current system
* Remove code duplication
+
* Side by side working with the old system
* Consistent generation process
+
* Fully unit testing
 +
* Unit/Integration tests can be run automatically
 +
* Testing API must be simple enough for testers to join writing test cases
 +
* Report API must be keep as simplest as possible
  
 
== Design details ==
 
== Design details ==

Revision as of 08:27, 30 July 2009

Introduction

ReportEngine.jpg

The components/modules that are using Report engine are: Dashboard, Monitor, Tabulation Script, Report Viewer, Diagram Viewer. These modules send request of generation to report engine including:

  • A data cache which contains all source data
  • Stylesheets (including external and inline stylesheet) to apply
  • Kind of presentation that the report should be exported as (pdf, excel, ppt, word, html, image)
  • Other kinds of settings

The report engine takes the request, make calculation using the Interpreter, and then export the result into desired format.

A report consists of elements like: diagrams, images, text blocks, pages, paragraphs. The most important element is Diagram, which can be discriminated based on:

  • Data
    • Cross Diagram
    • Standard Diagram
    • Tracking Diagram
    • Campaign Diagram
  • Presentation type
    • Table chart
    • Image chart which include many kinds of chart like: pie, bar, line, funnel, area, radar etc.

Concepts

Why a new system?

Current system drawbacks

  • Heavy XML processing
  • Heavy code duplication
  • Inconsistent generation process

Thus it makes the cost of fixing bugs and maintain the old system greater than the cost of making an new system.

New system goals

  • Remove the drawbacks of current system
  • Side by side working with the old system
  • Fully unit testing
  • Unit/Integration tests can be run automatically
  • Testing API must be simple enough for testers to join writing test cases
  • Report API must be keep as simplest as possible

Design details

Current implementation status

  • Report unit testing system: rather complete and testers have joined writing a lot of test cases
  • CrossDiagram
  • Support for one column/row axis
  • Cell types
  • Presentation type
  • Support Nevron image chart
  • Tabulation Script
  • Support for createCrossDiagram
  • Support for setting inline stylesheet
  • Diagram viewer control

Next action

  • Report viewer control
  • Integrating with Dashboard
  • Integrating with Monitor


Document revisions

Version No. Date Changed By Description
0.1 27.04.2009 Nguyen Trung Chinh Create the first version for working with a single case of CDG
0.1 20.07.2009 Nguyen Trung Chinh Refine the document