Estensioni
copia linkIntroduzione
Il componente grafico di IN.DE è predisposto per poter essere collegato anche ad altri motori grafici, diversi da JFreeChart o FusionChart. Per collegare un proprio motore grafico è sufficiente creare una classe Java o C# che implementi l'interfaccia descritta in questo articolo.
Più precisamente, la classe Java o C# deve implementare l'interfaccia com.progamma.is.IAGraphLibrary in Java o com.progamma.ids.IAGraphLibrary in C#; i sorgenti dell'interfaccia sono scaricabili dai link in fondo all'articolo. All'interno di questa classe l'implementazione dei metodi dell'interfaccia può utilizzare il proprio motore grafico per la realizzazione dei grafici stessi e per la gestione della renderizzazione html.
Una volta creata la classe è sufficiente inserirla nella directory custom del progetto (nella sottocartella src in Java o App_Code in C#), aggiornare il file FileList.txt (aggiungendo una riga contenente la sottocartella ed il nome della propria classe) ed utilizzare il metodo Set Library Name del grafico, passando come parametro una stringa contenente il nome della propria classe (senza estensione e inserendo eventuali package o namespace).
Il componente grafico si occuperà a quel punto di caricare la classe e chiamare in maniera automatica i suoi metodi per renderizzare il grafico.
Esempio di impostazione di una libreria personalizzata.
Metodi dell'interfaccia IAGraphLibrary
Riportiamo qui i metodi dell'interfaccia IAGraphLibrary. Per alcuni metodi sono presenti delle note per spiegarne il significato e l'utilizzo.
-
void setMainFrm(WebEntryPoint w);
Questo metodo fornisce alla libreria un riferimento all'oggetto base del framework applicativo, necessario per ottenere i riferimenti ai Visual Style. - WebEntryPoint getMainFrm();
-
void setNumSeries(int Num);
Questo metodo fornisce alla classe il numero delle serie del grafico. - int getNumSeries();
-
void setChartType(int tipo);
Questo metodo imposta il tipo di grafico; i possibili valori del parametro tipo sono visibili dalla lista valori della libreria grafica oppure tramite i seguenti campi statici della classe com.progamma.ids.AGraph in C# o com.progamma.is.AGraph in Java.- AGraph.BARCHART
- AGraph.BAR3DCHART
- AGraph.LINECHART
- AGraph.AREACHART
- AGraph.PIECHART
- AGraph.PIE3DCHART
- AGraph.RINGCHART
- AGraph.TIMELINECHART
- AGraph.TIMEBARCHART
- AGraph.XYLINECHART
- AGraph.SCATTERCHART
- AGraph.SPIDERWEBCHART
- int getChartType();
- void setTitle(String titolo);
- String getTitle();
- void setTitleandSubtitle(String nome, String descrizione);
- String getSubtitle();
- void setLegendVisible(bool visibile);
- bool getLegendVisible();
-
void setLegendPosition(int posizione);
Questo metodo fornisce alla libreria la posizione della legenda, posizione che è definita da un intero presente sia nella lista valori della libreria grafica sia nei seguenti campi statici della classe com.progamma.ids.AGraph in C# o com.progamma.is.AGraph in Java.- AGraph.RIGTH
- AGraph.LEFT
- AGraph.TOP
- AGraph.BOTTOM
- int getLegendPosition();
- void setBorderVisible(bool visibile);
- bool getBorderVisible();
-
void setAlpha(double alpha);
Questo metodo imposta il valore della trasparenza desiderata dall'utente. - double getAlpha();
- void setTooltipsVisible(bool visibile);
- bool getTooltipsVisible();
-
void setOrientation(int orientation);
Questo metodo imposta l'orientamento del grafico, se orizzontale o verticale.
I parametri possono essere:- AGraph.HORIZONTAL
- AGraph.VERTICAL
- int getOrientation();
- void setShowPoints(bool visibile);
- bool getShowPoints();
- void setShowValueLabel(bool visibile);
- bool getShowValueLabel();
-
void setTimePeriod(int timePeriod);
I parametri di questo metodo possono essere:- AGraph.YEAR
- AGraph.MONTH
- AGraph.DAY
- AGraph.HOUR
- AGraph.MINUTE
- AGraph.WEEK
- int getTimePeriod();
-
String getImageMap(String codice);
Questo metodo viene usato per restituire l'Image Map per realizzare la cliccabilità del grafico. Se la mappa non è necessaria il metodo può restituire stringa vuota. -
void setUrlString(String prefisso, int frameIndex);
Questo metodo fornisce alla libreria il formato da utilizzare nelle URL degli hyperlink nel caso si voglia realizzare un grafico attivo. Per ogni punto che si vuol rendere cliccabile il suo hyperlink deve concatenare ai dati passati dal Framework attraverso questo metodo i dati del punto, cioè 'S' seguita dal numero della serie (due cifre) e 'I' seguita dal numero del punto premuto.
URL: [prefisso][frameIndex a due cifre]S[int]I[int] - void setHyperlink(bool cliccabile);
- bool getHyperlink();
-
void setVisualStyleChart(int visualStyle);
Imposta il Visual Style del grafico, oppure -1 se il grafico non ha un Visual Style. Per recuperare le impostazioni a partire dal Visual Style è necessario utilizzare il seguente codice:- VisAttrObj style = w.VisualStyleList.VisualAttribute(visualStyle);
- style.Color(int Selettore del colore desiderato) : restituisce il colore dell'elemento selezionato. Il colore viene restituito in un formato interno ad INDE, la classe AGraph ha un metodo statico che converte il formato interno di INDE nel formato standard di Java o C# (AGraph.getColor()).
- style.Font(int Selettore del font desiderato) : restituisce il font dell'elemento selezionato. Il font viene restituito in un formato interno ad INDE, la classe AGraph ha un metodo statico che converte il formato interno di INDE nel formato standard di Java o C# (AGraph.getFont()).
-
style.CBorType(int Selettore del bordo desiderato) : restituisce il tipo di linea del bordo selezionato.
Il tipo di linea può essere uno dei seguenti:- Glb.VISCTYP_SOLID
- Glb.VISCTYP_DASHED
- Glb.VISCTYP_DOTTED
- Glb.VISCTYP_DOUBLE
- style.CBorWidth(int Selettore del bordo desiderato) : restituisce lo spessore della linea del bordo selezionato.
- style.CBorColor(int Selettore del bordo desiderato) : restituisce il colore del bordo selezionato nel formato interno di INDE.
- int getVisualStyleChart();
- void setLabelXAxis(String label);
- String getLabelXAxis();
-
void setVisualStyleXAxis(int visualStyle);
Setta il Visual Style dell'asse X, oppure -1 se nessun Visual Style è definito. - int getVisualStyleXAxis();
- void setXAxisVisible(bool visibile);
- bool getXAxisVisible();
- void activateAutoRangeX();
- bool AutoRangeX();
- void setRangeX(double minValue, double maxValue);
- double minValueX();
- double maxValueX();
- void setXGridVisible(bool visibile);
- bool getXGridVisible();
- void setLabelYAxis(String label);
- String getLabelYAxis();
-
void setVisualStyleYAxis(int visualStyle);
Setta il Visual Style dell'asse Y oppure -1 se nessun Visual Style è definito. - int getVisualStyleYAxis();
- void setYAxisVisible(bool visibile);
- bool getYAxisVisible();
- void activateAutoRangeY();
- bool AutoRangeY();
- void setRangeY(double minValue, double maxValue);
- double minValueY();
- double maxValueY();
- void setYGridVisible(bool visibile);
- bool getYGridVisible();
-
void setSerieLabel(int Num, String Label);
Setta il nome della serie, le serie sono 1-based. - String getSerieLabel(int Num);
-
void setSerieVisualStyle(int Num, int visualStyle);
Setta il Visual Style relativo alla serie oppure -1 se per la serie non è definito nessun Visual Style. Le serie sono 1-based. - int getSerieVisualStyle(int Num);
-
void setVisualStylePieGraph(int style);
Setta il Visual Style delle label dei grafici a torta oppure -1 se per i grafici a torta non è definito un Visual Style. - int getVisualStylePieGraph();
- void setPercentVisible(bool visibile);
- bool getPercentVisible();
-
void setExplosion(int section, double explosion);
Setta l'explosion (la separazione) di una sezione del grafico a torta; le sezioni sono 1-based. - double getExplosion(int section);
Metodi dell'Interfaccia per disegnare il grafico
-
int drawGraph(IDCachedRowSet RS, int width, int height, int formato);
Questo metodo viene chiamato dal componente grafico quando è necessario disegnare un grafico su una query. -
int drawGraph(IMDBObj IMDB, int dataSource, int width, int height, int formato);
Questo metodo viene chiamato dal componente grafico quando è necessario disegnare un grafico su una tabella IMDB. I dati contenuti nella tabella si possono leggere con il metodo:-
IMDB.Value(dataSource, [numero del field da leggere 0-based], CurIdx)
In tutti i metodi riguardanti la lettura della tabella il parametro curIdx deve essere uguale a 0.
-
IMDB.Value(dataSource, [numero del field da leggere 0-based], CurIdx)
-
void setGraphFile(String gf);
Questo metodo viene chiamato dal componente grafico quando va impostato il nome del file che dovrà essere prodotto dal grafico. - String getGraphFile();
- object getChartObject();
-
void Render(WebEntryPoint w, String GraphCode);
Questo metodo viene chiamato dal componente grafico quando deve esserne eseguita la renderizzazione, avendo come parametri la Form principale ed il nome del grafico. E' la libreria che si deve occupare di scrivere l'HTML necessario per renderizzarsi.
Per scrivere l'HTML si può utilizzare il metodo:- w.WriteStr( [Stringa HTML] );
Indici degli Stili Visuali
Questi sono gli indicatori utilizzati per selezionare uno degli elementi degli Stili Visuali.
- Glb.VISCLR_FOREVALUE : colore del testo campi.
- Glb.VISCLR_FOREHEAD : colore del testo intestazione.
- Glb.VISCLR_FOREGROUP : colore del testo gruppi.
- Glb.VISCLR_BACKVALUE : colore di sfondo campi.
- Glb.VISCLR_BACKPANEL : colore di sfondo del pannello.
- Glb.VISCLR_BACKHEAD : colore di fondo dell'intestazione.
- Glb.VISCLR_BACKGROUP : colore di sfondo dei gruppi.
- Glb.VISCLR_BORDERS : colore del bordo.
- Glb.VISCLR_FOREHEADNN : colore testo dell'intestazione dei campi obbligatori.
- Glb.VISFNT_VALUE : font del testo campi.
- Glb.VISFNT_HEAD : font dell'intestazione.
- Glb.VISFNT_GROUP : font del testo gruppi.
- Glb.VISFNT_NOTNULL : font dell'intestazione dei campi obbligatori.
- Glb.VISCBOR_TOP : seleziona il bordo custom alto.
- Glb.VISCBOR_RIGHT : seleziona il bordo custom destro.
- Glb.VISCBOR_BOTTOM : seleziona il bordo custom basso.
- Glb.VISCBOR_LEFT : seleziona il bordo custom sinistro.
Ultima modifica: 23/03/2021 / Validità: da 7.1.3300