AbstractCalculationMonitor

AbstractCalculationMonitor class

Отслеживайте, чтобы пользователь мог отслеживать ход вычисления формулы.

public abstract class AbstractCalculationMonitor

Характеристики

ИмяОписание
CalculatedValue { get; }Получает новое вычисленное значение ячейки. Следует использовать только вAfterCalculate .
OriginalValue { get; }Получает старое значение вычисляемой ячейки. Следует использовать только вBeforeCalculate а такжеAfterCalculate .
ValueChanged { get; }Было ли изменено значение ячейки после вычисления. Следует использовать только вAfterCalculate .

Методы

ИмяОписание
virtual AfterCalculate(int, int, int)Реализуйте этот метод для ведения бизнеса после расчета одной ячейки.
virtual BeforeCalculate(int, int, int)Реализуйте этот метод для ведения бизнеса перед расчетом одной ячейки.
virtual OnCircular(IEnumerator)Реализуйте этот метод для ведения бизнеса при расчете формул с циклическими ссылками.

Примеры

[C#]
//Пользовательский монитор для проверки возможности StackOverflowException
public class MyCalculationMonitor : AbstractCalculationMonitor
{
    public override void BeforeCalculate(int sheetIndex, int rowIndex, int colIndex)
    {
        if(new StackTrace(false).FrameCount > 1000)
        {
            throw new Exception("Stop the formula calculation because risk of StackOverflowException");
        }
    }
}

Смотрите также