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;
}
См. также: