Difference between revisions of "TrackingDiagram"

From Catglobe Wiki
Jump to: navigation, search
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 10: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:

  1. 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.
  2. Data cache must have StartDate and EndDate column to be used with tracking diagram
  3. Diagram's XML must be used (it is optional in CrossDiagram)
  4. 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
  5. Formulas are PRE-DEFINED by end user
  6. Time periods and target groups in fact are additional filters
  7. 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:

TrackingDiagramInfo.png

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