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);
В результате в консоль было выведено об ошибке получения термов:
Ошибка получения термов
См. также: