Both sides previous revisionPrevious revisionNext revision | Previous revision |
sys:gather [2020/03/20 10:20] – eugeneai | sys:gather [2020/10/24 08:46] (current) – external edit 127.0.0.1 |
---|
| |
Имеет смысл обобщить систему организаций и представить ее в виде иерархии. В каждом узле с ветвлением (нелистовом) происходит копирование информации, передаваемой вниз, и агрегация информации, передаваемой вверх. В листовых вершинах осуществляется только выполнение части инструкции - как получать заполняемую информацию и куда ее вставлять. | Имеет смысл обобщить систему организаций и представить ее в виде иерархии. В каждом узле с ветвлением (нелистовом) происходит копирование информации, передаваемой вниз, и агрегация информации, передаваемой вверх. В листовых вершинах осуществляется только выполнение части инструкции - как получать заполняемую информацию и куда ее вставлять. |
| |
| **Объект автоматизации** - деятельность организаций, организованной в иерархию, направленная на сбор статистической информации. |
| |
Шаблон документа готовится в Word или Excel. Инструкция указывает какие элементы шаблона подлежат копированию и реорганизации, например заполнение скопированной ячейки собранной информацией. Инструкция изначально - это текстовое описание вышеуказанных процедур. В принципе при реализации можно придумать способ формализации инструкции на техническом английском языке. | Шаблон документа готовится в Word или Excel. Инструкция указывает какие элементы шаблона подлежат копированию и реорганизации, например заполнение скопированной ячейки собранной информацией. Инструкция изначально - это текстовое описание вышеуказанных процедур. В принципе при реализации можно придумать способ формализации инструкции на техническом английском языке. |
| |
<!-- | Разрабатываемая программная система должна выполнять следующие действия: |
**Объект автоматизации** - деятельность организаций, организованной в иерархию, направленная на сбор статистической информации. | - Проводить анализ шаблона документа и извлекать оттуда информацию о структуре собираемых данных. |
--> | - Сгенерировать таблицу для хранения данных. Можно предусмотреть повторное использование ранее созданных таблиц, если сбор информации повторяется. |
| - Генерировать формы сбора информации для организаций, находящихся в листовых вершинах. |
| - Организовывать сбор информации: |
| - Из базы данных подшефных организаций извлекаются контактные данные ответственных лиц (в общем случае зависит от типа собираемой задачи), |
| - Форма и инструкция по ее заполнению рассылается ответственным лицам (ссылка на **персонализированную** (идентифицирующую конкретную организацию) форму на почту, телеграм, вацап, телеграм и т.п.). |
| - Ответственное лицо выполняет инструкцию и заполняет форму. В форме надо **предусмотреть возможность частично сохранять информацию**, т.е. дать возможность заполнять форму поэтапно, если процедура сбора информации во времени распределена. Самый простой способ - две кнопки: "Сохранить", "Подписать". |
| - Ответственное лицо подписывает форму, система сохраняет результат в базе данных. |
| - Генерировать отчетный документ. Имеет смысл предусмотреть возможность автоматизации корректировки формул шаблона для учета обновленной структуры документа. |
| |
| ====== Задел ====== |
| |
| |
| Пробовал реализовать эту систему для документов WORD: https://github.com/eugeneai/icc.quest . Здесь в docx-шаблоне ячейки представляются при помощи структур :<название поля>:<тип> + можно добавить еще :disabled, если ячейку править нельзя. Пример в проекте input/query1.docx . |
| |
| |
| Потом ушел в дебри модификации Документа Excel: https://github.com/eugeneai/if2xlsx . Идея - не интерпретировать и не загружать данные excel, а вносить модификации копированием строки или столбца переименовывая ячейки. Что копировать должно определяться структурой таблицы. Копируемые элементы (строки или столбцы) определяются при помощи "переменных диапазонов". До копирования дело так и не дошло. |
| |
| |