Advertisement
jsbsan

Graficas con javascript y gambas3

Apr 18th, 2014
1,904
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
GAMBAS 3.55 KB | None | 0 0
  1. ' Gambas class file
  2.  
  3. 'ejemplos sacados de https://github.com/nnnick/Chart.js
  4. 'leyenda: https://github.com/bebraw/Chart.js.legend
  5. '
  6. Private meses As String
  7. Private datos1 As String
  8. Private datos2 As String
  9. Private datos3 As String
  10. Private titulo1 As String
  11. Private titulo2 As String
  12. Private titulo3 As String
  13. Private hcon As New Connection
  14. Private res As Result
  15.  
  16. Public Sub _new()
  17.  
  18. End
  19.  
  20. Public Sub Form_Open()
  21.  
  22.   Dim archivo As String
  23.   Dim n As Integer
  24.   'preparo entorno de trabajo...
  25.  
  26.   definir()
  27.   '  If Exist(User.home & "/.ChartJS") Then
  28.   '  Else
  29.   Try Mkdir User.home & "/.ChartJS"
  30.   Try Mkdir User.home & "/.ChartJS/trabajo2"
  31.   'limpieza de archivos
  32.   ModuleComun.vaciarDirectorio(User.home & "/.ChartJS")
  33.   ModuleComun.vaciarDirectorio(User.home & "/.ChartJS/trabajo2")
  34.  
  35.   archivo = "Chart.js"
  36.   copiarArchivos(archivo)
  37.   archivo = "Chart.min.js"
  38.   copiarArchivos(archivo)
  39.   archivo = "legend.js"
  40.   copiarArchivos(archivo)
  41.  
  42.   archivo = "barra.html"
  43.   copiarArchivosAtrabajo(archivo)
  44.  
  45.   hcon.type = "sqlite3"
  46.   hcon.host = Application.Path & "/"
  47.   hcon.name = "datos"
  48.  
  49.   Try hcon.Open
  50.   res = hcon.Exec("Select * from tabla")
  51.   GridViewDatos.columns.count = res.Fields.Count
  52.  
  53.   For n = 0 To res.Fields.count - 1
  54.     GridViewDatos.Columns[n].text = res.Fields[n].name  
  55.   Next
  56.  
  57.   GridViewDatos.rows.count = res.count
  58.   crearGrafica()
  59.  
  60.   Me.center
  61.   '  Endif
  62.  
  63. End
  64.  
  65. Public Sub copiarArchivos(nombre As String)
  66.  
  67.   Try Copy nombre To User.home & "/.ChartJS" & "/" & nombre
  68.  
  69. End
  70.  
  71. Public Sub copiarArchivosAtrabajo(nombre As String)
  72.  
  73.   Try Copy nombre To User.home & "/.ChartJS" & "/trabajo2/" & nombre
  74.  
  75. End
  76.  
  77. Public Sub crearGrafica()
  78.  
  79.   Dim a As Integer
  80.   Dim fich As String
  81.  
  82.   titulo1 = TextBox1.Text
  83.   titulo2 = TextBox2.Text
  84.   titulo3 = TextBox3.Text  
  85.  
  86.   datos1 = GridViewDatos[0, 1].text
  87.   datos2 = GridViewDatos[0, 2].text
  88.   datos3 = GridViewDatos[0, 3].text
  89.  
  90.   For a = 1 To GridViewDatos.Rows.count - 1
  91.     datos1 &= "," & GridViewDatos[a, 1].text
  92.     datos2 &= "," & GridViewDatos[a, 2].text
  93.     datos3 &= "," & GridViewDatos[a, 3].text
  94.   Next
  95.  
  96.   meses = "\"" & GridViewDatos[0, 0].text & "\""
  97.   For a = 1 To GridViewDatos.Rows.count - 1
  98.     meses &= ",\"" & GridViewDatos[a, 0].text & "\""
  99.   Next
  100.  
  101.   fich = File.Load(User.home & "/.ChartJS" & "/trabajo2/barra.html")
  102.  
  103.   fich = Replace$(fich, "#meses", meses)
  104.   fich = Replace$(fich, "#datos1", datos1)
  105.   fich = Replace$(fich, "#titulo1", titulo1)
  106.   fich = Replace$(fich, "#datos2", datos2)
  107.   fich = Replace$(fich, "#titulo2", titulo2)
  108.   fich = Replace$(fich, "#datos3", datos3)
  109.   fich = Replace$(fich, "#titulo3", titulo3)
  110.  
  111.   File.Save(User.home & "/.ChartJS" & "/trabajo2/barra.html", fich)
  112.  
  113.   WebView1.Url = "file:///" & User.home & "/.ChartJS" & "/trabajo2/barra.html"
  114.  
  115. End
  116.  
  117. Public Sub definir()
  118.  
  119.   With GridViewDatos
  120.    
  121.     .header = 3
  122.     .rows.count = 6
  123.     .columns.count = 4
  124.     .Columns[0].title = "mes"
  125.     .Columns[1].title = "cantidad1"
  126.     .Columns[2].title = "cantidad2"
  127.     .Columns[3].title = "cantidad3"
  128.     .Columns[0].width = 60
  129.     .Columns[1].width = 60
  130.     .Columns[2].width = 60
  131.     .Columns[3].width = 60
  132.     .font.name = "Times"
  133.     .font.size = 9
  134.     .Background = 16777215
  135.     .Foreground = 0
  136.   End With
  137.  
  138. End
  139.  
  140. Public Sub GridViewDatos_Data(Row As Integer, Column As Integer)
  141.  
  142.   res.MoveTo(row)
  143.   GridViewDatos.Data.Text = res[GridViewDatos.Columns[column].Text]
  144.  
  145. End
  146.  
  147. Public Sub Form_Close()
  148.  
  149.   hcon.close
  150.  
  151. End
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement