4 Replies Latest reply: Dec 1, 2016 9:58 AM by Aleksandr Grinchenko RSS

    Как выводить текущие заказы в сводной таблице?

    Aleksandr Grinchenko

      Здравствуйте! 

      Хотел с Вами посоветоваться по одному вопросу.

      Есть таблица на планирование, в которую подтягиваются данные из файла заказы ВЭД и других источников.

      Все показатели я рассчитал и сделал.

      Вопрос возникает по колонкам 5-7. Нужно чтобы в зависимости от наличия заказов в файле Excel, динамически менялось количество колонок в Таблице на планирование Qlik, нужно чтобы каждый отдельный заказ выводился в новую колонку (период - с начала текущей недели, старые не нужны).

       

      Я решил эту задачу следующим образом:

       

      Ввел переменные дат:

      let v_weekstart_day = Day (weekstart(today ()));
      let v_weekstart_day_3 = Day (weekstart(today ())+3);
      let v_weekstart_day_4 = Day (weekstart(today ())+4);
      let v_weekstart_day_5 = Day (weekstart(today ())+5);
      let v_weekstart_day_6 = Day (weekstart(today ())+6);

      let v_weekstart_day_7 = Day (weekstart(today ())+7);
      let v_weekstart_day_10 = Day (weekstart(today ())+10);
      let v_weekstart_day_11 = Day (weekstart(today ())+11);
      let v_weekstart_day_12 = Day (weekstart(today ())+12);
      let v_weekstart_day_13 = Day (weekstart(today ())+13);

      let v_weekstart_day_14 = Day (weekstart(today ())+14);
      let v_weekstart_day_15 = Day (weekstart(today ())+17);
      let v_weekstart_day_16 = Day (weekstart(today ())+18);
      let v_weekstart_day_17 = Day (weekstart(today ())+19);
      let v_weekstart_day_18 = Day (weekstart(today ())+20);

       

      Ввел переменные с названиями контрагентов:

      SET v_zakaz_1='ПК 33';
      SET v_zakaz_2='линии';
      SET v_zakaz_3='Молдова';
      SET v_zakaz_4='ПК 34';
      SET v_zakaz_5='Юни';
      SET v_zakaz_6='ПК 35';
      SET v_zakaz_7='';
      SET v_zakaz_8='';
      SET v_zakaz_9='';
      SET v_zakaz_10='';

      (сделал запасные, если они будут добавляться)

       

      И для каждого из контрагентов я прописываю выражение для каждого дня начиная с v_weekstart_day и заканчивая v_weekstart_day_18.

       

      Выражение эти следующие:

      SUM({<[Год] = {$(v_current_year)},[№_недели] = {$(v_current_week)},[№_дня] = {$(v_weekstart_day)}, [Заказчик] = {'$(v_zakaz_1)'}>} [Заказы])

       

      Метка:

      Заказы $(v_zakaz_1) $(v_current_week) (тек) неделя $(v_weekstart_day) число

       

      В Условный я пишу:

      SUM({<[Год] = {$(v_current_year)},[№_недели] = {$(v_current_week)},[№_дня] = {$(v_weekstart_day)}, [Заказчик] = {'$(v_zakaz_1)'}>} [Заказы])>0

      чтобы не выводил нули.

       

      Задачу я решил, но решение это уязвимое.

      Во-первых, таким образом можно выводить заказы только на определенный период вперед (неделя, две, три), а хотелось бы от этой зависимости уйти, и выводить на неопределенное количество дней вперед начиная от начала текущей недели.

      Во-вторых, у нас возникает жесткая привязка с перечнем контрагентов, который может меняться. Пользователь вряд ли сможет добавить еще десяток-другой выражений в таблицу Qlik самостоятельно.

       

      Могли бы вы посоветовать более оптимальный путь решения этой задачи? Все необходимое во вложении.

       

      Спасибо!