VN3056REP - Same business logic as View Report for View Cross function from Questionnaire list
Introduction
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
- 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
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.
The 2 child classes of ClassicTableChartLayoutType provide 2 different layout (left title and ifka) as below images
- Left title
- IFKA
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 |