Пользовательская функция - процедура или функция, осуществляющая расчет или преобразование данных по алгоритму пользователя.
Все пользовательские функции являются глобальными в рамках репозитория и доступны для использования во всех базах данных временных рядов в настольном и веб-приложении.
Для создания пользовательской функции используйте метод IForeMethods.Add.
При создании пользовательской функции учитывайте значение параметра Type для определения типа метода (арифметический, поточечный или векторный). Если пользовательская функция рядного типа, то она обрабатывает все выделенные ряды одновременно. В рабочую книгу добавляется один результирующий ряд, содержащий результаты расчёта. При указании параметров пользовательской функции в окне «Параметры для» будет доступен ряд «Result», соответствующий результирующему ряду.
Примечание. Создание пользовательских функций доступно только в настольном приложении.
В дочернем контейнере моделирования расчёт пользовательских функций всегда осуществляется в векторном режиме. Все параметры, указанные пользователем в окне «Параметры для», распознаются автоматически. Если в расчёте используются ряды данных, то они должны быть типа ITimeSeries. Для возврата рассчитанных значений функции также должны использоваться данные типа ITimeSeries.
Sub MyFunc(Input: ITimeSeries; Output: ITimeSeries; Coef: Double);
Function MyFunc1(Input, Input1: ITimeSeries; Coef: Double): ITimeSeries;
Если пользовательский метод арифметический или поточечный, в качестве пользовательского метода должна использоваться функция, возвращающая данные типа ITimeSeries.
При вычислении метода для нескольких рядов расчёт производится для каждого ряда в отдельности. При этом в рабочую книгу добавляется ряд с результатами для каждого рассчитанного ряда.
Для применения пользовательской функции расчёта к временному ряду используйте команды, расположенные на вкладке ленты инструментов «Вычисления». Расположение команды зависит от настроек метода:
если категория пользовательского метода совпадает с категорией стандартного метода расчёта, то пользовательская функция будет отображаться в стандартном меню на вкладке «Вычисления» ленты инструментов. Например, метод, имеющий категорию «Арифметика», будет содержаться в меню одноименной кнопки;
если категория пользовательского метода отличается от категорий стандартных методов, то на вкладке «Вычисления» ленты инструментов будет добавлена кнопка «Пользовательские функции», содержащая подменю с наименованием категории пользовательского метода. Например, для метода с категорией «Мои функции» в меню кнопки «Пользовательские функции» будет добавлено подменю «Мои функции», содержащее пользовательский метод;
если для пользовательского метода не задана категория, то он будет содержаться в меню кнопки «Пользовательские функции» на вкладке «Вычисления» ленты инструментов.
Если для расчёта метода требуется ввод каких-либо дополнительных параметров, будет отображен диалог «Параметры для».
После применения пользовательской функции в рабочую книгу будет добавлен ряд с наименованием вида «<Наименование_метода>(<Список_Объясняющих_Рядов>)», содержащий результаты расчёта.
См. также:
Работа с вычисляемыми рядами | Настройка параметров метода расчёта