Общие принципы работы > Создание формул и выражений в Prognoz Platform 8 > Редактор выражения
Унифицированный редактор выражения доступен из различных инструментов Prognoz Platform 8 и предназначен для составления выражений (формул, условий).
Область применения
редактора выражений
Редактор выражений применяется для настройки формулы:
сортировки данных с учетом иерархии;
расчета MDX-выражения для измерения кубов ADOMD;
вычисляемых полей в задаче ETL и так далее.
Пример редактора выражений:
В заголовке окна редактора выражения выводится наименование того элемента, для которого настраивается выражение.
Окно редактора выражения содержит следующие элементы:
Панель предназначена для вставки данных и метаданных источника в выражение.
Панель содержит вкладки:
Отметка. Отображает
измерения источника данных и их элементы. Для переключения между
источниками данных и их измерениями нажмите кнопку ;
Метаданные. Отображает поля, атрибуты, параметры источника данных, для которого был вызван редактор выражения.
Содержание панели «Данные» зависит от объекта, для которого составляется выражение.
Примечание. При редактировании MDX-выражения для измерения куба ADOMD вкладка «Метаданные» не отображается.
Для
отображения панели нажмите кнопку «Отметка/метаданные».
Для скрытия панели:
Наведите указатель мыши на границу панели. Указатель примет вид двунаправленной стрелки.
Нажмите левую кнопку мыши и, удерживая её, передвиньте границу панели до левой границы окна редактора выражения.
После выполнения шагов панель будет скрыта.
Для изменения наименования элементов измерения, отображаемых на панели «Данные»:
Нажмите кнопку , расположенную на вкладке
«Отметка» панели «Данные» слева от поля элементов
измерения.
В раскрывшемся списке выберите вариант отображения наименования.
Будет произведена смена наименования элементов измерения на панели «Данные» и в формируемом выражении.
Подробнее написано в разделе: «Вставка данных».
Панель предназначена для настройки выражения на определенную отметку по измерениям источника данных.
Панель настройки фильтра отсутствует:
если объект, для которого составляется выражение, не требует настройки на определенную отметку по измерениям;
при редактировании MDX-выражения для измерения куба ADOMD.
Подробнее написано в разделе: «Настройка фильтра».
Используется для просмотра и составления выражения. Подробнее написано в разделах: «Вставка функций и операторов», «Вставка данных», «Просмотр формулы вычисляемого элемента выражения».
Панель предназначена для вставки функций и операторов в выражение.
Панель содержит вкладки:
Функции. Отображает функции, доступные для использования в выражении;
Операторы. Отображает операторы, доступные для использования в выражении.
Содержание панели «Функции» зависит от объекта, для которого составляется выражение.
Примечание. При редактировании MDX-выражения для измерения куба ADOMD на панели «Функции» отображаются функции и операторы, доступные для работы с MDX-выражениями.
Для получения краткого описания выделите необходимую функцию/оператор. Описание отобразится в нижней части панели «Функции». В настольном приложении доступно получение ссылки на полное описание функции/оператора. Для этого нажмите ссылку «Полное описание», расположенную в конце краткого описания.
Для отображения панели нажмите
кнопку «Операторы/функции».
Для скрытия панели:
Наведите указатель мыши на границу панели. Указатель примет вид двунаправленной стрелки.
Нажмите левую кнопку мыши и, удерживая ее, передвиньте границу панели до правой границы окна редактора выражения.
Панель будет скрыта.
Подробнее написано в разделе: «Вставка функций и операторов».
Панель предназначена для задания параметров расчета выражения.
Панель «Период расчета» отсутствует:
если объект, для которого составляется выражение, не требует настройки периода расчета;
если в источнике данных объекта отсутствует календарное измерение;
при редактировании MDX-выражения для измерения куба ADOMD.
Для
отображения панели нажмите кнопку «Параметры расчета».
Для скрытия панели:
Наведите указатель мыши на границу панели. Указатель примет вид двунаправленной стрелки.
Нажмите левую кнопку мыши и, удерживая ее, передвиньте границу панели до нижней границы окна редактора выражения.
Панель будет скрыта.
Подробнее написано в разделе: «Настройка периода расчета».
Панель предназначена для отображения ошибок, возникающих в процессе составления выражения.
Панель «Ошибки» отображается, если выражение содержит ошибку.
Подробнее написано в разделе: «Проверка выражения».
Открывает диалог, предназначенный для настройки форматирования выражения. Подробнее написано в разделе: «Настройка форматирования».
Панель предназначена для изменения наименования вычисляемого элемента, для которого задается выражение.
Примечание. При редактировании MDX-выражения для измерения куба ADOMD панель «Период расчета» не отображается.
Подробнее написано в разделе: «Изменение наименования вычислимого элемента».
В выражении допускается использование арифметических операций, цифр, знаков сравнения и круглых скобок. Также доступно использование вложенных функций, данных и метаданных.
Примечание. Если в источнике данных отсутствует календарное измерение, то в редакторе выражения недоступны функции, использующие календарное измерение, недоступно задание лага по календарному измерению, недоступен выбор динамики расчета. Если источник данных содержит несколько календарных измерений, будет использоваться измерение, для которого указан тип «Шкала времени».
При создании выражения доступны следующие операции:
Для вставки функции/оператора в выражение выполните одно из действий:
наберите необходимую функцию с помощью клавиатуры в области выражения;
на панели «Функции» выберите необходимую функцию/оператор и дважды щелкните по ее наименованию;
на панели «Функции» выделите наименование функции или оператора в списке доступных функций/операторов и нажмите кнопку «Вставить в формулу»;
перетащите необходимую функцию/оператор с панели «Функции» в область выражения, используя механизм Drag&Drop;
используйте технологию IntelliSense. Нажмите сочетание клавиш
CTRL + Пробел. Будет отображен список доступных функций
и данных. Функции в данном списке отмечены пиктограммой . Щелкните по названию
функции в списке. Возможность доступна только в настольном приложении;
выполните поиск функции/оператора. Введите наименование функции в строке поиска на панели «Функции». Результат поиска отображается в виде дерева с найденными функциями с указанием категории функции. Выберите необходимую функцию и вставьте ее в выражение одним из вышеперечисленных способов.
Функция/оператор будет вставлена в место расположения курсора.
Функция вставляется в виде «<Наименование функции>()». Курсор будет перемещен в скобки добавленной функции для ввода значений параметров функции.
Примечание. В списке функций/операторов доступна только одиночная отметка.
Для получения краткого описания выделите необходимую функцию/оператор. Описание отобразится в нижней части панели «Функции». В настольном приложении доступно получение ссылки на полное описание функции/оператора. Для этого нажмите ссылку «Полное описание», расположенную в конце краткого описания.
Доступные категории функций:
Доступные операторы:
арифметические операции: +, -, *, /, Mod, Div;
знаки сравнения: =, <>, >, <, >=, <=;
логические: And, Or;
унарные: Not;
скобки: (, ).
В выражении можно использовать любые числа.
Для вставки числа в выражение:
Установите курсор в необходимую позицию.
Наберите необходимое число с помощью клавиатуры.
Число будет вставлено в место расположения курсора.
Также при работе с числами доступны стандартные операции буфера обмена: копирование, перенос и вставка.
Для вставки данных в выражение перейдите на вкладку «Отметка» на панели «Данные» и выполните одно из действий:
дважды щелкните по необходимому элементу данных;
выделите необходимые данные и нажмите кнопку «Вставить в формулу»;
перетащите необходимые данные с панели «Данные» в область выражения, используя механизм Drag&Drop;
используйте технологию IntelliSense. Нажмите сочетание клавиш
CTRL + Пробел. Будет отображен список доступных данных
и функций. В списке данные отмечены пиктограммой . Щелкните по элементу
данных в списке. Возможность доступна только в настольном приложении;
выполните поиск элемента данных. Введите наименование элемента данных в строке поиска на панели «Данные». Результат поиска отображается в виде дерева с найденными элементами. Выберите необходимый элемент данных и вставьте его в выражение одним из вышеперечисленных способов.
Данные будут вставлены в место расположения курсора в фигурных скобках, например:
{Данные Росстата[t]}
Где «[t]» - это значения, отмеченные в календарном измерении.
Если для данных задано конкретное значение в календарном измерении, то оно будет отображаться в выражении, например:
{Данные Росстата[2001]}
Использование
пользовательских методов и переменных
В выражении доступно использование:
методов, написанных пользователем и подключенных в общий список функций. Вставка данных методов в выражение выполняется аналогично вставке стандартных методов. Подробнее написано в разделе: «Подключение пользовательских методов в редактор выражения»;
прикладных Fore-функций. Прикладная функция должна быть написана на языке Fore, иметь модификатор доступа Public и сохранена в модуле. Для использования Fore-функций в выражении укажите полный путь к функции в формате: <Идентификатор модуля>.<Имя функции>[(Значения параметров)];
прикладных Fore.NET-функции. Прикладная функция должна быть написана на языке Fore.NET, иметь модификатор доступа Public и сохранена в Fore.NET-модуле. Для использования Fore.NET-функции в выражении укажите путь к функции в формате: <Идентификатор сборки Fore.NET>.[<Пространство имен>].<Имя класса>.<Имя функции>. Если пространство имен не задано, то используется пространство имен .NET-сборки по умолчанию;
временны́х и фиктивных переменных. Применяются при составлении выражения в факторных моделях в модуле «Моделирование и прогнозирование». Для вставки временно́й или фиктивной переменной в выражение введите её название и параметры с клавиатуры. Подробнее написано в разделе: «Временны́е и фиктивные переменные»;
статических методов прикладных и системных классов. Для использования методов в выражении необходимо указать полный путь к методу в формате: <Имя модуля>.<Имя класса>.<Имя метода>. Подробнее написано в разделах: «Классы», «Классы сборки System», «IStatistics» и «MathFin».
Примечание. Перед использованием функций, написанных на языке Python, убедитесь, что выполнена интеграция Python и Prognoz Platform 8.
Для вызова функций, написанных на языке Python, используйте метод Invoke:
Invoke("ModuleName","FunctionName",Param1,Param2,…,ParamN)
Где:
ModuleName. Имя модуля, содержащего функцию;
FunctionName. Имя функции;
Param1,Param2,…,ParamN. Параметры функции, перечисленные через запятую. Не указываются, если вызываемая функция не содержит параметров.
Для вызова функций Python без параметров метод Invoke имеет следующий синтаксис:
Invoke("ModuleName","FunctionName",Null)
При вызове функций Python учитывайте следующие особенности:
имя модуля и имя функции регистрозависимые. Имя модуля указывается без расширения .py;
модуль, в котором расположена функция, должен быть скопирован в папку установки Prognoz Platform 8 или должен быть импортирован в состав библиотеки Python;
параметры функции и результат, который она возвращает, должны иметь один из следующих типов данных: Null, Boolean, Integer, Double, Decimal (применим только к результату, возвращаемому функцией), String.
Совет. Для получения подробной информации о написании функций на языке Python и об импорте модулей в состав библиотеки Python обратитесь к документации Python.
Лаг отвечает за сдвиг данных на заданное количество точек в календарном периоде. Если значение лага:
положительное. Данные сдвигаются вперед;
отрицательное. Данные сдвигаются назад.
Календарный период указывается в конце данных в квадратных скобках, например:
{Данные Росстата[t]}
Для редактирования лага данных:
Дважды щелкните по элементу данных в выражении. Данные перейдут в режим редактирования.
Установите курсор перед закрывающей квадратной скобкой.
Введите значение лага.
Для данных будет задан лаг, например:
{Данные Росстата[t+1]}
Использование
параметров источника данных
Для любого измерения, кроме календарного, существует возможность использования в выражении параметров источника вместо самого элемента.
Для этого выберите на вкладке «Метаданные» панели «Данные» параметр и выполните одно из действий:
дважды щелкните по параметру;
нажмите кнопку «Вставить в формулу»;
перетащите параметр с панели «Данные» в область выражения, используя механизм Drag&Drop.
Элемент выражения примет вид:
{Наименование элемента справочника.Параметр1.…ПараметрN[t]}
Значением параметра можно будет управлять через стандартный механизм работы с параметрами.
Ниже приведены примеры выражения без использования параметра и с использованием параметра:
{Площадь территории, тыс.кв.км[t]}
{Площадь территории, тыс.кв.км.ФАКТЫ.NAME[t]}
Для настройки динамики расчета элемента выражения выполните команду «Динамика» в контекстном меню элемента выражения и из раскрывающегося списка выберите необходимый вариант.
В зависимости от того, откуда был открыт редактор выражения, для настройки периода расчёта всего выражения доступны следующие параметры на панели «Период расчёта»:
Начало расчета. Задайте значение начала идентификации выражения:
первый элемент из отметки Значение по умолчанию;
начало данных +/-. Дата равна первой фактической дате входного ряда с плюс число периодов, указанных в соответствующем редакторе чисел;
Примечание. Если период/дата заданы через IMsFormulaTermInfo.DateParamID, то данная дата не будет учитываться для «Начала данных» / «Окончания данных».
определенная дата. Установите дату начала расчета в формате «месяц год». Параметр зависит от динамики вычисляемого элемента;
сегодня +/-. Установите количество периодов вперед/назад. Сдвиг будет осуществляться по динамике вычисляемого элемента;
от конца периода идентификации. Установите количество периодов назад. Сдвиг будет осуществляться по динамике вычисляемого элемента;
Окончание идентификации. Задайте значение окончания идентификации выражения:
последний элемент из отметки. Значение по умолчанию;
окончание данных +/-. Дата равна последней фактической дате входного ряда плюс число периодов, указанных в соответствующем редакторе чисел;
определенная дата. Установите дату окончания идентификации в формате «месяц год». Параметр зависит от динамики вычисляемого элемента;
сегодня +/-. Установите количество периодов вперед/назад. Сдвиг будет осуществляться по динамике вычисляемого элемента;
от начала расчета. Установите количество периодов вперед. Сдвиг будет осуществляться по динамике вычисляемого элемента;
Примечание. При установленном начале расчета «От конца периода идентификации» нет возможности установить окончание идентификации в значение «От начала расчета».
Окончание расчета. Задайте значение окончания периода прогнозирования:
конец периода отображения. Дата равна дате окончания периода отображения данных в рабочей книге;
Примечание. Параметр доступен только в инструменте «Анализ временных рядов».
последний элемент из отметки. Значение по умолчанию;
определенная дата. Установите дату окончания расчета в формате «месяц год». Параметр зависит от динамики вычисляемого элемента;
окончание данных +/-. Дата равна последней фактической дате входного ряда плюс число периодов, указанных в соответствующем редакторе чисел;
сегодня +/-. Установите количество периодов вперед/назад. Сдвиг будет осуществляться по динамике вычисляемого элемента;
от конца периода идентификации. Установите количество периодов вперед. Сдвиг будет осуществляться по динамике вычисляемого элемента;
Примечание.
Если используется способ «Сегодня
+/-», то даты окончания идентификации и прогнозирования смещаются
на конец периода. Актуально для динамик от месячной и выше.
Например, дата окончания идентификации - апрель 2012, а дата окончания
расчёта равняется дате окончания идентификации. Таким образом, при
вычислении ряда дата окончания расчёта - 30.04.2012.
Тип расчета. Задайте значение тип расчета выражения:
векторный. Используется по умолчанию. Формула рассчитывается одновременно по всем точкам данных;
поточечный (вперед). Расчёт ведется последовательно в каждой точке данных: сначала формула рассчитывается по первой данных, затем - по второй точке и т.д.;
поточечный (назад). Расчёт ведется последовательно в каждой точке данных: сначала формула рассчитывается по последней точке, затем - по предпоследней точке и т.д.;
Динамика. В раскрывающемся списке выберите динамику расчета.
После задания параметров выражение будет рассчитано в зависимости от периода расчета.
Использование
переменных с различной календарной динамикой
Если в выражении встречается функция или метод, требующий одинаковых динамик у операндов, то проверяется соответствие:
динамик рядов;
начальных дат рядов;
длин рядов;
дней начала недели (для недельной и дневной динамик);
выходных дней (для дневной динамики).
Расчёт производится, если динамики рядов совпадают, иначе отображается сообщение об ошибке.
Для редактирования данных в области выражения:
Выделите элемент выражения, который необходимо отредактировать;
Внесите изменения с помощью клавиатуры или команд контекстного меню: «Вырезать», «Копировать», «Вставить», «Удалить», «Отменить», «Выделить все».
После завершения редактирования выражения будет выполнена его проверка.
Для настройки выражения на определенную отметку по измерениям, за исключением того измерения, для которого задается выражение, перейдите на панель настройки фильтра.
По умолчанию выражение действует на все элементы в измерениях. В этом случае на панели отображается значение «Фильтр: Не задан».
Для добавления фильтра кликните по значению текущего фильтра и в раскрывающемся списке выберите «Добавить новый фильтр». Откроется диалоговое окно «Редактор фильтра»:
Задайте в окне необходимые отметки по измерениям.
Для фильтра можно задать наименование. Для этого установите флажок «Определить имя фильтра» и введите наименование фильтра.
Примечание. Для некалендарных измерений в окне «Редактор фильтра» доступна настройка динамики распространения выражения. Например, годовая, квартальная, месячная.
Для сохранения настроек фильтра нажмите кнопку «OK» в окне «Редактор фильтра».
После задания фильтра на панели настройки фильтра в окне редактора выражения будут отображены заданные отметки по измерениям (если не было определено наименование фильтра) или наименование фильтра.
Над настроенным фильтром доступны следующие операции:
редактирование фильтра. Для редактирования установленного фильтра кликните по наименованию фильтра на панели настройки фильтра и в раскрывшемся списке выберите пункт «Редактировать фильтр». Откроется окно «Редактор фильтра»;
удаление фильтра. Для удаления установленного фильтра кликните по наименованию фильтра на панели настройки фильтра и в раскрывшемся списке выберите пункт «Удалить фильтр»;
выбор другого фильтра. Для смены установленного фильтра на другой кликните по наименованию фильтра на панели настройки фильтра и в раскрывшемся списке выберите фильтр из доступных.
После добавления данных в выражение они становятся элементами выражения.
Для редактирования структуры элемента выражения:
выполните команду «Редактировать» в контекстном меню элемента выражения;
дважды щелкните по элементу выражения.
Элемент выражения изменит свою структуру:
{<Наименование элемента, выбранного из первого справочника>|…|<Наименование элемента, выбранного из N-го справочника>}
Где:
в фигурные скобки «{…}» заключено наименование элемента данных;
символом «|» разделяются наименования элементов данных из различных справочников.
Например, если элемент выражения имел следующий вид:
{Данные Росстата[t]}
После выполнения процедуры редактирования элемент выражения пример вид:
{{Факты}|{Социально-экономические показатели}|Данные Росстата|{Территориальные образования}[t]}
Также при работе с элементами выражения доступны стандартные операции буфера обмена: копирование, перенос и вставка.
Изменение
наименования вычисляемого элемента
Если требуется, введите новое наименование элемента, для которого создается выражение, на панели «Наименование».
Просмотр данных,
соответствующих элементу в выражении
Для просмотра данных, соответствующих элементу в выражении:
Выделите данные в выражении.
Выполните команду «Показать элемент в списке» в контекстном меню данных.
Элементы, соответствующие данным из выражения, будут отображены на панели «Данные».
Просмотр
формулы вычисляемого элемента выражения
Для просмотра формулы вычисляемого элемента, который используется в формуле выбранного на панели «Данные» вычисляемого элемента выражения, выполните команду «Показать формулу» в контекстном меню элемента в области выражения. В области выражения будет отображена формула вычисляемого элемента.
Для возврата формулы вычисляемого элемента к исходному состоянию выполните команду «Предыдущая формула» в контекстном меню формулы вычисляемого элемента в области выражения.
Для работы с готовым выражением доступны следующие операции:
Для настройки форматирования выражения нажмите кнопку «Настройки» в окне редактора выражения. Появится окно «Настройки», содержащее вкладки для редактирования интерфейса и стилей оформления следующих элементов выражения:
базовый;
идентификаторы;
ключевые слова;
числа;
операторы;
разделители;
строки.
Содержание окна «Настройки» зависит от того, откуда был открыт редактор выражения.
Для настройки отображения родительских объектов формулы установите флажок «Отображать родительские объекты формулы в виде» на вкладке «Интерфейс» и выберите, в каком виде должны отображаться родительские объекты: имен или идентификаторов. По умолчанию флажок снят.
Параметры стилей оформления для всех элементов выражения одинаковые: шрифт, размер, цвет текста, цвет фона, начертание:
В области «Образец» отображается внешний вид элемента выражения, который он примет после применения установленных параметров. Проверьте, соответствует ли внешний вид элемента выражения ожидаемому результату. Для сохранения настроек форматирования нажмите кнопку «OK».
Примечание. Настройки форматирования сохраняются на рабочем месте пользователя.
Проверка корректности выражения выполняется автоматически в процессе его составления. Текст ошибки будет выведен на панель ошибок с указанием позиции, в которой допущена ошибка.
Для установки курсора в место возникновения ошибки нажмите на панель ошибок.
См. также:
Параметры редактора значений | Редактирование измерения