Проблема - организовать сбор статистической информации с подчиненных организаций.
Информационные потоки в таких системах организаций включают два направления:
Имеет смысл обобщить систему организаций и представить ее в виде иерархии. В каждом узле с ветвлением (нелистовом) происходит копирование информации, передаваемой вниз, и агрегация информации, передаваемой вверх. В листовых вершинах осуществляется только выполнение части инструкции - как получать заполняемую информацию и куда ее вставлять.
Объект автоматизации - деятельность организаций, организованной в иерархию, направленная на сбор статистической информации.
Шаблон документа готовится в Word или Excel. Инструкция указывает какие элементы шаблона подлежат копированию и реорганизации, например заполнение скопированной ячейки собранной информацией. Инструкция изначально - это текстовое описание вышеуказанных процедур. В принципе при реализации можно придумать способ формализации инструкции на техническом английском языке.
Разрабатываемая программная система должна выполнять следующие действия:
Пробовал реализовать эту систему для документов WORD: https://github.com/eugeneai/icc.quest . Здесь в docx-шаблоне ячейки представляются при помощи структур :<название поля>:<тип> + можно добавить еще :disabled, если ячейку править нельзя. Пример в проекте input/query1.docx .
Потом ушел в дебри модификации Документа Excel: https://github.com/eugeneai/if2xlsx . Идея - не интерпретировать и не загружать данные excel, а вносить модификации копированием строки или столбца переименовывая ячейки. Что копировать должно определяться структурой таблицы. Копируемые элементы (строки или столбцы) определяются при помощи “переменных диапазонов”. До копирования дело так и не дошло.