0
Anempadest
12.03.16
✎
01:12
|
Строю круговую диаграмму "Удельный вес результатов проектов за период".
Процедура Рисовать(Ди)
Ди.Обновление(0);
Ди.Очистить();
//отчет
Вариант=Варианты.ПолучитьЗначение(Варианты.ТекущаяСтрока());
//запрос
Запрос=СоздатьОбъект("Запрос");
ТекстЗапроса="
|Период С ДатаН По ДатаК;
|_Проект=Регистр.Продажа.Запас.Проект;
|_Сумма=Регистр.Продажа.Сумма;
|_Затраты=Регистр.Продажа.Затраты;
|Группировка _Проект Без Групп;
|";
Если Вариант="ПроектВыручка" Тогда
ТекстЗапроса=ТекстЗапроса+"
|Функция Значение=Сумма(_Сумма);
|";
Ди.Заголовок="Выручка по проектам";
ИначеЕсли Вариант="ПроектПрибыль" Тогда
ТекстЗапроса=ТекстЗапроса+"
|Функция Выручка=Сумма(_Сумма);
|Функция Значение=Сумма(_Сумма-_Затраты);
|";
Ди.Заголовок="Прибыль по проектам";
КонецЕсли;
Если Запрос.Выполнить(ТекстЗапроса)=0 Тогда
Возврат;
КонецЕсли;
//заголовок
Ди.Заголовок=Ди.Заголовок+" ("+ПериодСтр(ДатаН,ДатаК)+")";
//много
М=СоздатьОбъект("ТаблицаЗначений");
Запрос.Выгрузить(М,0,0);
//заполнить
М.Свернуть("_Проект","Значение");
М.Сортировать("-Значение");
М.ВыбратьСтроки();
Пока М.ПолучитьСтроку()=1 Цикл
Состояние(М._Проект.Наименование);
Ди.УстановитьИмяСерии(М.НомерСтроки,М._Проект.Наименование);
Ди.УстановитьЗначение(1,М.НомерСтроки,М.Значение,);
КонецЦикла;
//обновить
Ди.Обновление(1);
КонецПроцедуры
Проблема.
Если выводить вариант ПроектВыручка, то всегда выводится круговая диаграмма. А если выводить вариант ПроектПрибыль, то иногда выводится гистограмма. Гистограмма выводится практически всегда, когда устанавливаешь период отчёта более, чем за квартал. Если квартал и менее, то выводится круговая диаграмма.
В свойствах диаграммы стоит тип Круговая.
|
|