Я использую pentaho CDE.Pentaho CDE: Предоставьте различные источники данных для каждого бара сложенной гистограммы
Есть ли способ, которым я могу предоставить другой источник данных (MySQL-запрос) для каждого столбца гистограммы CCC?
Я использую pentaho CDE.Pentaho CDE: Предоставьте различные источники данных для каждого бара сложенной гистограммы
Есть ли способ, которым я могу предоставить другой источник данных (MySQL-запрос) для каждого столбца гистограммы CCC?
Я сделал что-то подобное: у меня была диаграмма с «фиктивным» источником данных jsonscriptable поверх скриптов и функция, которая через ajax активировала различные запросы в рамках обещания построить набор результатов. Затем, в postfetch диаграммы, я только что вернул построенный результирующий набор.
Редактировать
Так предположим, у меня есть приборной панели testpromise в/дома/MyHome с 3 Источники данных возвращаются аналогичный результирующий (то есть: то же число столбцов с одинаковыми типами). В моей приборной панели я на самом деле тот же запрос, который вызывается 3 раза с разными параметрами: вам придется настроить код. Предположим, что наша диаграмма называется mychart. У меня есть кнопка (но это может быть что-нибудь еще) со следующим кодом по щелчку действия:
function(){
Dashboards.res=[];//will contain the result ; As for Pentaho 5.4 without RequireJS, Dashboards is a global varialbe, so that Dashboards.res is accessible eveywhere
Promise.all([getib3(2016,3),getib3(2015,3),getib3(2016,8)]).then(
function(r){
//res contains the result of the 3 queries
console.log(res);
Dashboards.etComponentByName('render_mychart').update(); //Activates the chart
},
function(err) {
console.error(err);
}
);
function getib3(a,m){
var postquery='path=%2Fhome%2myhome%Ftestpromise.cda&dataAccessId=sql_get_ib3¶mparam_annee='+a+'¶mparam_mois=' +m;
$.ajax({
url: '/pentaho/plugin/cda/api/doQuery?',
type: 'POST',
dataType: 'json',
data: postquery,
// async:false,
}).done(function (data) { console.log(data) ;
res.push(data.resultset);//ad the result of the query
}).fail(function (jqXHR, textStatus, errorThrown) {
alert('query :' + textStatus);
});
}
}
Диаграмма связана с фиктивным jsonscript источника данных его свойство «выполнить при запуске» устанавливается в ложь. Свойство postfetch:
function(d) {//d is the resultset of the dummy datasource, here we can ignore it.
return (Dashboards.res); //We override d with the resultset we build above
}
Удачи!
можете ли вы прикрепить эту функцию ajax и указать здесь код извлечения. –
да, я должен найти, где код ... Я отправлю его завтра – bhericher
Как и где это подача каждого столбца диаграммы с помощью другого источника данных? –