Легкий тюнинг диаграмм - 04 часть 2
Запись от Fighter размещена 08.01.2012 в 13:17
Теги 1:n, chart, link-entity
В предыдущем посте мы столкнулись с проблемой подсчета организаций, имеющих сделки и нет.
Наша логика строилась на использование вложенного (link-entity) запроса, внутри которого и проводился подсчет. В результате мы получали неправильный подсчет Организаций, у которых есть больше чем одна сделка (эти Организации подсчитывались столько раз, сколько сделок имели).
Решение проблемы заключается в правильном выборе типа диаграммы.![Smile](/forums/images/smilies/smile.gif)
Теперь наша видоизмененная логика предполагает:
1) Подсчет всех Организаций во внешнем запросе с использованием aggregate=”countcolumn” distinct=”true”
2) Подсчет Организаций со сделками во внутреннем запросе по полю customerid с теми же требованиями aggregate=”countcolumn” distinct=”true”.
Приступаем к практической реализации.
Строим столбчатую диаграмму с двумя рядами данных, как показано на рис.
![Нажмите на изображение для увеличения
Название: Chart_10.png
Просмотров: 211
Размер: 19.5 Кб
ID: 194](//axforum.info/forums/blog_attachment.php?attachmentid=194&thumb=1&d=1326014031)
На выходе имеем что-то вроде этого:
![Нажмите на изображение для увеличения
Название: Chart_11.png
Просмотров: 122
Размер: 14.8 Кб
ID: 195](//axforum.info/forums/blog_attachment.php?attachmentid=195&thumb=1&d=1326014031)
Редактируем раздел <fetchcollections>:
На выходе получаем:
![Нажмите на изображение для увеличения
Название: Chart_12.png
Просмотров: 222
Размер: 16.4 Кб
ID: 196](//axforum.info/forums/blog_attachment.php?attachmentid=196&thumb=1&d=1326014041)
PS. Как изменить подписи к осям и названия рядов в легенде – описано в предыдущих темах.
Наша логика строилась на использование вложенного (link-entity) запроса, внутри которого и проводился подсчет. В результате мы получали неправильный подсчет Организаций, у которых есть больше чем одна сделка (эти Организации подсчитывались столько раз, сколько сделок имели).
Решение проблемы заключается в правильном выборе типа диаграммы.
![Smile](/forums/images/smilies/smile.gif)
Теперь наша видоизмененная логика предполагает:
1) Подсчет всех Организаций во внешнем запросе с использованием aggregate=”countcolumn” distinct=”true”
2) Подсчет Организаций со сделками во внутреннем запросе по полю customerid с теми же требованиями aggregate=”countcolumn” distinct=”true”.
Приступаем к практической реализации.
Строим столбчатую диаграмму с двумя рядами данных, как показано на рис.
На выходе имеем что-то вроде этого:
Редактируем раздел <fetchcollections>:
Код:
<fetchcollection> <fetch mapping="logical" aggregate="true"> <entity name="account"> <attribute groupby="true" alias="_CRMAutoGen_groupby_column_Num_0" dategrouping="month" name="createdon" /> <attribute alias="_CRMAutoGen_aggregate_column_Num_0" name="name" aggregate="countcolumn" distinct="true" /> <link-entity name="opportunity" from="customerid" to="accountid" link-type="outer"> <attribute alias="_CRMAutoGen_aggregate_column_Num_13" name="customerid" aggregate="countcolumn" distinct="true" /> </link-entity> </entity> </fetch> </fetchcollection>
PS. Как изменить подписи к осям и названия рядов в легенде – описано в предыдущих темах.
Всего комментариев 1
Комментарии
-
Добавим законченности в диаграмму и выровняем масштаб по оси Y для двух рядов данных.
Просто уберите в определении второго ряда ссылку на вторую ось Y. Т.е. в разделе
<Series ChartType="Column" IsValueShownAsLabel="True" Font="{0}, 9.5px" LabelForeColor="59, 59, 59" CustomProperties="PointWidth=0.75, MaxPixelPointWidth=40" YAxisType="Secondary"></Series>
нужно удалить YAxisType="Secondary"Запись от Fighter размещена 08.01.2012 в 13:25