|
Построение графиков с несколькими показателями на форме | ☑ | ||
---|---|---|---|---|
0
asder117
22.08.19
✎
09:44
|
Коллеги доброго времени суток.
Есть задача отображения данных на диаграмме в форме обработки. При построении диаграммы с помощью СКД проблем не возникает. Но диаграмму оттуда очень сложно вытащить и засунуть в форму обработки. Пытаюсь постоить ее программно Диаграмма = ЭлементыФормы.ДиаграммаПлан; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РасчетнаяТаблица.ДатаПериода КАК ДатаПериода, | РасчетнаяТаблица.Прогноз КАК Прогноз, | РасчетнаяТаблица.ФактПоступлений КАК ФактПоступлений, | РасчетнаяТаблица.ПланНаМесяц КАК ПланНаМесяц, | РасчетнаяТаблица.План75 КАК План75, | РасчетнаяТаблица.ПланНарастающий КАК ПланНарастающий, | РасчетнаяТаблица.ПрогнозНарастающий КАК ПрогнозНарастающий, | РасчетнаяТаблица.ФактНарастающий КАК ФактНарастающий, | РасчетнаяТаблица.ВыполнениеПлана КАК ВыполнениеПлана, | РасчетнаяТаблица.ВыполнениеПрогноза КАК ВыполнениеПрогноза |ПОМЕСТИТЬ ТаблицаДляДиаграммы |ИЗ | &РасчетнаяТаблица КАК РасчетнаяТаблица |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ТаблицаДляДиаграммы.ДатаПериода КАК ДатаПериода, | ТаблицаДляДиаграммы.Прогноз КАК Прогноз, | ТаблицаДляДиаграммы.ФактПоступлений КАК ФактПоступлений, | ТаблицаДляДиаграммы.ПланНаМесяц КАК ПланНаМесяц, | ТаблицаДляДиаграммы.План75 КАК План75, | ТаблицаДляДиаграммы.ПланНарастающий КАК ПланНарастающий, | ТаблицаДляДиаграммы.ПрогнозНарастающий КАК ПрогнозНарастающий, | ТаблицаДляДиаграммы.ФактНарастающий КАК ФактНарастающий, | ТаблицаДляДиаграммы.ВыполнениеПлана КАК ВыполнениеПлана, | ТаблицаДляДиаграммы.ВыполнениеПрогноза КАК ВыполнениеПрогноза |ИЗ | ТаблицаДляДиаграммы КАК ТаблицаДляДиаграммы |ИТОГИ | СУММА(Прогноз), | МАКСИМУМ(ФактПоступлений), | СУММА(ПланНаМесяц), | СУММА(План75), | МАКСИМУМ(ПланНарастающий), | МАКСИМУМ(ПрогнозНарастающий), | МАКСИМУМ(ФактНарастающий), | СУММА(ВыполнениеПлана), | СУММА(ВыполнениеПрогноза) |ПО | ДатаПериода"; Запрос.УстановитьПараметр("РасчетнаяТаблица",РасчетнаяТаблица); РезультатЗапроса = Запрос.Выполнить(); Диаграмма.Обновление = Ложь; Диаграмма.Очистить(); Диаграмма.АвтоТранспонирование = Ложь; Точка = Диаграмма.УстановитьТочку("Прогноз нарастающий"); ТочкаФ = Диаграмма.УстановитьТочку("Факт Нарастающий"); // ВыборкаДатаПериода = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); // Пока ВыборкаДатаПериода.Следующий() Цикл Серия = Диаграмма.УстановитьСерию(ВыборкаДатаПериода.ДатаПериода); //СерияФ = Диаграмма.УстановитьСерию(ВыборкаДатаПериода.ДатаПериода); //СерияФ.Индикатор = Истина; //Серия.Текст = ВыборкаДатаПериода.ДатаПериода; //Серия.Расшифровка = ВыборкаДатаПериода.ДатаПериода; Диаграмма.УстановитьЗначение(Точка, Серия, ВыборкаДатаПериода.ФактПоступлений, ); //Диаграмма.УстановитьЗначение(ТочкаФ, СерияФ, ВыборкаДатаПериода.ФактПоступлений, Серия.Расшифровка); Диаграмма.УстановитьЗначение(ТочкаФ, Серия, ВыборкаДатаПериода.ФактНарастающий, ); КонецЦикла; Диаграмма.АвтоТранспонирование = Истина; Диаграмма.Обновление = Истина; С одним показателем все рисует хорошо. При нескольких нифига. Может кто сталкивался. Заранее спасибо |
|||
1
asder117
22.08.19
✎
13:25
|
Всем спасибо за интерес к моему вопросу. Решил его сам. Кому-то может будет полезно
Диаграмма = ЭлементыФормы.ДиаграммаПлан; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РасчетнаяТаблица.ДатаПериода КАК ДатаПериода, | РасчетнаяТаблица.ФактНарастающий КАК ФактНарастающий, | РасчетнаяТаблица.Прогноз КАК Прогноз, | РасчетнаяТаблица.ФактПоступлений КАК ФактПоступлений, | РасчетнаяТаблица.ПланНаМесяц КАК ПланНаМесяц, | РасчетнаяТаблица.План75 КАК План75, | РасчетнаяТаблица.ПланНарастающий КАК ПланНарастающий, | РасчетнаяТаблица.ПрогнозНарастающий КАК ПрогнозНарастающий, | РасчетнаяТаблица.ВыполнениеПлана КАК ВыполнениеПлана, | РасчетнаяТаблица.ВыполнениеПрогноза КАК ВыполнениеПрогноза |ПОМЕСТИТЬ ТаблицаДляДиаграммы |ИЗ | &РасчетнаяТаблица КАК РасчетнаяТаблица |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ТаблицаДляДиаграммы.ДатаПериода КАК ДатаПериода, | ТаблицаДляДиаграммы.ФактНарастающий КАК ФактНарастающий, | ТаблицаДляДиаграммы.Прогноз КАК Прогноз, | ТаблицаДляДиаграммы.ФактПоступлений КАК ФактПоступлений, | ТаблицаДляДиаграммы.ПланНаМесяц КАК ПланНаМесяц, | ТаблицаДляДиаграммы.План75 КАК План75, | ТаблицаДляДиаграммы.ПланНарастающий КАК ПланНарастающий, | ТаблицаДляДиаграммы.ПрогнозНарастающий КАК ПрогнозНарастающий, | ТаблицаДляДиаграммы.ВыполнениеПлана КАК ВыполнениеПлана, | ТаблицаДляДиаграммы.ВыполнениеПрогноза КАК ВыполнениеПрогноза |ИЗ | ТаблицаДляДиаграммы КАК ТаблицаДляДиаграммы |ИТОГИ | МАКСИМУМ(ФактНарастающий), | СУММА(Прогноз), | МАКСИМУМ(ФактПоступлений), | СУММА(ПланНаМесяц), | МАКСИМУМ(План75), | МАКСИМУМ(ПланНарастающий), | МАКСИМУМ(ПрогнозНарастающий), | СУММА(ВыполнениеПлана), | СУММА(ВыполнениеПрогноза) |ПО | ДатаПериода"; Запрос.УстановитьПараметр("РасчетнаяТаблица",РасчетнаяТаблица); РезультатЗапроса = Запрос.Выполнить(); Диаграмма.Обновление = Ложь; Диаграмма.Очистить(); Диаграмма.АвтоТранспонирование = Ложь; //Точка = Диаграмма.УстановитьТочку("ФактНарастающий"); //Точка2 = Диаграмма.УстановитьТочку("Прогноз"); //Точка = Диаграмма.Точки.Добавить(); Серия = Диаграмма.Серии.Добавить(); Серия2 = Диаграмма.Серии.Добавить(); Серия3 = Диаграмма.Серии.Добавить(); Серия4 = Диаграмма.Серии.Добавить(); Серия5 = Диаграмма.Серии.Добавить(); //Точка2 = Диаграмма.Точки.Добавить(); ВыборкаДатаПериода = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаДатаПериода.Следующий() Цикл // Серия = Диаграмма.Серии.Добавить(); Точка = Диаграмма.УстановитьТочку(Формат(ВыборкаДатаПериода.ДатаПериода, "ДФ=dd.MM.yyyy")); //Серия.Текст = ВыборкаДатаПериода.ДатаПериода; //Серия.Расшифровка = ВыборкаДатаПериода.ДатаПериода; Диаграмма.УстановитьЗначение(Точка, Серия, ВыборкаДатаПериода.ФактНарастающий, ); Диаграмма.УстановитьЗначение(Точка, Серия2, ВыборкаДатаПериода.План75, ); Диаграмма.УстановитьЗначение(Точка, Серия3, ВыборкаДатаПериода.ПрогнозНарастающий, ); Диаграмма.УстановитьЗначение(Точка, Серия4, ВыборкаДатаПериода.ФактПоступлений, ); Диаграмма.УстановитьЗначение(Точка, Серия5, ВыборкаДатаПериода.ПланНарастающий, ); //Диаграмма.УстановитьЗначение(Точка, Серия6, ВыборкаДатаПериода.ПрогнозНарастающий, ); КонецЦикла; Диаграмма.АвтоТранспонирование = Истина; Диаграмма.Обновление = Истина; Диаграмма.ОтображатьЛегенду=Ложь; //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА //Область.Параметры.Регион = РегионСтрока; //Область.Параметры.ПериодВзаиморасчетов = Формат(ПериодВзаиморасчетов, "ДФ=ММММ"); //Область.Параметры.ТекущаяДата = Формат(ТекущаяДата(), "ДФ=dd.MM.yyyy"); //Область.Параметры.ПроцентВыполнения = выполнениеПлана; ЭлементыФормы.Надпись84.Заголовок ="Выполнение плана продаж за " + Формат(ДатаСреза, "ДФ=ММММ")+" месяц по состоянию на "+Формат(ТекущаяДата(), "ДФ=dd.MM.yyyy") + " процент выполнения " + выполнениеПлана; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |