1. cercavo una soluzione di elevata qualità e sfruttabile in poco tempo
2. qualche tempo fa le routine di Google presentavano inefficenze (di gioventu' ) ora sistemate. E' possibile creare un grafico con webview sia costruendo una url apposita (soluzione che
. Il codice java è molto leggibile ed ora è possibile settare tantissime cose tra l'altro il minimo e massimo di una ordinata (cosa prima impossibile).
a) con il costruttore Google (link in basso) creo un template del grafico che voglio proporre su g3
b) importo il codice in g3 creando una routine che scriva effettivamente il codice java cosi' come creato dal template
Public Sub Massa()
Dim myconn As New Connection
Dim myset As Result
Dim hfile As Stream
myconn.Type = "sqlite3"
myconn.Host = Application.Path
myconn.Name = "myZone.db"
myconn.Open
myset = myconn.Exec("SELECT * FROM tbPeso ORDER BY GMA")
If myset.Count > 0 Then
hFile = Open Application.Path & "/massa.html" For Create
Print #hFile, "<!--"
Print #hFile, "You are free to copy and use this sample in accordance with the terms of the"
Print #hFile, "Apache license (http://www.apache.org/licenses/LICENSE-2.0.html)"
Print #hFile, "-->"
Print #hFile, ""
Print #hFile, "<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>"
Print #hFile, "<html xmlns='http://www.w3.org/1999/xhtml'>"
Print #hFile, "<head>"
Print #hFile, "<meta http-equiv='content-type' content='text/html; charset=utf-8'/>"
Print #hFile, "<title>"
Print #hFile, "Google Visualization API Sample"
Print #hFile, "</title>"
Print #hFile, "<script type='text/javascript' src='http://www.google.com/jsapi'></script>"
Print #hFile, "<script type='text/javascript'>"
Print #hFile, "google.load('visualization', '1', {packages: ['corechart']});"
Print #hFile, "</script>"
Print #hFile, "<script type='text/javascript'>"
Print #hFile, "function drawVisualization() {"
Print #hFile, "// Create and populate the data table."
Print #hFile, "var data = new google.visualization.DataTable();"
Print #hFile, "data.addColumn('string', 'x');"
Print #hFile, "data.addColumn('number', 'Massa Grassa');"
Print #hFile, "data.addColumn('number', 'Massa Magra');"
For Each myset
Print #hFile, "data.addRow(['" & Format$(myset!GMA, "dd/mm/yy") & "', " & myset!GRASSA & "," & myset!MAGRA & "]);"
Next
Print #hFile, "// Create and draw the visualization."
Print #hFile, "new google.visualization.AreaChart(document.getElementById('visualization'))."
Print #hFile, "draw(data,{curveType:'function',width: 300, height: 200,vAxis: {maxValue: 10},title: 'Storico massa grassa/magra'});"
Print #hFile, "}"
Print #hFile, "google.setOnLoadCallback(drawVisualization);"
Print #hFile, "</script>"
Print #hFile, "</head>"
Print #hFile, "<body style='font-family: Arial;border: 0 none;'>"
Print #hFile, "<div id='visualization' style='width: 300px; height: 200px;'></div>"
Print #hFile, "</body>"
Print #hFile, "</html>"
Else
Message("Dati massa grassa/magra non disponibili.")
hFile = Open Application.Path & "/massa.html" For Create
Print #hFile, "<html>"
Print #hFile, "<head>"
Print #hFile, "<meta http-equiv='content-type' content='text/html; charset=ISO-8859-1'>"
Print #hFile, "</head>"
Print #hFile, "<body>"
Print #hFile, "<small style='font-weight: bold;'><small>Dati massa grassa/magra non disponibili.</small></small>"
Print #hFile, "</body>"
Print #hFile, "</html>"
Endif
End
I grafici java di Google presentano delle caratteristiche avanzate (ajax), in qualunque punto si clicca possono essere visualizzati i dati del grafico.