Универсальный 1С++ класс вывода таблицы значений в объекты Таблица или Текст с дополнительными возможностями


ПечатьТаблицыЗначений — это универсальный 1С++ класс для любых конфигураций 1С 7.7, который может представить данные из таблицы значений в виде объектов Таблица или Текст с предварительным или последующим форматированием ячеек, снабженными гистограммами, подобными Sparklines в Excel, и рассчитанными итогами.

Как это работает

Вся графика формируется текстовыми символами как в старые времена. Для вывода гистограмм в Таблицу выводим символы шрифтом Terminal (идея отсюда //infostart.ru/public/71675/), для текста используем символы «|», минус и пробел. Процедуру формирования ТЗ в Текст удобно использовать для формирования логов, отправки текстовых данных непосредственно в сообщении. Конечно для визуального восприятия потребуется моноширинный шрифт.

Установка

Просто подключите класс к конфигурации. Требуется 1С++ и FormEx.

Краткое описание класса

Поля

  1. Заголовок. Это поле выводится в качестве основного заголовка в Таблицу.
  2. Подзаголовок. Это поле выводится в качестве дополнительного заголовка в Таблицу.
  3. ФайлШаблона. Позволяет использовать внешний mxl файл в качестве исходной таблицы для изначального форматирования вывода. В нем должны находится все секции из базового mxl.

Методы

  • Процедура Инит(аКонтекст). После создания возможно инициализировать класс, передав в него вызывающий контекст. Это нужно делать, если требуется постобработка Таблицы после вызова процедур аКонтекст по событиям вывода ячеек или секций. Список событий см. ниже.
  • Функция Сформировать(Знач аТЗ, Знач аКолонкиИтогов = «», Знач аКолонкиГистограмм = «», Знач аКолонкиНевидимые = «»). Основной метод, возвращающий сформированнаю Таблицу.
    • аТЗ: ТаблицаЗначений или ИндексированнаяТаблица данных.
    • аКолонкиИтогов. Список названий колонок данных через «,» для которых вывести суммовые итоги.
    • аКолонкиГистограмм. Список названий колонок данных через «,» для которых добавить рядом колонки с графиками гистограмм. В конце имени колонки может присутствовать модификатор, который на график выведет соответствующее ему значение. Сейчас по модификаторам дополнительно выводится только сами значения. Планирую добавить разные модификаторы, например, вывод самих значений, долей и т.д.
    • аКолонкиНевидимые. Какие колонки исходной аТЗ не выводить в результирующую Таблицу. Если были добавлены колонки с гистограммами, то чтобы не дублировать данные, полезно скрыть колонки с исходными данными.
  • Функция ВТекст(Знач аТЗ). Выводить таблицу в текст. Границы рисуются символами «|» и «-«. Выравнивание происходит пробелами.

События

Если класс был инициализирован вызывающим контекстом, то в моменты вывода вызываются его процедуры:

  1. Процедура _НаВыводШапка(Знач аТаб). Вызывается после вывода шапки таблицы и передается аТаб — результирующая Таблица.
  2. Процедура _НаВыводЗаголовокЯчейка(Знач аТаб, Знач аНомерКолонки). Вызывается после вывода очередной ячейки заголовка таблицы, где аТаб — результирующая Таблица, а аНомерКолонки — номер выведенной колонки.
  3. Процедура _НаВыводЗаголовок(Знач аТаб). Вызывается после вывода заголовка таблицы и передается аТаб — результирующая Таблица.
  4. Процедура _НаВыводСтрокаЯчейка(Знач аТаб, Знач аНомерСтроки, Знач аНомерКолонки). Вызывается после вывода очередной ячейки очередной строки таблицы, где аТаб — результирующая Таблица, и позиция выведенной ячейки (аНомерСтроки, аНомерКолонки).
  5. Процедура _НаВыводСтрока(Знач аТаб). Вызывается после вывода завершения вывода очередной строки таблицы и передается аТаб — результирующая Таблица.
  6. Процедура _НаВыводИтогоЯчейка(Знач аТаб, Знач аНомерКолонки). Вызывается после вывода очередной ячейки итогов таблицы, где аТаб — результирующая Таблица, а аНомерКолонки — номер выведенной колонки.
  7. Процедура _НаВыводИтого(Знач аТаб). Вызывается после вывода всей строки итогов таблицы и передается аТаб — результирующая Таблица.

В вызывающем контексте не обязательно наличие всех процедур, можно обработать событиями только нужные.

Использование

См. Пример_ПечатьТаблицыЗначений.ert.

ToDo

Добавить в вывод Текст формирование гистограмм другим символом.

Не изменять исходную таблицу методами Сформировать() и ВТекст().

 

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *