|
Página 1 de 1
|
Autor |
Mensaje |
calcena
Ingeniero Programador
Registrado: Julio 2016
Mensajes: 272
Edad: 47
|
Graficas En Gambas
Buenas a todos, para poder hacer una representación gráfica de datos contenidos en una tabla, hay algún plugin o componente para cubrir esto?
Saludos y gracias.
|
#1 Martes, 17 Octobre 2017, 20:41 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Graficas En Gambas
Si. gb.chart es el componente.
También puedes usar librerÃas json y javascript y demás, claro.
Saludos.
=================== No podemos regresar
|
#2 Martes, 17 Octobre 2017, 21:00 |
|
|
calcena
Ingeniero Programador
Registrado: Julio 2016
Mensajes: 272
Edad: 47
|
Re: Graficas En Gambas
Si. gb.chart es el componente.
También puedes usar librerÃas json y javascript y demás, claro.
Saludos.
Javascript para formularios??? What!!
|
#3 Martes, 17 Octobre 2017, 21:07 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: Graficas En Gambas
Calceta:
Citar: Javascript para formularios??? What!!
Hice un ejemplo en mi blog:
http://jsbsan.blogspot.com.es/2014/...3-creacion.html
Y Shordi tambien subio otro ejemplo:
https://foro.gambas-es.org/viewtopic.php?f=5&p=20712#p20712
Y tambien en gambas3, tenemos el componente gb.chart, en la granja hay un ejemplo que te puedes descargar.
|
#4 Martes, 17 Octobre 2017, 21:29 |
|
|
calcena
Ingeniero Programador
Registrado: Julio 2016
Mensajes: 272
Edad: 47
|
Re: Graficas En Gambas
Buenas retomando este tema,
me surge otra duda, si esa gráfica la quiero incluir en un informe, cómo lo harÃais vosotros??
Es decir con un gb.report mejor, o mejor con un libreoffice.ods o con un gnumeric.
La idea es que el informe aparezca en formato PDF.
Saludos y gracias.
|
#5 Miercoles, 25 Julio 2018, 09:10 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Graficas En Gambas
=================== No podemos regresar
|
#6 Miercoles, 25 Julio 2018, 12:06 |
|
|
calcena
Ingeniero Programador
Registrado: Julio 2016
Mensajes: 272
Edad: 47
|
Re: Graficas En Gambas
of course!!! en vacaciones todo se ralentiza.
Como indicas en tu contestación extraigo que curráis con sistema linux y toda la infraestructura de soft basada en desarrollos gambas, puedo preguntar el volumen de tu empresa, a nivel por ejemplo de trabajadores y aplicaciones que tenéis en este sistema.
Muchas gracias por la ayuda.
|
#7 Miercoles, 25 Julio 2018, 15:30 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Graficas En Gambas
Como indicas en tu contestación extraigo que curráis con sistema linux y toda la infraestructura de soft basada en desarrollos gambas, puedo preguntar el volumen de tu empresa, a nivel por ejemplo de trabajadores y aplicaciones que tenéis en este sistema.
Efectivamente, todo Linux (y lo que me ha costado, que el arraigo del viejo windows en los usuarios era feroz). La empresa tiene seis sedes repartidas en cinco provincias con unos 50 trabajadores y unas 60 máquinas, además de 8 servidores propios para datos y control y un servidor dedicado en Internet.
Tenemos tres o cuatro desarrollos principales entre los que destacan Shinigami para control de los "clientes" y Gabinete para control de la asesorÃa jurÃdica. En la actualidad, a parte del mantenimiento de todo el tinglado (los desarrollos mencionados, pequeños proyectos, webs, Plataforma Moodle, Red de Videoconferencias, etc.) estoy trabajando en un proyecto de coordinación e integración de toda la informática de la empresa muy interesante para mÃ).
Te muestro, como ejemplo, la pantalla donde se puede consultar qué ordenadores de han conectado hoy, independientemente de en qué provincia o lugar, con indicación de usuario y hora de conexión.
En ésta imagen no hay ningún ordenador conectado en este momento (Si asà fuese el logo del ordenadorcito serÃa azul en lugar de gris), Si lo hubiese podrÃamos acceder a su escritorio (vnc+ssh) o abrir una consola (ssh), o establecer una alerta, etc. etc.
Es un desarrollo con el que creo que me jubilaré en la empresa pero que me encanta y, curiosamente, fué el primero que me planteé cuando entré en ella. Yo venÃa de administrar árboles de dominios de windows y echaba mucho de menos todo ese acceso que tenÃamos en mi empresa anterior (La Administración Regional). Lo que estoy haciendo no tiene comparación con los desarrollos para empresas de Microsoft, claro, pero me funciona y me resulta superinteresante de hacer... Sin contar el trabajo que me ahorra, que hace unos años cualquier error en una de las máquinas me costaba un desplazamiento de hasta 800 km... Ahora trabajo sin moverme de casa
=================== No podemos regresar
última edición por shordi el Jueves, 26 Julio 2018, 18:38; editado 3 veces
|
#8 Jueves, 26 Julio 2018, 18:31 |
|
|
Grandamakulo
Analista Programador
Registrado: Enero 2016
Mensajes: 311
Edad: 55 Ubicación: En un lugar de La Mancha de cuyo nombre me acuerdo perfectamente...
|
Re: Graficas En Gambas
En mi ansia viva por reinventar la pólvora, he pasado de «chart» —lo que creo que es un error, pero servidor es as× y he hecho un intento bastante chapucero, aunque funcional para uno de mis programas. El resultado es éste:
El código ni siquiera está completo, aunque confÃo en ir añadiéndole las propiedades y métodos poco a poco. Es éste —está sin comentar y tiene muchos valores directos que deberÃan ser parámetros a pasar—:
' gambas module file
Public TAMANO_LETRA_TITULO As Short = 11
Private ORI_X_REAL As Float
Private ORI_Y_REAL As Float
Private FIN_X_REAL As Float
Private FIN_Y_REAL As Float
Private ORI_X_DIBU As Short
Private ORI_Y_DIBU As Short
Private FIN_X_DIBU As Short
Private FIN_Y_DIBU As Short
Public ColorSeries As New Long[20]
Public COLOR_TITULO As Long = &H603020
Public COLOR_LINEA_PRAL As Long = &HF0D080
Public COLOR_LINEA_SECU As Long = &HFFF0A0
Public COLOR_LINEA_CERO As Long = &HFF8000
Public COLOR_FONDO As Long = &HFFFFC8
' Public COLOR_TITULO As Long = &H00FF00
' Public COLOR_LINEA_PRAL As Long = &H008000
' Public COLOR_LINEA_SECU As Long = &H004000
' Public COLOR_LINEA_CERO As Long = &H00A000
' Public COLOR_FONDO As Long = &H000000
Public Sub Dibujar(Titulo As String, TitX As String, TitY As String, jX As Float[], jY As Float[], Lienzo As Object, Optional Leyenda As String[])
Dim NumSeries As Byte
Dim LonSeries As Short
Dim i As Byte
Dim j As Short
Dim k As Float
Dim MinX As Float = jX[0, 0]
Dim MaxX As Float = jX[0, 0]
Dim MinY As Float = jY[0, 0]
Dim MaxY As Float = jY[0, 0]
Dim Ints As New Float[4]
Dim TextoLeyenda As String
ColorSeries[0] = &H000000
ColorSeries[1] = &H0000FF
ColorSeries[2] = &H00FF00
ColorSeries[3] = &H00FFFF
ColorSeries[4] = &HFF0000
ColorSeries[5] = &HFF00FF
ColorSeries[6] = &HFFFF00
ColorSeries[7] = &0000080
ColorSeries[8] = &H008000
ColorSeries[9] = &H008080
ColorSeries[10] = &H800000
NumSeries = jX.Bounds[0]
LonSeries = jX.Bounds[1]
'Bordes del dibujo
ORI_X_DIBU = TAMANO_LETRA_TITULO * (Len(TitY) + 6) * 2 / 3
ORI_Y_DIBU = Lienzo.H - TAMANO_LETRA_TITULO * 4
FIN_X_DIBU = Lienzo.W - TAMANO_LETRA_TITULO
FIN_Y_DIBU = TAMANO_LETRA_TITULO * 2
'Extremos reales
For i = 0 To NumSeries - 1
For j = 0 To LonSeries - 1
If jX[i, j] <MinX> MaxX Then MaxX = jX[i, j]
If jY[i, j] < MinY And jY[i, j] <15> MaxY Then MaxY = jY[i, j]
Next
Next
' For j = 0 To LonSeries - 1
' Debug jX[0, j], jY[0, j]
' Next
'TODO: Rehacer los márgenes para que sean aproximados
ORI_X_REAL = MinX
FIN_X_REAL = MaxX
ORI_Y_REAL = MinY
FIN_Y_REAL = MaxY
'' Dibujo
'TODO: Separar la parte de dibujo del resto
Draw.Begin(Lienzo)
' TÃtulos
Draw.Foreground = COLOR_TITULO
Draw.Font.Name = "Liberation Mono"
Draw.Font.Size = TAMANO_LETRA_TITULO
Draw.Text(Titulo, Lienzo.W / 2 - Len(Titulo) / 2 * TAMANO_LETRA_TITULO * 2 / 3, FIN_Y_DIBU - 2 * TAMANO_LETRA_TITULO)
Draw.Text(TitX, (FIN_X_DIBU - ORI_X_DIBU) / 2 + ORI_X_DIBU - Len(TitX) / 2 * TAMANO_LETRA_TITULO * 2 / 3, ORI_Y_DIBU + TAMANO_LETRA_TITULO)
Draw.Text(TitY, 0, (FIN_Y_DIBU - ORI_Y_DIBU) / 2 + ORI_Y_DIBU - Len(TitY) / 2 * TAMANO_LETRA_TITULO)
' Etiquetas ejes
Ints = LineasAux(MaxX, MinX)
Draw.Foreground = COLOR_TITULO
For k = Ints[1] To MaxX Step Ints[0]
Draw.Text(Format(k, "0"), KKX(k) - TAMANO_LETRA_TITULO * 2 / 3 * Len(Format(k, "0")) / 2, ORI_Y_DIBU)
Next
Ints = LineasAux(MaxY, MinY)
Draw.Foreground = COLOR_TITULO
For k = Ints[1] To MaxY Step Ints[0]
Draw.Text(Format(k, "0.0"), ORI_X_DIBU - Len(Format(k, "0.0")) * TAMANO_LETRA_TITULO * 0.8, KKY(k) - TAMANO_LETRA_TITULO / 2,,, 3)
Next
' Leyenda
For i = 0 To Leyenda.Max
TextoLeyenda = TextoLeyenda & "<font>" & Leyenda[i] & " </font>"
Next
'Debug TextoLeyenda
Draw.RichText(TextoLeyenda, 0, ORI_Y_DIBU + 2 * TAMANO_LETRA_TITULO, Lienzo.Width)
' LÃneas de división
Ints = LineasAux(MaxX, MinX)
Draw.Foreground = COLOR_LINEA_SECU
For k = Ints[3] To MaxX Step Ints[2]
Draw.Line(KKX(k), ORI_Y_DIBU, KKX(k), FIN_Y_DIBU)
Next
Draw.Foreground = COLOR_LINEA_PRAL
For k = Ints[1] To MaxX Step Ints[0]
Draw.Line(KKX(k), ORI_Y_DIBU, KKX(k), FIN_Y_DIBU)
Next
Ints = LineasAux(MaxY, MinY)
Draw.Foreground = COLOR_LINEA_SECU
For k = Ints[3] To MaxY Step Ints[2]
Draw.Line(ORI_X_DIBU, KKY(k), FIN_X_DIBU, KKY(k))
Next
Draw.Foreground = COLOR_LINEA_PRAL
For k = Ints[1] To MaxY Step Ints[0]
Draw.Line(ORI_X_DIBU, KKY(k), FIN_X_DIBU, KKY(k))
Next
Draw.Foreground = COLOR_LINEA_PRAL
Draw.Line(ORI_X_DIBU, ORI_Y_DIBU, FIN_X_DIBU, ORI_Y_DIBU)
Draw.Line(ORI_X_DIBU, ORI_Y_DIBU, ORI_X_DIBU, FIN_Y_DIBU)
Draw.Foreground = COLOR_LINEA_CERO
Draw.Line(ORI_X_DIBU, KKY(0), FIN_X_DIBU, KKY(0))
' Gráficas
Draw.LineWidth = 2
For i = 0 To NumSeries - 1
Draw.Foreground = ColorSeries[i]
For j = 1 To LonSeries - 1
If jY[i, j] <> -15 And jY[i, j - 1] <> -15 Then
'Draw.Point(KKX(jX[i, j]), KKY(jY[i, j]))
Draw.Line(KKX(jX[i, j - 1]), KKY(jY[i, j - 1]), KKX(jX[i, j]), KKY(jY[i, j]))
Endif
Next
Next
Draw.End
End
Private Function KKX(jX As Float) As Short
Return (jX - ORI_X_REAL) / (FIN_X_REAL - ORI_X_REAL) * (FIN_X_DIBU - ORI_X_DIBU) + ORI_X_DIBU
End
Private Function KKY(jY As Float) As Short
Return (jY - ORI_Y_REAL) / (FIN_Y_REAL - ORI_Y_REAL) * (FIN_Y_DIBU - ORI_Y_DIBU) + ORI_Y_DIBU
End
Public Sub ContG_Draw()
End
Private Function LineasAux(Xmax As Float, XMin As Float) As Float[]
Dim A As Float
Dim B As Float
Dim C As Integer
Dim D As Float
Dim F As Float
Dim Res As New Float[4]
Dim Pral As Float
A = Xmax - XMin
If A <0>= 5 And F <10>= 5 And F / 0.5 <10>= 5 And F / 0.2 <10>= 20 And F / 0.5 <50>= 20 And F / 0.2 <50>= 20 And F / 0.1 <= 50 Then
Pral = 0.1
Else
Pral = 0.05
Endif
Endif
Endif
Res[2] = Pral * 10 ^ C
Res[3] = Int(Xmin / Res[2] + 1) * Res[2]
'Debug ("División principal=" & Str(Res[0]) & gb.lf & "Origen principal=" & Str(Res[1]) & gb.lf & "División secundaria=" & Str(Res[2]) & gb.lf & "Origen secundario=" & Str(Res[3]))
Return Res
End
|
#9 Martes, 31 Julio 2018, 20:48 |
|
|
tercoIDE
Analista Programador
Registrado: Noviembre 2013
Mensajes: 713
Edad: 54
|
Re: Graficas En Gambas
excelente!
|
#10 Martes, 28 Agosto 2018, 12:58 |
|
|
|
Temas parecidos
Temas parecidos
|
Página 1 de 1
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado Usuarios registrados conectados: Ninguno
|
No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas No puede adjuntar archivos Puede descargar archivos No puede publicar eventos en el calendario
|
|
|
|
|