Эта функция возвращает значение, представляющее диапазон месяцев периода (форматированного согласно переменным скрипта MonthNames), а также года. Базовое числовое значение соответствует метке времени первой миллисекунды месяца, двухмесячного периода, квартала, триместра или полугодия, содержащих базовую дату.
Число месяцев, обозначающее период. Целое число или выражение, определяемое по целому числу, которое должно быть одним из следующих значений: 1 (эквивалентно функции inmonth()), 2 (двухмесячный период), 3 (эквивалентно функции inquarter()), 4 (триместр) или 6 (полугодие).
date
Дата для вычисления.
period_no
Период можно сместить, задав значение в поле period_no, целом числе или выражении, определяемом по целому числу, где 0 обозначает период, включающий значение, указанное в поле base_date. Отрицательные значения, заданные в поле period_no, означают предшествующие периоды, положительные — последующие.
first_month_of_year
Если необходимо работать с годами (финансовыми), которые начинаются не в январе, задайте значение от 2 до 12 в поле first_month_of_year.
В этих примерах используется формат даты DD/MM/YYYY. Формат даты указан в операторе SET DateFormat в верхней части скрипта загрузки данных. Измените формат в примерах согласно своим пожеланиям.
Примеры написания скриптов
Пример
Результат
monthsname(4, '19/10/2013')
Возвращает Sep-Dec 2013. Поскольку в этом и других примерах оператор SET Monthnames задан как Jan;Feb;Mar и т. д.
monthsname(4, '19/10/2013', -1)
Возвращает May-Aug 2013.
monthsname(4, '19/10/2013', 0, 2)
Возвращает Oct-Jan 2014. Поскольку год указан начинающимся в месяце 2, поэтому четырехмесячный период заканчивается в первом месяце следующего года.
Example:
Добавьте образец скрипта в свое приложение и запустите. Затем добавьте на лист приложения как минимум поля, указанные в столбце с результатами, чтобы увидеть результаты.
В этом примере для каждой даты счета в таблице имя месяцев создается на основе диапазона месяцев в двухмесячном периоде и на основе года. Диапазон смещен месяцами 4x2 путем указания для элемента period_no значения 4.
TempTable:
LOAD RecNo() as InvID, * Inline [
InvDate
28/03/2012
10/12/2012
5/2/2013
31/3/2013
19/5/2013
15/9/2013
11/12/2013
2/3/2014
14/5/2014
13/6/2014
7/7/2014
4/8/2014
];
InvoiceData:
LOAD *,
MonthsName(2, InvDate, 4) AS MthsName
Resident TempTable;
Drop table TempTable;
Результирующая таблица содержит исходные даты и столбец с возвращенным значением функции monthsname().