|
Диаграмма Ганта. Подскажите | ☑ | ||
|---|---|---|---|---|
|
0
Невский Александр
30.07.10
✎
16:28
|
Есть у меня отчет, называется "График ТО". Сейчас в нем при нажатии на кнопку "сформировать" идет блок с запросами, и процедурами расстановки ТО по машинам с установленными параметрами загрузки ТО и коэффициентом "предпочтения ТО" для каждой расстановки. Но сут не в этом ... При нажатии на кнопку у меня выводится диаграмма Ганта - первая в форму, вторая - в табличный документ (для печати).
Вопрос ... на форме диаграмма помещается вся, а в табличном документе нет. Подскажите, как сделать, чтобы диаграмма в табличном документе выводилась полностью? Вот текст вывода диаграмм: ТД = Новый ТабличныйДокумент; МакетОТчета = ПолучитьМакет("ГрафикТО"); ОсновнаяЧасть = МакетОтчета.ПолучитьОбласть("Основная"); ДГ = ЭлементыФормы.ДиаграммаГанта1; ДГ1 = ОсновнаяЧасть.Рисунки.D2.Объект; ДГ.Очистить(); ДГ.ОбластьЗаголовка.Текст = "График ТО"; ДГ.АвтоОпределениеПолногоИнтервала = Ложь; ДГ.УстановитьПолныйИнтервал(НачалоДня(НачПериода), КонецДня(КонПериода)); ДГ.ЕдиницаПериодическогоВарианта=ТипЕдиницыШкалыВремени.День; ДГ.ПоддержкаМасштаба=ПоддержкаМасштабаДиаграммыГанта.Авто; ДГ1.Очистить(); ДГ1.ОбластьЗаголовка.Текст = "График ТО "+ПредставлениеПериода(НачалоДня(НачПериода),КонецДня(КонПериода),"ФП=ИСТИНА"); ДГ1.АвтоОпределениеПолногоИнтервала = ЛОЖЬ; ДГ1.УстановитьПолныйИнтервал(НачалоДня(НачПериода), КонецДня(КонПериода)); ДГ1.ЕдиницаПериодическогоВарианта=ТипЕдиницыШкалыВремени.День; ДГ1.ПоддержкаМасштаба=ПоддержкаМасштабаДиаграммыГанта.ВсеДанные; ДГ1.РастягиваниеПоВертикали = РастягиваниеПоВертикалиДиаграммыГанта.НеРастягивать; ДГ1.ВертикальнаяПрокрутка = ИСТИНА; ДГ1.ОтображениеИнтервала = ОтображениеИнтервалаДиаграммыГанта.Объемный; ДГ1.ПоддержкаМасштаба = ПоддержкаМасштабаДиаграммыГанта.Авто; Для Каждого Эл ИЗ ДГ1.ОбластьПостроения.ШкалаВремени.Элементы Цикл Эл.ФорматДня = ФорматДняШкалыВремени.ДеньМесяца; Эл.Формат = "ДФ='dd'"; КонецЦикла; Мас = Новый Соответствие; Мас1 = Новый Соответствие; Для Каждого СТР ИЗ РезПОТО22 Цикл ТекТ = ДГ.УстановитьТочку(Строка(СТР.ТС)); ТекТ1 = ДГ1.УстановитьТочку(Строка(СТР.ТС)); Мас.Вставить(Строка(уатОбщегоНазначения.уатПрочитатьРеквизитыТС(СТР.ТС,"ГосударственныйНомер").ГосударственныйНомер),ТекТ); Мас1.Вставить(Строка(уатОбщегоНазначения.уатПрочитатьРеквизитыТС(СТР.ТС,"ГосударственныйНомер").ГосударственныйНомер),ТекТ1); КонецЦикла; Сер = Новый Соответствие; Сер1 = Новый Соответствие; Для Каждого СТР1 ИЗ ТаблицаТО.Колонки Цикл Если СТР1.Имя = "ПодтверждениеПользователя" Тогда Продолжить; КонецЕсли; ТекС = ДГ.УстановитьСерию(Строка(СТР1.Имя)); ТекС1 = ДГ1.УстановитьСерию(Строка(СТР1.Имя)); Сер.Вставить(Строка(СТР1.Имя),ТекС); Сер1.Вставить(Строка(СТР1.Имя),ТекС1); КонецЦикла; Для Каждого Кол ИЗ ТаблицаТО.Колонки Цикл Если ИсклКолонки.Найти(Кол.Имя) = Неопределено Тогда ТекЦвет = ТаблицаЦветовТО.НайтиСтроки(Новый Структура("ВидТО",Справочники.уатВидыОбслуживанияТС.НайтиПоНаименованию(Строка(Кол.Имя)))); Если ТекЦвет.Количество()>0 Тогда Сер.Получить(Строка(Кол.Имя)).Цвет = ТекЦвет.Получить(0).Цвет; Сер1.Получить(Строка(Кол.Имя)).Цвет = ТекЦвет.Получить(0).Цвет; КонецЕсли; КонецЕсли; КонецЦикла; ПервыйДень = НачалоМесяца(ТекущаяДата()); Для Каждого СТР2 ИЗ РезПОТО22 Цикл Значение = ДГ.ПолучитьЗначение(Мас.Получить(Строка(уатОбщегоНазначения.уатПрочитатьРеквизитыТС(СТР2.ТС,"ГосударственныйНомер").ГосударственныйНомер)), Сер.Получить(СокрЛП(Строка(Стр2.ВидТО.Наименование)))); Интервал = Значение.Добавить(); Интервал.Текст = СокрЛП(Строка(Стр2.ВидТО.Наименование)); Интервал.Начало = СТР2.ДеньТО; Интервал.Конец = СТР2.ДеньТО + 24 * 60 * 60; Значение1 = ДГ1.ПолучитьЗначение(Мас1.Получить(Строка(уатОбщегоНазначения.уатПрочитатьРеквизитыТС(СТР2.ТС,"ГосударственныйНомер").ГосударственныйНомер)), Сер1.Получить(СокрЛП(Строка(Стр2.ВидТО.Наименование)))); Интервал = Значение1.Добавить(); Интервал.Текст = СТР2.ВидТО.Наименование; Интервал.Начало = СТР2.ДеньТО; Интервал.Конец = СТР2.ДеньТО + 24 * 60 * 60; КонецЦикла; МаксимальнаяДата = НачалоДня(КонПериода); ТекущаяДата = ПервыйДень; ЗапросПоВыходнымДням = Новый Запрос; ЗапросПоВыходнымДням.Текст = "ВЫБРАТЬ | уатРегламентированныйПроизводственныйКалендарь.ДатаКалендаря КАК ДатаВ |ИЗ | РегистрСведений.уатРегламентированныйПроизводственныйКалендарь КАК уатРегламентированныйПроизводственныйКалендарь |ГДЕ | уатРегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ &НачДата И &КонДата | И (уатРегламентированныйПроизводственныйКалендарь.ВидДня = ЗНАЧЕНИЕ(Перечисление.уатВидыДнейПроизводственногоКалендаря.Суббота) | ИЛИ уатРегламентированныйПроизводственныйКалендарь.ВидДня = ЗНАЧЕНИЕ(Перечисление.уатВидыДнейПроизводственногоКалендаря.Воскресенье) | ИЛИ уатРегламентированныйПроизводственныйКалендарь.ВидДня = ЗНАЧЕНИЕ(Перечисление.уатВидыДнейПроизводственногоКалендаря.Праздник))"; ЗапросПоВыходнымДням.УстановитьПараметр("НачДата",НачалоДня(НачПериода)); ЗапросПоВыходнымДням.УстановитьПараметр("КонДата",КонецДня(КонПериода)); РезПоВыходнымДням = ЗапросПоВыходнымДням.Выполнить().Выгрузить(); Пока ТекущаяДата <= МаксимальнаяДата Цикл Если РезПоВыходнымДням.НайтиСтроки(Новый Структура("ДатаВ",ТекущаяДата)).Количество() > 0 Тогда ДГ.ИнтервалыФона.Добавить(ТекущаяДата, ТекущаяДата + 24 * 3600); ДГ1.ИнтервалыФона.Добавить(ТекущаяДата, ТекущаяДата + 24 * 3600); КонецЕсли; ТекущаяДата = ТекущаяДата + 24 * 3600; КонецЦикла; |
|||
|
1
Невский Александр
30.07.10
✎
16:33
|
(0) + Диаграмма выводится полностью, только не все точки в ней отображаются, приходится двигать ее границу вниз. Можно ли сделать так, чтобы она автоматически подстраивалась под то количество строк, которое выводится?
|
|||
|
2
Невский Александр
30.07.10
✎
16:52
|
Сделал пока вот так
ОсновнаяЧасть.Рисунки.D2.Высота = РезПОТО22.Количество()*12; |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |