Advanced RTF Report
Генератор предназначен для получения RTF отчетов без использования WORD, отчетов в EXCEL как с использованием шаблона, так и без, а также текстовых отчетов с заданной структурой (например, XML или HTML). Имеет гибкую структуру, позволяющую последовательно добавлять неограниченное количество таблиц. Также можно вложить таблицу в контейнер и размножить ее по количеству записей в таблице контейнера. Скорость генерации – 10-100 листов в секунду
Ver 1.1
- Добавлена возможность обратной сортировки, для этого конструкцию "ORD=выражение" писать как "ORD=DESC:выражение"
- Добавлен показ % выполнения формирования разделов отчета
- Добавлена возможность замены русских букв на HEX-коды при обработке символьных переменных
Ver 1.2
- Добавлены теги [CASE], [OTHERWISE], [ENDCASE], позволяющие выбрать альтернативные варианты печати каждой строки отчета. Принцип действия аналогичен такому же оператору в фоксе.
- Добавлен предварительный подсчет кол-ва разделов и вывод в градуснике "*** из ***"
- Изменен метод запуска готового файла на WScript.
Ver 1.3
- Добавлена возможность вывода в отчет PNG файлов (конструкция IMG: в описании символьных переменных)
- Для картинок (переменных с IMG:) можно задавать 3 типа рамки: RM1-простая рамка,RM2-рамка с тенью,RM3-двойная рамка
- Добавлена возможность разделения разрядов при обработке числовых переменных (конструкция RAZ).
- Добавлен вывод ДА/НЕТ при обработке логических переменных (конструкция LRU:)
Ver 1.4
- Исправлена неадекватная работа счетчика str_tbl (не сбрасывался на 0 при смене таблицы)
- Исправлен рабочий алиас заголовка и подвала контейнера (переменные не отрабатывались правильно без явного указания алиаса контейнера)
- Добавлена возможность задавать условие в теге [ALI] как USL$выражение для поиска по списку. Условием для добавления записей в таблицу, находящуюся в группе, в этом случае является: выражение IN (ключ), т.е. ключ должен быть вида "1,2,3" или "'AA','BB','CC'".
Ver 1.5
- Добавлена возможность задавать подстановки для переменных (конструкция REPVAR*:) Потом использование в переменных вида [&*], где * - ID подстановки. Переменная наследует все функции подстановки, при этом функции самой переменной приоритетней функций подстановки.
- Ранее переменные переводились UPPER() теперь этого не делается. Это сделано для того, чтобы переменные вида ["Дата:"+DTOC(DATE())] выводились в виде "Дата:..." а не "ДАТА:...". Индексы, условия, группировки и сортировки остались регистронезависимыми (переводятся в UPPER() перед обработкой)!
Ver 1.6
- Добавлен параметр [ADDF] в конфигурации запуска для подавления ошибки создания выходного файла. В случае, если файл результата не может быть перезаписан, добавляет к имени файла "_N", где N может быть от 1 до 49 и пытается записать с новым именем. При достижении N=50, формирует ошибку доступа к диску.
- Добавлена возможность вывода в отчет JPG файлов.
Ver 2.0 ВНИМАНИЕ! VER 2.0 НЕСОВМЕСТИМА С ПРЕДЫДУЩИМИ ВЕРСИЯМИ В ПЛАНЕ СЧЕТЧИКОВ И АЛИАСОВ ГРУПП!!!
- Добавлена возможность добавлять подгруппы. Подгруппы объявляются также как и группы. МАХ вложенность групп=6.
- Полностью изменен подход к счетчикам, теперь их стало 72 штуки.
- Алиас группы изменился с GRP на GR1,GR2,GR3... - в зависимости от вложенности.
Ver 2.1
- Поправлен счетчик [tbl_str] (в некоторых случаях считал неверно)
- Исправлена ошибка обработки файлов у которых внутренние шрифты указаны без кодировки.
- Добавлена функция форматирования "BLZ" - выводит число 1000000 как 1 000 000, разделяя разряды пробелами, при этом если число=0, то не выводит ничего.
- Добавлена функция форматирования "BLK" - если число=0, то не выводит ничего.
- Добавлен параметр [HIDE] в конфигурации запуска для подавления сообщений процесса генерации
Ver 2.2
- Поправлены косяки с подстановками в переменных. (Для ряда функций брались не те данные)
- В целях унификации шаблонов добавлена подстановка "&" при описании контейнеров, таблиц или групп. Пример использования [REP:ALI=&myalias|ORD=&myorder] - здесь в "ALI=&myalias" - "&" - признак подстановки, "myalias" - переменная, которая содержит значения алиаса. Так же и для сортировки. Переменные "myalias" и "myorder" должны быть описаны до запуска генератора! Подстановка может быть использована для любой секции и позволит многократно использовать один и тот же шаблон для схожих по структуре данных.
- Добавлена функция преобразования "RD3" - округление до 3 знаков после запятой.
- Добавлена пользовательская функция форматирования переменных: конструкция "FUN=USERFUNC" или "FUN=USERFUNC(m.znh_now)". Если нужно в вашу функцию передать более одного значения, то для передачи текущего значения поля нужно пользоваться переменной m.znh_now.Если параметр только один, то задавать его не нужно - будет автоматически добавлено к имени функции концовка "(m.znh_now)"! Эта конструкция разделяется двоеточием от остальных функций. Выполняется после всех преобразований, при этом имейте ввиду, что тип переменной m.znh_now в момент запуска пользовательской функции, всегда символьный! На выходе также ожидается значение символьного типа!
Ver 2.3
- Поправлен подвал группировок и ссылки на другие группы. (Теперь в алиасе, на который ссылается переменная, указатель записи из EOF() переводится на BOTTOM).
- Исправлена ошибка с ограничением до 3, распознавания секций в описании переменных. В связи с этим часть ф-й могли не распознаться. (Теперь увеличено до 10)
- Теперь концовка к имени пользовательской функции форматирования переменных добавляется не "(m.znh_now)" a "(m.znh_val)". Проверьте свои шаблоны!
- Добавлена переменная ZNH_VAL с вычисленным, но не преобразованным значением для использования во внешних функциях. Тип переменной ZNH_VAL тот, который имеет поле (выражение) в источнике. ВНИМАНИЕ! Если вы используете внешнюю функцию с переменной ZNH_VAL, то функции преобразования и форматирования задавать бессмысленно!
- Добавлена переменная ZNH_CON с вычисленным и преобразованным но не отформатированным значением для использования во внешних функциях. Тип переменной ZNH_CON тот, который имеет который имеет функция преобразования на выходе. ВНИМАНИЕ! Если вы используете внешнюю функцию с переменной ZNH_CON, то функции форматирования задавать бессмысленно!
Ver 2.4
- Исправлена ошибка с длинными путями при показе готового отчета (теперь полное имя файла оборачивается в кавычки).
- Добавлен параметр [PRINT] или [PRINT=имя_принтера] в конфигурации запуска для печати отчета без просмотра. После знака равенства можно задать целевой принтер.
- Добавлен параметр [COPIES=*] для печати * копий отчета. Актуально только совместно с [PRINT].
- Добавлен параметр [PAGES=1,2,5-8] для печати заданных страниц или [PAGES=BOOK] для формирования книжки. Актуально только совместно с [PRINT]!
Ver 2.5
- Добавлен параметр [MERGE] - Позволяет объединять текущий результат с существующим файлом WORD.
- Тег [ENDPAGE] теперь не срабатывает на последних записях текущей таблицы.
- У тега [ENDPAGE] добавлена возможность задавать условие срабатывания: конструкция USL=выражение (задается через разделитель "|")
- Добавлена пост обработка полученного файла (параметр [FORMAT]): обновление оглавления, если оно есть (только если установлен MS Office)
- Оптимизация ввода/вывода. Существенное ускорение разборки шаблонов отчетов.
- Добавлена функция форматирования "TDT" – преобразует DATETIME значение в тип DATE.
- Исправлена ошибка исполнения условий объектов в безалиасной зоне.
Ver 2.6
Добавлена функция SPLIT_REPORT(), надстройка над RTF_REPORT() - дает возможность разделения отчета на несколько файлов. Здесь и далее будут использоваться ссылки, для привязки изменений к конкретной функции. [1] - изменения для функции RTF_REPORT() [2] - изменения для функции SPLIT_REPORT()
- [1].ADD: Генератор можно использовать для формирования текстовых (HTML и XML) отчетов.
- [1].ERR: Исправлена ошибка применения условия таблицы, заданной вне контейнера
- [1].ADD: Добавлен параметр [COD=N] - Позволяет записывать данные поля в перекодированном виде. Варианты N см. в параметрах ф-и STRCONV(). Параметр [COD] имеет более высокий приоритет, чем параметр [ENCODE].
- [1].ADD: Добавлен параметр [ENCODE=N] - Позволяет записывать все данные отчета в перекодированном виде. Варианты N см. в параметрах ф-и STRCONV(). (Например, есть шаблон в кодировке 1251, необходимо сохранить XML файл в кодировке utf-8).
- [2].ADD: Добавлена функция SPLIT_REPORT(), надстройка над RTF_REPORT() - дает возможность разделения отчета на несколько файлов.
- [2].ADD: Добавлен ОБЯЗАТЕЛЬНЫЙ параметр [SPLIT=] - где "" - MAX количество записей в томе.
- [2].ADD: Добавлен параметр [STOMS=1,2,5-8] для формирования только указанных томов.
Ver 2.7
- [1].ADD: Добавлена функция преобразования "PAR" - для добавления текста содержащего несколько строк в виде отдельных параграфов. Актуально только для RTF файла.
Ver 2.8
- [1].ERR: Добавлена проверка длины наименования функции преобразования, чтобы исключить их срабатывание при похожем начале имени переменной и установкой SET EXACT OFF.
- [1].ADD: Добавлена функция преобразования "ML5" - масштабирование (уменьшение) картинки на 50% (актуально только для конструкции "IMG").
Ver 2.9
- [1].IZM: Более чем в 2 раза ускорена функция разборки шаблона READ_RTF().
Ver 3.0
С этого момента сделан этот форк и его обсуждение ведется http://forum.foxclub.ru/read.php?29,779413,779864#msg-779864
Добавлена функция XLS_REPORT, надстройка над RTF_REPORT() для формирования отчетов в EXCEL с использованием XML шаблонов. Добавлена функция DBF_TOEXCEL - продвинутая выгрузка данных курсора в EXCEL – для любителей творить отчеты кодом. Здесь и далее будут использоваться ссылки, для привязки изменений к конкретной функции:
• [1] - изменения для функции RTF_REPORT() • [2] - изменения для функции SPLIT_REPORT() • [3] - изменения для функции XLS_REPORT() • [4] - изменения для функции DBF_TOEXCEL()
- [1].ADD: Добавлена поддержка выгрузки в EXCEL.
- [3].ADD: Добавлена функции XLS_REPORT().
- [4].ADD: Добавлена функции DBF_TOEXCEL().
Ver 3.1
- [1].IZM: Добавлена функция преобразования "NUM" - для приведения типа ячейки к числовому формату (актуально только для формирования отчетов в EXCEL).
Ver 3.2
- [1].IZM: Функция ENCODE_SYMBOLS переписана для более быстрого выполнения.
- [3].ADD: Добавлен тег «[REP:NOTE]» для добавления в шаблон строк с комментариями (актуален только для шаблонов EXCEL). В готовый отчет эти строки добавлены не будут.
Для конвертации бинарных файлов Foxpro в текст и обратно использована https://github.com/fdbozzo/foxbin2prg
Ver 3.3
- [1].IZM: Добавлена возможность вывода в WORD отчет PNG графиков (нужен EXCEL!!!, конструкция DIA: GEN_DIAGR() - см. пример для WORD № 12)
- [3].IZM: Добавлен 4-й параметр для конвертации результата в большое кол-во форматов. Теперь по умолчанию результат остается в XML виде.
- [3].IZM: Изменен подход к шаблонам с выделенной служебной колонки на служебные строки (см. примеры EXCEL).