В статье приведен пример вывода отчета — диаграммы ганта следующего вида:
Отчет показывает время загрузки печей, а именно в каком режиме работала печь и в какой период времени.
В отчете по вертикали указаны номера печей, по горизонтали временной отрезок. Полоски, выделенные цветом, указывают на режим работы печи (нормализация, закалка, отпуск);
Порядок действий по созданию подобного отчета:
- Создать внешнюю обработку;
- Создать форму обработки, добавить в нее реквизит с типом данных — «Диаграмма ганта»;
- По нажатию кнопки «Сформировать» вызвать следующую процедуру:
&НаСервере Процедура СформироватьОтчет() ДиаграммаГанта.Очистить(); Запрос = Новый Запрос( "ВЫБРАТЬ | Садка.НомерПечи КАК НомерПечи, | Садка.Режим КАК Режим, | Садка.НачалоРежима КАК НачалоРежима, | Садка.ОкончаниеРежима КАК ОкончаниеРежима |ИЗ | Документ.Сыдка КАК Садка |ГДЕ | Садка.НомерПечи <> """" | И Садка.НачалоРежима <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) | И Садка.ОкончаниеРежима <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) | И Садка.НачалоРежима МЕЖДУ &НачалоПериода И &ОкончаниеПериода"); Запрос.УстановитьПараметр("НачалоПериода", НачалоДня(Отчет.Период.ДатаНачала)); Запрос.УстановитьПараметр("ОкончаниеПериода", КонецДня(Отчет.Период.ДатаОкончания)); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл //на оси по горизонтали отображается время //на оси по вертикали зададим отображение номеров печей Точка = ДиаграммаГанта.УстановитьТочку(Выборка.НомерПечи); //зададим в каком режиме будет работать печь Серия = ДиаграммаГанта.УстановитьСерию(Выборка.Режим); Значение = ДиаграммаГанта.ПолучитьЗначение(Точка, Серия); //установим период времени работы печи в заданном режиме Интервал = Значение.Добавить(); Интервал.Начало = Выборка.НачалоРежима; Интервал.Конец = Выборка.ОкончаниеРежима; КонецЦикла; КонецПроцедуры
Оставить комментарий