Difference between revisions of "TrackingDiagram"
Line 25: | Line 25: | ||
== Detail design == | == Detail design == | ||
+ | |||
+ | 1. To refactor the generalization:<br> | ||
+ | |||
+ | Diagram:<br> | ||
+ | |||
+ | New virtual method DataSeries[][] BuildData(DiagramInfo diagramInfo) (moved onto from CrossDiagram originally)<br> | ||
+ | |||
+ | New property called Calculator (type ICalculator) will be initialized whenever method BuildData is called<br> | ||
+ | |||
+ | |||
+ | |||
+ | DiagramInfo:<br> | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | 2. Create new TrackingDiagramInfo:<br> | ||
[[Image:TrackingDiagramInfo.png]] | [[Image:TrackingDiagramInfo.png]] |
Revision as of 09:22, 15 January 2010
New Report Design - 2009 => TrackingDiagram
Introduction
This page is detail design for detail implementation of tracking diagram, both on GUI and Business layers.
First feeling:
- There are lots of setting on GUI makes us feel that this diagram is not close to cross diagram, however basically the only different is in phase 1 (DataSeries generation), the remaining are nearly the same.
- Data cache must have StartDate and EndDate column to be used with tracking diagram
- Diagram's XML must be used (it is optional in CrossDiagram)
- There are 2 parts: static part (defined in XML - list of branches, list of target group, timeset, etc.), dynamic part (defined on GUI - which brand to draw on, values of target group, trend line, time period, etc.) => dynamic part MUST be saved for future requests
- Formulas are PRE-DEFINED by end user
- Time periods and target groups in fact are additional filters
- Trend line is just another data series to draw
Design decisions
GUI:
- Split into user controls with MVP implementation => must have some unit test for this
- Support skin => default skin is just like the default one of CrossDiagram
XML:
- We focus on the viewer part instead of editing part => reuse the old XML format, however there must be an FORMAT ADAPTOR that is capable of parsing both old and new (might be defined later) format
Business:
- TrackingDiagramInfo has the same role as CrossDiagramInfo for cross diagram
Detail design
1. To refactor the generalization:
Diagram:
New virtual method DataSeries[][] BuildData(DiagramInfo diagramInfo) (moved onto from CrossDiagram originally)
New property called Calculator (type ICalculator) will be initialized whenever method BuildData is called
DiagramInfo:
2. Create new TrackingDiagramInfo:
Document revisions
Version No. | Date | Changed By | Description | Svn revision |
0.1 | 31.12.2009 | Nguyen Trung Chinh | Create the first version | 59167 |
0.1.1 | 15.01.2009 | Nguyễn Điển Nghĩa | Initialize basic class |