Difference between revisions of "New Report Design - 2009"
(→Why a new system?) |
(Finish 0.2) |
||
Line 21: | Line 21: | ||
** Table chart | ** Table chart | ||
** Image chart which include many kinds of chart like: pie, bar, line, funnel, area, radar etc. | ** Image chart which include many kinds of chart like: pie, bar, line, funnel, area, radar etc. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== Why a new system? == | == Why a new system? == | ||
Line 48: | Line 38: | ||
* Testing API must be simple enough for testers to join writing test cases | * Testing API must be simple enough for testers to join writing test cases | ||
* Report API must be keep as simplest as possible | * Report API must be keep as simplest as possible | ||
+ | * Design documents must be officially registered on wiki page | ||
+ | |||
+ | == Approach to new system == | ||
+ | Steps are defined for approaching the new system, which are described below: | ||
+ | |||
+ | * Take the smallest possible case for prototyping (CrossDiagram with one axis for both row and column) | ||
+ | * Design the core functions to server the single case with full testing | ||
+ | * Approach in depth to: | ||
+ | ** Tabulation Script | ||
+ | ** Diagram Viewer | ||
+ | ** StyleSheet | ||
+ | ** Different presentation types | ||
+ | * Move on with Report and Report Viewer | ||
+ | * Move on with Monitor | ||
+ | * Move on with Dashboard | ||
+ | * Move on with data calculation optimization | ||
+ | * Performance refining => change design and test cases | ||
+ | * Full implementation for: | ||
+ | ** Cross Diagram | ||
+ | ** Other diagrams | ||
+ | ** All presentation types | ||
+ | * Replace the old system's gui components | ||
== Design details == | == Design details == | ||
Line 60: | Line 72: | ||
== Current implementation status == | == Current implementation status == | ||
− | * | + | {| border="1" |
− | + | |- | |
− | * CrossDiagram | + | | '''Task''' |
− | + | | '''Current status''' | |
− | + | | '''Planned actions''' | |
− | + | |- | |
− | * | + | | Implementation |
− | + | | | |
− | + | * Generation process | |
+ | ** Data generation is well defined and tested | ||
+ | * Image charts | ||
+ | ** Bar/Line/Pie/Radar charts have been implemented for single case of CrossDiagram | ||
+ | ** All stylesheet and dom operations are split into different files to ease the maintenance, however the files are still messy and need cleanup | ||
+ | * Table charts | ||
+ | ** Table adaptors have been defined and tested | ||
+ | ** Prototype for splitting huge table into sub-tables has been done | ||
+ | ** Full support for HTML | ||
+ | ** Acceptable support for PDF | ||
+ | * Stylesheet | ||
+ | ** The stylesheet is kept as is intentionally to isolate to keep changing as the minimal level | ||
+ | * Tabulation Script | ||
+ | ** The main script library has been moved to CatGlobe.Report assembly | ||
+ | ** The code is hacked (with minimum impact) to allow plugging of new report's script library | ||
+ | ** Diagram can be created using script | ||
+ | * Web controls | ||
+ | ** DiagramViewer control has been created | ||
+ | ** DiagramSettings control has been created also, however this need more time to implement custom business and testing | ||
+ | | | ||
+ | * Generation process | ||
+ | ** Apply data generation for the full CrossDiagram | ||
+ | ** Apply data generation for other Diagrams | ||
+ | ** Optimize values calculation | ||
+ | ** Save calculation result to XML | ||
+ | * Image charts | ||
+ | ** Full testing (manual) is required after DiagramViewer page have finished | ||
+ | * Table charts | ||
+ | ** Apply external stylesheet | ||
+ | ** Apply the table splitting code | ||
+ | ** Support for PPT/Exel | ||
+ | * Stylesheet | ||
+ | ** Redefine the hierarchy of stylesheet classes | ||
* Tabulation Script | * Tabulation Script | ||
− | + | ** Move all implementations to new assembly | |
− | + | * Web controls | |
− | + | ** Implement ReportViewer control and page | |
− | * | + | ** Apply DiagramViewer to Dashboard and Monitor |
− | + | ** Apply ReportViewer to TabulationScript result viewer page | |
− | == | + | |- |
− | * | + | | Intergration |
− | * | + | | |
− | * | + | * Code has been committed |
− | + | * Side-by-side Nevron's assemblies deployment is fine | |
+ | * However, the project files (to actually build the new code into trunk) are not yet committed | ||
+ | * DiagramViewer page has been created | ||
+ | | | ||
+ | * Commit everything after version 5.8 has been released | ||
+ | * Finish DiagramViewer page => replace the current page | ||
+ | * Start the ReportViewer page | ||
+ | * Start integrating to Monitor | ||
+ | * Start integrating to Dashboard | ||
+ | * Start integrating to Tabulation Script | ||
+ | |- | ||
+ | | Optimization | ||
+ | | | ||
+ | | | ||
+ | * Unit/Integration tests code coverage must be checked => acceptable ratio is 85% | ||
+ | * Code profiling must be done => minor change in design | ||
+ | * Performance counter must be implemented | ||
+ | * Generation time must less than current system | ||
+ | |- | ||
+ | | Testing | ||
+ | | | ||
+ | * Test data generation API is completed | ||
+ | * Testers have created most of the current test cases | ||
+ | | | ||
+ | * Configuration settings for hard-coded values | ||
+ | * Check code coverage => define more test cases | ||
+ | * Ppt/Excel assertion | ||
+ | * Integrate CatGlobe.Report.Test project back to DomainTester project | ||
+ | * Testing of controls and javascript code | ||
+ | |} | ||
== Document revisions == | == Document revisions == | ||
Line 88: | Line 161: | ||
| '''Changed By''' | | '''Changed By''' | ||
| '''Description''' | | '''Description''' | ||
+ | | '''Svn revision''' | ||
|- | |- | ||
| 0.1 | | 0.1 | ||
Line 93: | Line 167: | ||
| Nguyen Trung Chinh | | Nguyen Trung Chinh | ||
| Create the first version for working with a single case of CDG | | Create the first version for working with a single case of CDG | ||
+ | | NA | ||
|- | |- | ||
| 0.1 | | 0.1 | ||
Line 98: | Line 173: | ||
| Nguyen Trung Chinh | | Nguyen Trung Chinh | ||
| Refine the document | | Refine the document | ||
+ | | NA | ||
+ | |- | ||
+ | | 0.2 | ||
+ | | 30.07.2009 | ||
+ | | Nguyen Trung Chinh | ||
+ | | Finish version 0.2 | ||
+ | | 54885 | ||
|} | |} |
Revision as of 08:19, 30 July 2009
Contents
Introduction
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.
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 documents must be officially registered on wiki page
Approach to new system
Steps are defined for approaching the new system, which are described below:
- Take the smallest possible case for prototyping (CrossDiagram with one axis for both row and column)
- Design the core functions to server the single case with full testing
- Approach in depth to:
- Tabulation Script
- Diagram Viewer
- StyleSheet
- Different presentation types
- Move on with Report and Report Viewer
- Move on with Monitor
- Move on with Dashboard
- Move on with data calculation optimization
- Performance refining => change design and test cases
- Full implementation for:
- Cross Diagram
- Other diagrams
- All presentation types
- Replace the old system's gui components
Design details
- Report unit testing system
- Diagram generation process
- Tabulation Script
- Tabulation Script for setting inline style to Table Chart
- Diagram viewer control
- Report viewer control
- Integrating with Dashboard
- Integrating with Monitor
Current implementation status
Task | Current status | Planned actions |
Implementation |
|
|
Intergration |
|
|
Optimization |
| |
Testing |
|
|
Document revisions
Version No. | Date | Changed By | Description | Svn revision |
0.1 | 27.04.2009 | Nguyen Trung Chinh | Create the first version for working with a single case of CDG | NA |
0.1 | 20.07.2009 | Nguyen Trung Chinh | Refine the document | NA |
0.2 | 30.07.2009 | Nguyen Trung Chinh | Finish version 0.2 | 54885 |