TabFormulaResult CalculateFormula(TabSheetId tTabSheet, CalculateFormulaArgs tArg)
tTabSheet. Моникёр таблицы.
tArg. Параметры выполнения операции.
Операция CalculateFormula вычисляет промежуточное значение формулы.
Операция позволяет получить промежуточное значение части формулы или всей формулы, заданной в ячейке таблицы. Для выполнения операции укажите в поле tTabSheet моникёр таблицы, в поле tArg.coord координаты ячейки с полной формулой, а в поле tArg.formula ту часть формулы, для которой необходимо получить промежуточное значение. Моникёр может быть сформирован на основании моникёра открытого экземпляра объекта, с таблицей которого осуществляется работа, по следующим правилам:
«Моникёр экземпляра экспресс-отчёта»!Tab. Таблица экспресс-отчёта (если в экспресс-отчёте один лист).
«Моникёр экземпляра экспресс-отчёта»!Sheets!Ключ листа!Tab. Таблица заданного листа экспресс-отчёта (если в экспресс-отчёте несколько листов).
«Моникёр экземпляра рабочей книги»!Tab. Таблица рабочей книги (если в рабочей книге один лист).
«Моникёр экземпляра рабочей книги»!Sheets!Ключ листа!Tab. Таблица заданного листа рабочей книги (если в рабочей книги несколько листов).
«Моникёр экземпляра рабочей книги»!CorrTab. Таблица с матрицей корреляции.
«Моникёр экземпляра рабочей книги»!CoeffTab. Таблица с коэффициентами уравнения.
«Моникёр экземпляра рабочей книги»!WeightsTab. Таблица с матрицей весов.
«Моникёр экземпляра регламентного отчёта»!Ключ листа. Таблица отдельного листа регламентного отчёта.
Результатом выполнения операции будет вычисленное промежуточное значение формулы.
Ниже приведён пример вычисления промежуточного значения части формулы, хранящейся в ячейке. В запросе передаётся моникёр таблицы. координаты ячейки с формулой и часть формулы, для которой необходимо вычислить промежуточное значение. В ответе возвращается вычисленное значение.
{
"CalculateFormula" :
{
"tTabSheet" :
{
"id" : "HMDIIGPEOICFGOAEIIBIJLBDNGDMPMJELIMFOFPJFGIMCDLL!M!S!PLCLHEHPEOICFGOAEEIHIMLBLEJPGMEKEIKBLBOPFDDLPIDKF!Sheets!1"
},
"tArg" :
{
"formula" : "B0+C0",
"coord" :
{
"@T" : "0",
"@L" : "5"
}
}
}
}
{
"CalculateFormulaResult" :
{
"vt" : "3",
"v" : "5",
"err" : "0"
}
}
public static TabFormulaResult CalculateFormula(string moniker, string sheetKey, TabCoord cellCoord, string subFormula)
{
var somClient = new SomPortTypeClient(); // Прокси-объект для выполнения операции
// Параметры выполнения операции
var tCalc = new CalculateFormula()
{
tArg = new CalculateFormulaArgs()
{
coord = cellCoord,
formula = subFormula
},
tTabSheet = new TabSheetId() { id = moniker + "!Sheets!" + sheetKey }
};
// Вычисление промежуточного значения формулы
var result = somClient.CalculateFormula(tCalc);
return result;
}
См. также: