VN3056REP - Same business logic as View Report for View Cross function from Questionnaire list

From Catglobe Wiki
Revision as of 11:50, 23 March 2010 by Catglobe (talk | contribs) (Workload)
Jump to: navigation, search

Introduction

ViewCrossFunction.PNG

The current process of "View cross" function in Questionnaire list:

  • Create / Rebuild the default data cache of selected questionnaire.
  • Check if the data cache has any axises, if yes redirect to a "nearly" cross viewer page, if no, just render an error message.

Disadvantage:

  • The data cache is always rebuilt if there is a change in data of questionnaire.
  • If the questionnaire template of questionnaire is changed, it is too difficult to re-setup the data cache.

Design decisions

When "View Cross" function of Questionnaire list is clicked:

  • If this is the first time that this function is used for selected questionnaire, create a data cache and redirect to cross viewer page.
  • If not, use the same business logic as "View Report" function, show the below dialog

ViewCrossDialog.PNG

  • If option 1 is selected, data cache will be re-setup, rebuild, and then show the cross viewer page.
  • If option 2 is selected, just show the cross viewer page with the old data cache.

Design detail

TableChartBuilder.png

There are currently 3 types of layout that are encoded inside enum TableChartLayoutType. There is also a factory method for getting the right builder base on its layout type.

TableChartBuilder provide all necessary methods for building a table. There are a couple of abstract methods that must be implemented in the concrete implementation. The next important one is the ClassicTableChartLayoutType which build the class layout of cross diagram as image below.

CrossDiagram-Classic.png

The 2 child classes of ClassicTableChartLayoutType provide 2 different layout (left title and ifka) as below images

  • Left title

CrossDiagram-LeftTitleClassic.png

  • IFKA

CrossDiagram-Ifka.png

There is another request that require a lot more effort which is Synchronize tables' size.

Document revisions

Version No. Date Changed By Description Svn revision
0.1 05.02.2010 Nguyễn Trung Chính Add description for cgscript NA
0.2 11.02.2010 Nguyễn Trung Chính Finish 60300