Интерфейс работы с проектом |
В текущей версии при изменении стоимости ресурса корректируется стоимость текущего этапа и стоимость всего проекта. Полный обход иерархии этапов и корректировка их стоимости выполняется отдельной командой.
Процедуры перерасчета стоимости (ReCalcAllResources) и печати краткой справки по проекту (ProjectRef) выполняют обход дерева этапов проекта. Очевидная реализация такого обхода - рекурсия. В названных процедурах используется имя таблицы, указанное в операторе create view. Таким образом, данная таблица является для этих процедур статической переменной. Поэтому перед рекурсивным вызовом процедуры выполняется сохранение текущей позиции командой PushPos, а после возврата из рекурсии позиция восстанавливается командой PopPos.
Исходный текст реализации интерфейса работы с проектом приведен в разделе "ProjectsMain. Интерфейс ввода, просмотра и корректировки проектов. ".