IterativeCalculation: Boolean;
Свойство IterativeCalculation определяет, будут ли использоваться итеративные вычисления, разрешающие вычисление ячеек, содержащих формулы с циклическими ссылками. При значении True будут использоваться итеративные вычисления, при значении False - нет.
По умолчанию свойство имеет значение False.
При установке свойства в True происходит вычисление формул. При смене параметров итеративного расчета (MaxChange, MaxIterations) при включенном итеративном расчете происходит автоматическое перевычисление формул.
Разрешение циклических ссылок ведется в рамках одного листа. Например, если в ячейках указаны циклические формулы, ссылающиеся на значения ячеек других листов, то даже и при включении итеративного режима будет отображена ошибка «Обнаружены циклические ссылки».
Если при установке формулы в ячейку появляется цикл и включено итеративное вычисление циклических ссылок, то начальное значение этой ячейки считается равным нулю. При включенном режиме при каждом вычислении отчета будет производиться выполнение цикла с заданными параметрами. Цикл заканчивается при достижении предельного числа итераций (MaxIterations) или когда изменение значения величины каждой ячейки становится меньше относительной погрешности (MaxChange).
В регламентном отчете данная настройка может иметь отличные значения для разных листов, поэтому при работе с листами и этими настройками из интерфейса следует учитывать ряд особенностей.
Для выполнения примера на форме должны быть расположены компоненты: UiTabSheet с идентификатором «UiTabSheet1» и компонента TabSheetBox - «TabSheetBox1». Для TabSheetBox1 в качестве источника (Source) используется компонент UiTabSheet1.
Sub UserProc;
Var
Tab : ITabSheet;
Options: ITabOptions;
Begin
Tab := UiTabSheet1.TabSheet;
Options := Tab.Options;
Options.IterativeCalculation := True;
Options.MaxIterations := 10;
Options.MaxChange := 0.01;
End Sub UserProc;
После выполнения процедуры для листа (таблицы) будет включено итеративное вычисление и заданы его параметры.
См. также: