Как это работает
Вся графика формируется текстовыми символами как в старые времена. Для вывода гистограмм в Таблицу выводим символы шрифтом Terminal (идея отсюда //infostart.ru/public/71675/), для текста используем символы "|", минус и пробел. Процедуру формирования ТЗ в Текст удобно использовать для формирования логов, отправки текстовых данных непосредственно в сообщении. Конечно для визуального восприятия потребуется моноширинный шрифт.
Установка
Просто подключите класс к конфигурации. Требуется 1С++ и FormEx.
Краткое описание класса
Поля
- Заголовок. Это поле выводится в качестве основного заголовка в Таблицу.
- Подзаголовок. Это поле выводится в качестве дополнительного заголовка в Таблицу.
- ФайлШаблона. Позволяет использовать внешний mxl файл в качестве исходной таблицы для изначального форматирования вывода. В нем должны находится все секции из базового mxl.
Методы
- Процедура Инит(аКонтекст). После создания возможно инициализировать класс, передав в него вызывающий контекст. Это нужно делать, если требуется постобработка Таблицы после вызова процедур аКонтекст по событиям вывода ячеек или секций. Список событий см. ниже.
- Функция Сформировать(Знач аТЗ, Знач аКолонкиИтогов = "", Знач аКолонкиГистограмм = "", Знач аКолонкиНевидимые = ""). Основной метод, возвращающий сформированнаю Таблицу.
- аТЗ: ТаблицаЗначений или ИндексированнаяТаблица данных.
- аКолонкиИтогов. Список названий колонок данных через "," для которых вывести суммовые итоги.
- аКолонкиГистограмм. Список названий колонок данных через "," для которых добавить рядом колонки с графиками гистограмм. В конце имени колонки может присутствовать модификатор, который на график выведет соответствующее ему значение. Сейчас по модификаторам дополнительно выводится только сами значения. Планирую добавить разные модификаторы, например, вывод самих значений, долей и т.д.
- аКолонкиНевидимые. Какие колонки исходной аТЗ не выводить в результирующую Таблицу. Если были добавлены колонки с гистограммами, то чтобы не дублировать данные, полезно скрыть колонки с исходными данными.
- Функция ВТекст(Знач аТЗ). Выводить таблицу в текст. Границы рисуются символами "|" и "-". Выравнивание происходит пробелами.
События
Если класс был инициализирован вызывающим контекстом, то в моменты вывода вызываются его процедуры:
- Процедура _НаВыводШапка(Знач аТаб). Вызывается после вывода шапки таблицы и передается аТаб - результирующая Таблица.
- Процедура _НаВыводЗаголовокЯчейка(Знач аТаб, Знач аНомерКолонки). Вызывается после вывода очередной ячейки заголовка таблицы, где аТаб - результирующая Таблица, а аНомерКолонки - номер выведенной колонки.
- Процедура _НаВыводЗаголовок(Знач аТаб). Вызывается после вывода заголовка таблицы и передается аТаб - результирующая Таблица.
- Процедура _НаВыводСтрокаЯчейка(Знач аТаб, Знач аНомерСтроки, Знач аНомерКолонки). Вызывается после вывода очередной ячейки очередной строки таблицы, где аТаб - результирующая Таблица, и позиция выведенной ячейки (аНомерСтроки, аНомерКолонки).
- Процедура _НаВыводСтрока(Знач аТаб). Вызывается после вывода завершения вывода очередной строки таблицы и передается аТаб - результирующая Таблица.
- Процедура _НаВыводИтогоЯчейка(Знач аТаб, Знач аНомерКолонки). Вызывается после вывода очередной ячейки итогов таблицы, где аТаб - результирующая Таблица, а аНомерКолонки - номер выведенной колонки.
- Процедура _НаВыводИтого(Знач аТаб). Вызывается после вывода всей строки итогов таблицы и передается аТаб - результирующая Таблица.
В вызывающем контексте не обязательно наличие всех процедур, можно обработать событиями только нужные.
Использование
См. Пример_ПечатьТаблицыЗначений.ert.
ToDo
Добавить в вывод Текст формирование гистограмм другим символом.
Не изменять исходную таблицу методами Сформировать() и ВТекст().