Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

В данном виджете форматирование может применяться в поле Форматирование текста раздела Фильтр при включенном форматировании:

При форматировании используются следующие зарезервированные команды:

  • @value - значение фильтра.

Выборка
hiddentrue
  • @path - массив всех родительских уровней

    • @path[0]

      • самый первый родитель

    • @path[@level-1]

      • ближайший родитель

  • @level - уровень вложенности

Пример форматирования

Выборка
hiddentrue

Добавление текста к заголовкам в зависимости от уровня

Вы можете добавить пояснительный текст к отображаемым в виджете значениям. В нашем примере мы добавим к числовому обозначению года слово год (нулевой уровень вложенности) и к остальным значениям - слово неделя. Для этого мы введем следующую команду в поле Форматирование текста раздела Фильтр:

@level == 0 ? @value + ' год' : @value + ' неделя'

Где
@level == 0 – уровень вложенности (в нашем примере это 0);
@value + ' год', @value + ' неделя' – текст, добавляемый к значениям.

Форматирование подписей значения фильтра в виде периода дней относительно недели в году

Примечание

Для корректной работы, в иерархии измерений должны быть выбраны следующие атрибуты измерения:

  • Год для недели

  • Номер недели

Данный тип форматирования производится с помощью следующего скрипта:

Блок кода
@level === 0 ? @value : ((year, weekNo) => {
 var d1 = new Date();
 d1.setFullYear(year);
 var numOfdaysPastSinceLastMonday = (d1.getDay() - 1);
 d1.setDate(d1.getDate() - numOfdaysPastSinceLastMonday);
 var weekNoToday = (dt => {
  var target = new Date(dt.valueOf());
  var dayNr = (dt.getDay() + 6) % 7;
  target.setDate(target.getDate() - dayNr + 3);
  var firstThursday = target.valueOf();
  target.setMonth(0, 1);
  if (target.getDay() != 4) {
   target.setMonth(0, 1 + ((4 - target.getDay()) + 7) % 7)
  }
  return 1 + Math.ceil((firstThursday - target) / 604800000)
 })(d1);
 var weeksInTheFuture = (weekNo - weekNoToday);
 d1.setDate(d1.getDate() + (7 * weeksInTheFuture));
 var rangeIsFrom = weekNo + " неделя " + d1.getDate() + "." + (d1.getMonth() + 1);
 d1.setDate(d1.getDate() + 6);
 var rangeIsTo = d1.getDate() + "." + (d1.getMonth() + 1);
 return rangeIsFrom + " - " + rangeIsTo
})(@path[0], @path[1])

Инвертирование формата даты с YYYY-MM-DD на DD-MM-YYYY

Для инвертирования формата даты необходимо выполнить следующую команду:

(@value.split(' ')[0]).split('-').reverse().join('-')

Результат применения команды показан ниже:

convert(1).pngImage Removedconvert(1)(1).pngImage Added


Смотрите также

📄Визуальные настройки виджетов

🕑 Время чтения: 1 мин.


Нужна дополнительная помощь?

Свяжитесь с технической поддержкой.