CalculateFormula

Синтаксис

TabFormulaResult CalculateFormula(TabSheetId tTabSheet, CalculateFormulaArgs tArg)

Параметры

tTabSheet. Моникёр таблицы.

tArg. Параметры выполнения операции.

Описание

Операция CalculateFormula вычисляет промежуточное значение формулы.

Комментарии

Операция позволяет получить промежуточное значение части формулы или всей формулы, заданной в ячейке таблицы. Для выполнения операции укажите в поле tTabSheet моникёр таблицы, в поле tArg.coord координаты ячейки с полной формулой, а в поле tArg.formula ту часть формулы, для которой необходимо получить промежуточное значение. Моникёр может быть сформирован на основании моникёра открытого экземпляра объекта, с таблицей которого осуществляется работа, по следующим правилам:

Результатом выполнения операции будет вычисленное промежуточное значение формулы.

Пример

Ниже приведён пример вычисления промежуточного значения части формулы, хранящейся в ячейке. В запросе передаётся моникёр таблицы. координаты ячейки с формулой и часть формулы, для которой необходимо вычислить промежуточное значение. В ответе возвращается вычисленное значение.

SOAP-запрос:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<CalculateFormula xmlns="http://www.fsight.ru/PP.SOM.Som">
<tTabSheet xmlns="">
  <id>HMDIIGPEOICFGOAEIIBIJLBDNGDMPMJELIMFOFPJFGIMCDLL!M!S!PLCLHEHPEOICFGOAEEIHIMLBLEJPGMEKEIKBLBOPFDDLPIDKF!Sheets!1</id>
  </tTabSheet>
<tArg xmlns="">
  <formula>B0+C0</formula>
  <coord L="5" T="0" />
  </tArg>
  </CalculateFormula>
  </s:Body>
  </s:Envelope>

SOAP-ответ:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<CalculateFormulaResult xmlns="http://www.fsight.ru/PP.SOM.Som" xmlns:q1="http://www.fsight.ru/PP.SOM.Som" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <vt xmlns="">3</vt>
  <v xmlns="">5</v>
  <err xmlns="">0</err>
  </CalculateFormulaResult>
  </soapenv:Body>
  </soapenv:Envelope>

JSON-запрос:

{
"CalculateFormula" :
{
"tTabSheet" :
{
"id" : "HMDIIGPEOICFGOAEIIBIJLBDNGDMPMJELIMFOFPJFGIMCDLL!M!S!PLCLHEHPEOICFGOAEEIHIMLBLEJPGMEKEIKBLBOPFDDLPIDKF!Sheets!1"
},
"tArg" :
{
"formula" : "B0+C0",
"coord" :
{
"@T" : "0",
"@L" : "5"
}
}
}
}

JSON-ответ:

{
"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;
}

См. также:

Таблица: Операции