Откройте панель инструментов icCube (с параметрами), щелкнув по элементу

#javascript #parameters #dashboard #iccube #iccube-reporting

#javascript #параметры #Информационная панель #iccube #iccube-отчетность

Вопрос:

Как я могу установить событие на панели инструментов icCube, которое открывает другую панель инструментов? (и это передает параметры выбора)

Комментарии:

1. Не могли бы вы быть немного более конкретными в отношении того, чего вы пытаетесь достичь? Разве «Встроенный отчет» не охватывает то, что вам нужно?

2. К сожалению, нет. Например, в панели инструментов 1 я устанавливаю событие при щелчке строки (например, «страна») в таблице. При нажатии на страну этой таблицы я хочу, чтобы этот щелчок открывал панель инструментов 2 с выбранной страной в качестве фильтра для панели инструментов 2

Ответ №1:

icCube помог мне с аналогичным запросом с моей стороны разрешить вопрос «детализация по URL-адресу при нажатии на строку / столбец в диаграмме». Вы можете изменить это, чтобы задать URL-адрес для открытия другой панели инструментов.

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

Шаги:

  1. Определите одно или несколько событий щелчка в вашей диаграмме, например: щелчок по строке -> событие: «страна»;
  2. Определите фильтр многомерных выражений, например, для года, назовите его: «год»;
  3. В виджетах JS установите «При отправке события»;
  4. Добавьте и измените следующий код (этот код открывает Google с вашим параметром):
 /**
 * Tips:
 * type  - fired event type,
 * event - fired event object (same as first element of args array),
 * args  - list of arguments passed to fireEvent function
 * 
 * Function may return:
 *  - event - will replace first element of args
 *  - args  - will replace whole args array
 *  - false - will cancel event
 */
function(context, $box, type, event, args) {    
  let yearEvent =  context.reportingContext.eventMgr_._eventValues["year"];
  if (!event.isEmptyEvent() amp;amp; yearEvent amp;amp; !yearEvent.isEmptyEvent() ) {      
    let win = window.open("https://www.google.com/search?q="  event.caption()   " "   yearEvent.caption() , '_blank');
    win.focus();
  }
  return args;
}
  

Результат (тест)

Когда вы нажимаете, например, на страну «Нидерланды», с настройкой фильтра «2011» -> google открывается с результатом поиска «Нидерланды 2011».