Источник:
http://axforum.info/forums/blog.php?b=306
==============
Строим диаграмму для связанных 1:N сущностей
Типичная задачка: требуется построить диаграмму, показывающую соотношение общего количества Организаций к Организациям, в отношении которых велись / ведутся Возможные сделки.
К сожалению, такой вид диаграммы в стандартном джентельменском наборе CRM отсутствует :( (понятно, что все остальные условия фильтрации: за период, по отделам, по регионам… можно возложить на кастомное представление Организаций).
Попробуем решить это задачку редактированием раздела определения диаграммы.
Логика наша будет выглядеть примерно следующим образом: нужно извлечь и подсчитать все Организации, параллельно построив запрос к связанным возможным сделкам (т.е. link entity и не забыть, чтобы запрос был “outer”!) и проведя второй подсчет Организаций, у которых есть возможные сделки. Опять же, группирование записей (group by) должно быть по тем параметрам, которые нас интересуют. Так как группирование и агрегирование (подсчет) будем выполнять внутри вложенного запроса, то и рассматривать поля группировки / агрегата нужно по отношению к Возможной сделке.
В самом простом случае (когда интересует только количество Организаций со сделками, без детализации состояния сделок) подойдет любое неиспользуемое поле в сущности Возможная сделка. Здесь фишка заключается в том, что это поле будет у всех сделок иметь одно и то же значение.
Я решил, что мне подойдет поле Приоритет (“
prioritycode”). Если вы хотите детализировать состояние сделок по Организациям, используйте поле Состояние «statecode». Оно даст нам три дополнительных значения агрегата:
Открыть,
Потеряно и
Реализовано.
Ну вот, хватит теории, переходим к практике.
Создаем кастомную круговую диаграмму
Организации со сделками и без как показано на рис. ниже:

Сохраняем, экспортируем, отрываем в XML редакторе.
Находим раздел
Код:
Вставляем в этот раздел вложенный запрос от Организации к Возможным сделкам:
А теперь берем и переносим
Код:
Во вложенный запрос. Вот что должно получиться:
Код:
Наводим марафет.
Мы договорились, что считать будем по полю prioritycode. Поэтому меняем в группе
attribute groupby значение поля name (теперь будет name=”prioritycode”).
Далее, так как агрегирование уже выполняется внутри вложенного запроса, то группа
attribute aggregate должна ссылаться на существующее поле в сущности Возможная сделка. Так как поле name есть и в Организации, и в Возможной сделке, то все оставляем как есть.
Наводим лоск.
Поле prioritycode имеет одно значение, равное Значение по умолчанию. Которое и будет отображено на диаграмме. Как-то некрасиво. Поэтому лезем внутрь и меняем это значение на «Организации со сделками». Публикуемся, переходим на представление с Организациями и наслаждаемся :)

:)
Источник:
http://axforum.info/forums/blog.php?b=306