У нас есть suitecrm 7.8 и php 5.5, а также kreporter v3.1. Мы создаем гистограмму с накоплением с помощью плагина Gooogle Charts (показано ниже). Теперь мы хотим сделать его интерактивным для пользователей. Если пользователь нажимает на значение легенды, он должен отключить это конкретное значение и обновить диаграмму в соответствии с ним. Кроме того, когда пользователь снова нажимает на то же значение легенды, диаграмма должна вернуть это значение. Итак, мы хотим добавить функцию переключения значений легенды и соответственно обновить диаграмму.

Например, для изображения ниже, если мы нажмем значение «Переговоры/Просмотр» в легенде (коричневая полоса). У нас должна получиться невидимая полоса коричневого цвета. Если мы нажмем на него еще раз, он снова станет видимым.
[*]Код, который мы пробовали: $googleChart = массив( 'chartType' =\> ($thisParams\['type'\] != 'Gauge' ? $thisParams\['type'\] . 'Chart' : 'Gauge'), 'containerId' =\> $divId, 'options' =\> массив( 'легенда' =\> массив( 'позиция' =\> 'право' ), 'fontSize' =\> 11 ), 'dataTable' =\> $googleData ); // обрабатываем параметры foreach ($thisParams\['options'\] as $thisOption =\> $thisOptionCount) { переключатель ($thisOption) { случай «is3D»: $googleChart\['options'\]\['is3D'\] = true; перерыв; случай «сложен»: $googleChart\['options'\]\['isStacked'\] = true; перерыв; случай «обратный»: $googleChart\['options'\]\['reverse'\] = true; перерыв; случай 'curvetypefunction': // обрабатываем функцию типа кривой перерыв; // при необходимости добавляем больше случаев для других опций } } // добавляем прослушиватель событий клика по легенде $googleChart\['events'\] = массив( 'click' =\> 'function(e) { if (e.target.tagName === "SPAN") { var columns = parseInt(e.target.getAttribute("столбец данных")); вар скрытьКолумн = (тип скрытого столбца === "не определено") ? ложь: скрытьКолумн; скрытьКолумн = !HideColumn; var view = новый google.visualization.DataView(dataTable); view.setColumns(\[0, { тип: «число», метка: dataTable.getColumnLabel(столбец), расчет: функция (dt, строка) { вернуть скрыть столбец? null: dt.getValue(строка, столбец); } }\]); chart.draw(просмотр, параметры); } }' );