Легкий тюнинг диаграмм - 04 часть 2
Запись от Fighter размещена 08.01.2012 в 13:17
Теги 1:n, chart, link-entity
В предыдущем посте мы столкнулись с проблемой подсчета организаций, имеющих сделки и нет.
Наша логика строилась на использование вложенного (link-entity) запроса, внутри которого и проводился подсчет. В результате мы получали неправильный подсчет Организаций, у которых есть больше чем одна сделка (эти Организации подсчитывались столько раз, сколько сделок имели).
Решение проблемы заключается в правильном выборе типа диаграммы.
Теперь наша видоизмененная логика предполагает:
1) Подсчет всех Организаций во внешнем запросе с использованием aggregate=”countcolumn” distinct=”true”
2) Подсчет Организаций со сделками во внутреннем запросе по полю customerid с теми же требованиями aggregate=”countcolumn” distinct=”true”.
Приступаем к практической реализации.
Строим столбчатую диаграмму с двумя рядами данных, как показано на рис.
На выходе имеем что-то вроде этого:
Редактируем раздел <fetchcollections>:
На выходе получаем:
PS. Как изменить подписи к осям и названия рядов в легенде – описано в предыдущих темах.
Наша логика строилась на использование вложенного (link-entity) запроса, внутри которого и проводился подсчет. В результате мы получали неправильный подсчет Организаций, у которых есть больше чем одна сделка (эти Организации подсчитывались столько раз, сколько сделок имели).
Решение проблемы заключается в правильном выборе типа диаграммы.
Теперь наша видоизмененная логика предполагает:
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