Отчет с присоединением областей.
Добрый день. Подскажите пож-та, как можно реализовать присоединенную область со стрелками.Есть отчет, с иерархией. Хочется сделать красиво, добавить стрелки что откуда и куда см 1 скрин. Незнаю как сделать помогите советом. Скрин 2 как сейчас все выглядит в сформированном состоянии. Скрин 3 макет рабочего отчета. Пример рабочего кода.
Процедура ВыводБлокаВТабличныйДокумент(Значение,ВариантУсловия="",Присоединение=Ложь)
Если не Присоединение Тогда
НомерКолонки=0;
Для А=1 По Вложенность Цикл
НомерКолонки=НомерКолонки+1;
Если НомерКолонки=1 Тогда
Результат.Вывести(омПустойБлок);
Иначе
Результат.Присоединить(омПустойБлок);
КонецЕсли;
КонецЦикла;
КонецЕсли;
омБлокУсловия.Параметры.Значение=Значение;
омБлокУсловия.Параметры.ВариантУсловия=ВариантУсловия;
Если Присоединение ИЛИ НомерКолонки<>1 Тогда
//
Результат.Присоединить(омБлокСтрела);
//
Результат.Присоединить(омБлокУсловия);
Иначе
Результат.Вывести(омБлокУсловия);
КонецЕсли;
ВариантУсловия="";
Присоединение=Ложь;
КонецПроцедуры
Процедура ВыводРезультатаУсловияВТабличныйДокумент(Значение,ВариантУсловия="",Присоединение=Ложь)
Вложенность =Вложенность+1;
ТипЗначения= ТипЗнч(Значение);
Если ЗначениеЗаполнено(Значение)Тогда
Если ТипЗначения = Тип("СправочникСсылка.РабочиеМеста") Тогда
ВыводБлокаВТабличныйДокумент(Значение,ВариантУсловия,Присоединение);
ИначеЕсли ТипЗначения = Тип("СправочникСсылка.ИСполнители")Тогда
ВыводБлокаВТабличныйДокумент(Значение,ВариантУсловия,Присоединение);
Результат.НачатьГруппуСтрок();
ОбработатьИсполнителя(Значение);
Результат.ЗакончитьГруппуСтрок();
ИначеЕсли ТипЗначения=Тип("СписокЗначений") Тогда
Для Каждого СтрокаСпискаЗначений из Результат Цикл
ВыводРезультатаУсловияВТабличныйДокумент(СтрокаСпискаЗначений.Значение,ВариантУсловия,Присоединение);
КонецЦикла;
КонецЕсли;
КонецЕсли;
Вложенность =Вложенность-1;
КонецПроцедуры
Процедура ОбработатьИсполнителя(Исполнитель)
Вложенность = Вложенность+1;
Для Каждого СтрокаУсловие из Исполнитель.ТаблицаУсловий Цикл
Если СтрокаУсловие.ВидУсловия=Перечисления.sВидыУсловий.БезУсловий Тогда
ВыводРезультатаУсловияВТабличныйДокумент(СтрокаУсловие.РезультатИстина.Получить());
ИначеЕсли СтрокаУсловие.ВидУсловия=Перечисления.ВидыУсловий.КодУсловия Тогда
УсловиеКод=Строка(СтрокаУсловие.УсловиеХранилище.Получить());
ВыводБлокаВТабличныйДокумент(УсловиеКод);
ВыводРезультатаУсловияВТабличныйДокумент(СтрокаУсловие.РезультатИстина.Получить(),"Да",Истина);
ВыводРезультатаУсловияВТабличныйДокумент(СтрокаУсловие.РезультатЛожь.Получить(),"НЕТ");
ИначеЕсли СтрокаУсловие.ВидУсловия=Перечисления.ВидыУсловий.Условие Тогда
УсловияЗапроса = СтрокаУсловие.УсловиеПредставление;
ВыводБлокаВТабличныйДокумент(УсловияЗапроса);
ВыводРезультатаУсловияВТабличныйДокумент(СтрокаУсловие.РезультатИстина.Получить(),"ДА",Истина);
ВыводРезультатаУсловияВТабличныйДокумент(СтрокаУсловие.РезультатЛожь.Получить(),"НЕТ");
КонецЕсли;
КонецЦикла;
Вложенность = Вложенность-1;
КонецПроцедуры
ПоказатьПрикрепленные файлы:
Ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
На самом деле не сложно.
Есть два варианта.
Первый с использованием Табличного документа.
Второй с использованием Графической схемы.
В случае с первым рекомендую разобрать отчет по связанным документам в типовой конфигурации. Работать не с ячейками а с текстом (блоки) и картинкой (стрелки).
Во втором случае формировать блок схему. Статически или динамически под нужды. (Этот вариант будет презентабельней того что на скринах).
Есть два варианта.
Первый с использованием Табличного документа.
Второй с использованием Графической схемы.
В случае с первым рекомендую разобрать отчет по связанным документам в типовой конфигурации. Работать не с ячейками а с текстом (блоки) и картинкой (стрелки).
Во втором случае формировать блок схему. Статически или динамически под нужды. (Этот вариант будет презентабельней того что на скринах).