В зарубежной практике широко применяется понятие фискального (финансового) года - FY
(Fiscal Year), который начинается с 1 апреля каждого года. Для учета вам нужно учитывать смещение на 1 квартал, но при этом первый квартал FY Q1 начинается также с 1 апреля. Для целей анализа можно в аналитических системах создавать календари с такими параметрами и пользоваться вкупе с данными, но в некоторых случаях требуется писать значение FY непосредственно в таблицу данных. Давайте напишем функцию (Формулу) в Power APPS, которая позволяет вычислять и представлять в виде строкового значения в формате FYxxQx
, где x
- это числовые значения текущего фискального года и соответствующего квартала.
Для удобства работы с данными сделаем 2 независимые функции вычисления FY и Q (фискального года и квартала). В качестве входного аргумента функции для любой из этих функций будем использовать компонент выбора даты DateFYSelector
(визуальный формат только выбранный месяц и год).
А выводить вычисленные значения будем в поля ввода, для наглядности с применением регулярных выражений проверки корректности вывода, где на FontColor
пропишем свойство проверки:
If(IsMatch(eFY.Value,"FY\d{2}"), RGBA(0, 100, 0, 1), RGBA(255, 0, 0, 1))
Для проверки записи соответствующего квартала Q просто немного меняется регулярное выражение:
If(IsMatch(eFYQ.Value,"Q\d{1}"), RGBA(0, 100, 0, 1), RGBA(255, 0, 0, 1))
Теперь надо вернуться к самим формулам и прописать функции/формулы. Делается это в блоке Power APPS приложения App
:
Листинг кода для каждой из функций выглядит так:
//Вычисление квартала фискального года в формате Qx
vFYQ(DelivDate:DateTime):Text=If(
Month(DelivDate)<=3,"Q4",
Month(DelivDate)>=4 && Month(DelivDate)<=6,"Q1",
Month(DelivDate)>=7 && Month(DelivDate)<=9,"Q2",
Month(DelivDate)>=10,"Q3"
);
//Вычисление фискального года в формате FYxx
vFY(DelivDate:DateTime):Text=If(Month(DelivDate)<=3,"FY"&Right(Year(DelivDate)-1,2),"FY"&Right(Year(DelivDate),2));
Для вызова описанных функций достаточно указать в нашем примере Value с названием формулы и аргументом для вычисления. Для фискального года:
vFY(DateFYSelector.SelectedDate)
Для квартала фискального года:
vFYQ(DateFYSelector.SelectedDate)
Выбирая дату из календаря получаем значения от функций в текстовом формате:
Функции можно вызвать в любом месте приложения неограниченное количество раз.