setExpression(args: Object, callback: PP.Delegate|Function, errCallback: PP.Delegate|Function);
args. Аргументы операции. Объект должен содержать следующие поля: reportOdId - моникёр экспресс-отчета; reportType - вид отчета; transfType - вид преобразователя; transfKey - ключ преобразователя; serieKey - ключ ряда; terms - признак получения термов, если для аргумента установлено значение true, то будут возвращены добавленные термы; isValid - признак проверки добавляемых термов, если для аргумента установлено значение true, то термы будут проверены на правильность; formulaString - строковое представление формулы; newTermsParams - массив параметров новых термов; position - позиция вставки новых термов (если для аргумента установлено значение -1, то термы не будут добавлены в выражение);
callback. Процедура обратного вызова;
errCallback. Процедура обратного вызова при ошибке.
Метод setExpression отправляет запрос на добавление термов для выражения.
Для выполнения примера необходимо наличие на html-странице компонента TransformDialog с наименованием «dialog» (см. «Пример создания компонента TransformDialog»). Получим сервис выражений и добавим обработчики событий GetTerms и GetTermsErr. Отправим запрос на получение термов из элемента измерения в выражение:
// Получаем сервис выражений
PP.Object.defineProps(PP.Ufe.Ui.TransformDialog, 'ExpService', true);
PP.Object.defineProps(PP.Ufe.Ui.TransformDialog, 'transformations', true);
var expService = dialog.getExpService();
// Добавляем обработчик получения термов сервисом выражений
expService.GetTerms.add(function(sender, args) {
console.log("Термы получены");
});
// Добавляем обработчик ошибки получения термов сервисом выражений
expService.GetTermsErr.add(function(sender, args) {
console.log("Ошибка получения термов");
});
// Получаем термы элемента измерения для выражения
var myArgs = {
isValid: true,
position: 0,
reportOdId: expressBox.getSource().getOdId().id,
reportType: "Eax",
terms: true,
transfType: "Calc",
transfKey: dialog.gettransformations().getTransformations()[0].k,
newTermParams: [{
n: "tag",
v: "eax.sel"
}, {
n: "D_SEP",
v: "30000"
}]
};
expService.setExpression(myArgs);
В результате в консоль было выведено сообщение о получении термов:
Термы получены
Отправим запрос на получение термов с неправильным ключом преобразователя:
// Получаем термы элемента измерения для выражения
var myArgs = {
isValid: true,
position: 0,
reportOdId: expressBox.getSource().getOdId().id,
reportType: "Eax",
terms: true,
transfType: "Calc",
transfKey: "key",
newTermParams: [{
n: "tag",
v: "eax.sel"
}, {
n: "D_SEP",
v: "30000"
}]
};
expService.setExpression(myArgs);
В результате в консоль было выведено об ошибке получения термов:
Ошибка получения термов
См. также: