Проблемка и решение
Есть одна достаточно полезная подпрограмма для чтения данных из Excel. Даёшь ей файл, параметры и внутреннюю таблицу. И получаешь заполненную внутреннюю таблицу.
Там в кишках слепок таблицы Excel перекладывается в целевую таблицу.
Дальше перекладываются значения в зависимости от типов колонок.
Проблемы начались после того, как я в целевой таблице стал использовать вложенные структуры.
Соответственно ASSIGN COMPONENT стал вести не на целевое поле, а на структуру со всеми вытекающими неприятными последствиями.
И вот сделал такую переборку внутренних вложенных структур:
Тип “u” это как раз вложенные структуры (плоские).
Ну решение простое, можно конечно ещё извернуться с рекурсией и типом “v” (это уже посложнее – deep structure). Но это пока не требуется.
Вот так и использование DESCRIBE FIELD помогает.
Между делом
Вообще использование вложенных структур сильно может помочь. Основные преимущества подхода:
- Возможность сравнения подструктур
- Возможность использование move-corresponding в подструктурах
В моём случае подструктуры – это блоки дебета и кредита бухгалтерской проводки.
Можно сильно сократить объём кода и его понятность в некоторых местах, например:
Может также использоваться для пар старых-новых значений, или для сравнения данных (источник-назначение).