Формат отображения числовых значений разных размерностей

Приветствую. Столкнулись с такой проблемой: не очень удобно отображаются значения на графике с нашими тестовыми данным:

Приводить к млн, деля на 1 000 000, нельзя. Так как в зависимости от фильтров данные могут опускаться до единиц с десятками. Что при делении на 10^6 будет везде ноль.

Данный вопрос мы решаем через строку форматирования (1):

Но при этом на значения шкалы мер данное форматирование не действует и там мы видим цифры с кучей нулей (2).

Теперь немного про “Как это сделано в QS”:

Там это реализовано через формат чисел мер:

Авто подходит для всего, в том числе и для строк.

Форматы чисел:

Если выбраны форматы с %, то значение 0,123 будет приведено к форме 12.3% автоматически.
Также можно применять произвольную строку форматирования:

Приведённый выше пример я использую для вывода Δ, когда надо показать +/-% факты к плану, который рассчитывается по формуле

Δ=Факт/План-1

Также в QS есть предварительное указание глобальной переменной, в которой указано, как автоматически будут преображаться числовые значения. По умолчанию это выглядит так:

SET NumericalAbbreviation='3:k;6:M;9:G;12:T;15:P;18:E;21:Z;24:Y;-3:m;-6:μ;-9:n;-12:p;-15:f;-18:a;-21:z;-24:y';

А вот для приведённого выше примера эту переменную можно модифицировать следующим образом:

SET NumericalAbbreviation='3: тыс.;6: млн.;9: млрд.;12: трл.;15:P;18:E;21:Z;24:Y;-3:m;-6:μ;-9:n;-12:p;-15:f;-18:a;-21:z;-24:y';

В этом случае для значения 12000 мы получим не 12k, а 12 тыс., что хорошо сказывается на восприятии данных заказчиком.

Предложение:

  1. Ввести аналогичный параметр для Атласа, где централизованно будут задаваться суффиксы преобразованных чисел.
  2. Ввести для каждого дэша параметр формат отображения значений, по аналогии с QS. Если указан “Авто”, до преобразуем с параметром-суффиксом из п. 1. Также этот формат будет использоваться для формирования подписей (меток) для осей.
  3. При этом должна быть возможность указать для каждой меры свой формат отображения, и если он явно не указан, то берём формат для деша из п. 2

Добрый день, в ближайшее время выйдет версия 9.2.3 с применением форматирования и для оси. Последующие ваши пожелания обсудим как реализовать и добавим в roadMap.

Спасибо!

Приветствую. Это отличная новость. Сможете в этом обращении оповестить, что версия вышла?

Есть уточнение для п. 2:

Ввести для каждого дэша параметр формат отображения значений, по аналогии с QS. Если указан “Авто”, до преобразуем с параметром-суффиксом из п. 1. Также этот формат будет использоваться для формирования подписей (меток) для осей.

Можно формат оси Y брать из формата первой меры (Так сделано в QS)

Добрый день!

Компонент luxmsbi-web-9.2.3 доступен в репозиториях.

1 лайк

Подскажите пожалуйста, не везде подхватилось автоматом, куда смотреть, что поправить?


{
  frame: {
    h: 4,
    w: 8,
    x: 0,
    y: 0,
  },
  display: {
    headerStyle: {},
    rotateXLabel: '45',
    xAxisLabelLimit: 7,
  },
  options: [
    'TooltipXAxisTitle',
    'DisplayAllBadges',
    '!DisplayTicks',
    '!DisplaySplitLines',
  ],
  dataSource: {
    koob: 'Vertica_dwh_luxms_svc_r00_AK.DQMON_finteh_payments',
    style: {
      measures: {
        sum_vol: {
          format: '# ###,00 [тыс, млн, млрд, тера]',
        },
      },
      year_ncode: {
        '2021': {
          format: '# ###,00 [тыс, млн, млрд, тера]',
          vizelType: 'spline',
        },
        '2022': {
          format: '# ###,00 [тыс, млн, млрд, тера]',
          vizelType: 'spline',
        },
        '2023': {
          format: '# ###,00 [тыс, млн, млрд, тера]',
        },
      },
    },
    xAxis: 'mrc_name',
    yAxis: 'measures;year_ncode',
    sortBy: '-sum_vol',
    filters: {
      online: true,
      abonent: true,
      mrc_name: true,
      contractor: true,
      year_ncode: true,
      system_name: true,
      payment_date: true,
      post_week_num: true,
      monthofyear_ncode: true,
    },
    measures: [
      '(nvl(sum(abonent_comission),0)+nvl(sum(contractor_comission),0)+nvl(sum(online_comission),0)):sum_vol',
    ],
    hierarchy: [
      'ufps_name',
    ],
    dimensions: [
      'mrc_name',
      'year_ncode',
    ],
  },
  onClickDataPoint: "lpe:setKoobFilters('Vertica_dwh_luxms_svc_r00_AK.DQMON_finteh_payments','mrc_name',['=',mrc_name],'year_ncode',['=',year_ncode]);navigate(dboard,6)",
  view_class: '1II.column',
  title: 'ДОХОД',
}

Добрый день!

Да, наблюдаем. В настоящее время отдел разработки занимается доработками данного функционала.

На текущий момент могу предложить попробовать решить данную проблему через редактирование JSON-конфигурации, для этого укажите формат для всех показателей размерности year_ncode:

      year_ncode: {
        '*': {
          format: '# ###,00 [тыс, млн, млрд, тера]',
        },
      },

И удалите блок measures