|
Диаграмма в 8.3 | ☑ | ||
---|---|---|---|---|
0
ZaprosMan
29.12.16
✎
16:33
|
Всем привет и с наступающим!!
Мучаю диаграмму Ганта. Получается, но не совсем так как надо. Есть допиленный справочник проекты. В него добавлена таб часть "Этапы". В данный момент предусмотрено до пяти независимых групп этапов. Чтобы было понятнее вот фотка: https://cloud.mail.ru/public/LRJ3/Q2cnhXNUg В данном случае составлено три группы этапов из которых в работе только первый. Диаграмма показывает план и факт выполнения. Если включить вторую группу этапов в работу, то диаграмма показывает следующее: https://cloud.mail.ru/public/9AKQ/5Y3q5YLMK В диаграмма появляется лишних две строки https://cloud.mail.ru/public/9S76/JCPbi82fx Они появляются вместе с созданием новой точки диаграммы. КОД: Процедура ОбновитьДиаграмму() Перем Вработе,ИмяЭтап,ДатаНачалаЭтапа; // Диаграмма.Очистить(); // Для Сч=1 По 5 Цикл Выполнить("Вработе = Объект.ЭтапВРаботе"+Строка(Сч)); Если Не Вработе Тогда Продолжить; КонецЕсли; МассвДат = Объект.Этапы.НайтиСтроки(Новый Структура("НомерЭтапа",Сч)); Выполнить("ИмяЭтап = Объект.ИмяЭтап"+Строка(Сч)); ТочкаЭтапов = Диаграмма.УстановитьТочку(ИмяЭтап,Диаграмма); //ТочкаЭтапов.Родитель = Неопределено; // Серия = Диаграмма.УстановитьСерию(Строка(ИмяЭтап)+" (план)"); СерияФакт = Диаграмма.УстановитьСерию(Строка(ИмяЭтап)+" (факт)"); Выполнить("ДатаНачалаЭтапа = Объект.ДатаНачалаЭтапа"+Строка(Сч)); НачалоИнтервала = ДатаНачалаЭтапа; НачалоИнтервалаФакт = ДатаНачалаЭтапа; Для Каждого ЭлементМассива Из МассвДат Цикл Точка = ТочкаЭтапов.Точки.Добавить(); Точка.Текст = Строка(ЭлементМассива.Этап); //План Значение = Диаграмма.ПолучитьЗначение(Точка, Серия); Интервал = Значение.Добавить(); Интервал.Начало = НачалоИнтервала; Интервал.Конец = ЭлементМассива.ДатаПлан; // НачалоИнтервала = ЭлементМассива.ДатаПлан; /////////Факт Если ЗначениеЗаполнено(ЭлементМассива.ДатаФакт) Тогда ЗначениеФакт = Диаграмма.ПолучитьЗначение(Точка, СерияФакт); ИнтервалФакт = ЗначениеФакт.Добавить(); ИнтервалФакт.Начало = НачалоИнтервалаФакт; ИнтервалФакт.Конец = ЭлементМассива.ДатаФакт; // НачалоИнтервалаФакт = ЭлементМассива.ДатаФакт; КонецЕсли; КонецЦикла; КонецЦикла; КонецПроцедуры Подскажите, что тут не так? Чет запутался в конец. Спасибо!!!! |
|||
1
ZaprosMan
29.12.16
✎
16:59
|
Уже все отмечают наверное?
Я один еще работаю? |
|||
2
Жан Пердежон
29.12.16
✎
18:04
|
Точка = ТочкаЭтапов.Точки.Добавить();
|
|||
3
ZaprosMan
29.12.16
✎
18:15
|
(2) Пробовал вынести из цикла "точкуЗаказа" эфект, не тот.
Я думаю дело в Серия = Диаграмма.УстановитьСерию(Строка(ИмяЭтап)+" (план)"); СерияФакт = Диаграмма.УстановитьСерию(Строка(ИмяЭтап)+" (факт)"); Эти куски кода выполняются 4 раза. |
|||
4
ZaprosMan
29.12.16
✎
18:16
|
Когда включены два блока этапов.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |