Легкий тюнинг диаграмм - 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



