Ho un problema con le librerie Highcharts. Ho creato vari grafici con lo strumento di visualizzazione personalizzata disponibile in Jaspersoft Studio. Non usano tutta la stessa libreria, ad es. Dispongo di un grafico Mappa a bolle che utilizza Highmaps.js e un grafico azionario che utilizza Highstock.js.Problema di duplicazione della libreria utilizzando Highcharts in Jaspersoft Studio
Ogni report sembra funzionare molto bene quando lo visualizzo in Jaspersoft Server. Ma quando ho creare un dashboard contenente due relazioni differenti, ho questo errore:
Uncaught Highcharts error #16: www.highcharts.com/errors/16 Highcharts already defined in the page
Questo errore si verifica il secondo Highcharts di tempo o Highstock viene caricato nella stessa pagina, in modo che il namespace Highcharts è già definita. Tenere presente che il costruttore di Highcharts.Chart e tutte le funzionalità di Highcharts sono inclusi in Highstock, quindi se si esegue Chart e StockChart in combinazione, è sufficiente caricare il file highstock.js.
Capisco che c'è un conflitto tra Highmaps.js e Highstock.js in quanto hanno caratteristiche in comune. Ma non so come evitarlo: ho bisogno di funzionalità sia da Highmaps che da Highstocks. Ecco come includo queste librerie per definire i miei rapporti:
grafico -1 ° (della tabella)
define(['jquery', 'highstock'], function(hs_test) {
return function(instanceData) {
/*...*/
}
});
grafico -2nd (mappa grafico a bolle)
define(['jquery','highmaps','data','world','exporting'], function (mapbubble) {
return function(instanceData) {
/*...*/
}
});
Ed ecco come lo scrivere il mio build.js file:
({
optimize: 'none',
baseUrl: '',
paths: {
jquery: 'jquery',
highstock: 'highstock',
exporting: 'exporting',
'highstock_test': 'highstock_test'
},
shim: {
'highstock': {
deps: ["jquery"],
exports: 'Highcharts'
}
},
name: "highstock_test",
out: "highstock_test.min.js"
})
ho usato l'esempio Highstock qui, ma mi fanno esattamente la stessa cosa con la relazione usando Highmaps. Spero di non essere il primo ad avere questo problema e, in tal caso, qualcuno può suggerirmi un metodo per evitare questa duplicazione della libreria?
EDIT
Come suggerito, ho provato a sostituire highmaps.js da highstock.js + map.js come seguono:
define(['jquery','highstock','map','data','world','exporting'], function ($, Highcharts) {
return function (instanceData) {
/*...*/
}
})
ora ho un errore 17:
The requested series type does not exist
This error happens when you are setting chart.type or series.type to a series type that isn't defined in Highcharts. A typical reason may be that your are missing the extension file where the series type is defined, for example in order to run an arearange series you need to load the highcharts-more.js file.
Ora manca qualcosa da Highmaps.js e non so cosa. In attesa di suggerimenti.
UPDATE
posso evitare questo errore 17 includendo Highcharts-more.js, ma ho ancora questo errore 16 durante l'esecuzione di due grafici.
Qui ci sono gli errori che ho quando ho eseguito i miei due rapporti nello stesso cruscotto:
Sembra che OP si stia chiedendo nel contesto di RequireJS in particolare. – kryger
L'ordine di caricamento verrebbe comunque applicato. – wergeld
Sì, come detto da @kryger, posso usare solo RequireJS per includere gli script. Ho provato molte combinazioni diverse, ma nessuno sembra funzionare. Penso che l'unico modo sia trovare un file contenente TUTTE le caratteristiche dei grafici ad alta risoluzione. Cosa ne pensi ? – Kabulan0lak