gifts2017

Печать объекта Дерево+Таблица внешней компоненты FormEx

Опубликовал Александр Венгер (venger) в раздел Программирование - Внешние компоненты

Внешний отчет/обработка - печатает объект "Дерево+Таблица" в древовидной форме, используя внешнюю компоненту Yoksel. Выводит столбцы с учетом параметров колонок "ТаблицыЗначений" (заголовка, форматной строки, положения). Благодаря использованию внешней компоненты Yoksel, выводит на печать с учетом вложенности узлов, создавая соответствующие группировки в печатной форме, которые сохраняются и при сохранении в Excel.

Если Вы не знаете, что такое "Дерево+Таблица" и с чем его едят, познакомиться можно тут: http://infostart.ru/public/74192/

Если уже знаете, то продолжим. Скачайте внешнюю компоненту Yoksel с сайта http://yoksel.net.ru.  Последнюю стабильную сборку можно взять тут: http://yoksel.net.ru/Hotfixes. Из скачанного архива нужно распаковать файл «SpreadSheet.dll» в папку конфигурации или в папку «Bin» платформы 1С 7.7. После чего, эту внешнюю обработку «ПечатьДерева.ert» положите в подпапку «ExtForms» папки конфигурации.

Теперь в коде любой обработки, отчета, справочника и т.д. Вашей кофигурации, где есть объект Дерево+Таблица, создайте кнопку «Печать», в формуле этой кнопки укажите процедуру «Печать()» и в процедуре «Печать()» в модуле формы обработки, отчета, справочника и т.д. напишите такой код (исключая комментарии, конечно):

Процедура Печать()
// Список параметров печати
СпПарам = СоздатьОбъект("СписокЗначений");
// ТЗ - "ТаблицаЗначений", которая является объектом "Дерево+Таблица"
СпПарам.ДобавитьЗначение(ТЗ, "Дерево");
// "Йоксель: Дерево+Таблица" - необязательный параметр, можно задать
// строку заголовка печатной формы
СпПарам.ДобавитьЗначение("Йоксель: Дерево+Таблица", "Заголовок");
// "ИдКолонки,ИдКолонки,ИдКолонки" - необязательный параметр, список
// идентификаторов колонок "ТаблицыЗначений" через запятую, которые
// нужно вывести, кроме служебных. Служебные - "Ветка","Значек","ИмяВетки".
// Если не задан или пустая строка - то выводит все колонки, кроме
// служебных, но "ИмяВетки" выводится всегда.
СпПарам.ДобавитьЗначение("ИдКолонки,ИдКолонки,ИдКолонки", "Колонки");
// Флаг выводить узлы свернутыми или нет. Если =1, то все развернуты.
// Если =0, то все свернуты. Необязательный параметр, по умолчанию =0.
СпПарам.ДобавитьЗначение(1, "Развернуть");
// Собственно вывод на печать
ОткрытьФорму("Отчет", СпПарам, КаталогИБ()+"ExtForms\ПечатьДерева.ert");
КонецПроцедуры
// Печать

И теперь при нажатии на нашу кнопку «Печать» - откроется печатная форма с нашим деревом. Щелкая мышкой по плюсикам/минусикам (слева), можно разворачивать и сворачивать узлы, наслаждаясь полученным эффектом.

 

Скачать файлы

Наименование Файл Версия Размер
ПечатьДерева.zip 168
.zip 7,64Kb
17.08.10
168
.zip 7,64Kb Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Алексей Плутенко (Noy) 25.08.10 14:27
А зачем
Служебные - "Ветка","Значек","ИмяВетки".


из-за этого никакой универсальности нет. в готовую конфу это не прикрутишь
:(
2. Александр Венгер (venger) 27.08.10 14:04
(1) Да, надо будет по номерам сделать
3. Николай Карнейчик (mikolamail) 05.09.10 15:22
В процедуре "ПечатьДеревоПлюсТаблица(Дерево,Колонки,Таблица,ГруппыСтрок,СтрокаДерева="",Счетчик=0,НижниеУровни=0) "

надо объявить переменную:

Перем Сч;

Иначе происходит зацикливание процедуры, когда количество элементов на разных уровнях разное!
4. Иваныч Иванов (Иваныч) 22.11.13 15:17
(1) Noy, Чего Вы так пессимистично, ведь руки-то у Вас есть. А что неясно, автора спросите и все получится
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа