Comunidad Gambas-es
Para retomar las prácticas de bases de datos con sqlite3 - Versión para impresión

+- Comunidad Gambas-es (https://gambas-es.org)
+-- Foro: Gambas (https://gambas-es.org/forum-3.html)
+--- Foro: Bases de Datos (https://gambas-es.org/forum-6.html)
+--- Tema: Para retomar las prácticas de bases de datos con sqlite3 (/thread-1146.html)



Para retomar las prácticas de bases de datos con sqlite3 - Shell - 27-12-2022

Buenas!.

Como es algo que se necesita para muchas aplicaciones serias, necesito no olvidar estos temas.
Ayer estuve retomando un poco esto, con una aplicación que gestionaba un refugio de animales,
sobre todo la creación de consultas y ejecución dando un resultado en un Grdiview.

Cambié la base de datos y la convertí para llevar la administración de empleados.
Me encontré dos problemas. Fechas para los nacimientos y salarios en euros.

Para las fechas lo solucioné. Usé un valuebox con el tipo date. Me resulta un poco extraño cuando inserto las fechas
en el control. Teniendo que insertar la barra cuando lo hago manualmente. Es que me gusta hacerlo manualmente,
se supone que es más rápido.

Ahora os cuento el tema de la moneda, el euro. Había pensando en otro valuebox con el tipo currency, pero me dio
más problemas que beneficio. Si, se ve bien en el valuebox pero a la hora de convertirlo es algo complicado.
En parte parece una cadena, hay espacios y el símbolo de la moneda.
Ejemplo: " 100,50€ "

Y Sqlite soporta Float, pero no Currency. Usando una caja de texto me quedó así, no he usado alineación en todos los controles.

[Imagen: ZHl5QfT.png]

Vale, puedo eliminar el borde. ¿ Vosotros no usáis un valuebox para esto ?.


Cuando obtenía el valor del registro y quería mostrarlo (que era un tipo float), lo convertía a texto y concatenaba el carácter del euro.

Me he encontrado un problema en la salida de consultas. Que no se muestra como moneda, si con su coma. Uso el evento Data
y no veo nunca que llegué a la columna donde se encuentra el campo salario. Aunque se muestra.

Voy a subiros el ejemplo para ver que me podéis decir. Ojo, que crea una base de datos en el directorio Home.
A ver si vosotros veis mejor el problema.

Todo lo que sea consejos y ayudas para aprender se agradece.

Saludos


RE: Para retomar las prácticas de bases de datos con sqlite3 - Shell - 27-12-2022

Esta es la salida de la consulta. En este caso un solo registro.

[Imagen: x7cKio0.png]

Es cosa del formulario Consulta. Saber cuando llega al campo salario y concatenar el valor con "€"

Vaya tela. Como el formulario no abarcaba el campo salario  (la visión del GridView)  no se mostraba en el evento Data!.
El problema radicaba en el evento Activate del formulario consulta. Al mover la barra de desplazamiento del Gridview fueron mostrándose los otros campos
en la sentencia de test con Print.

Código:
Public Sub grdConsulta_Data(Row As Integer, Column As Integer)

  $rData.MoveTo(row)
 
  Print grdConsulta.Columns[column].Text

  grdConsulta.Data.Text = Str($rData[grdConsulta.Columns[Column].text])
  grdConsulta.Data.Background = Color.RGB((Row Mod 31) * 8, (Row Mod 17) * 15, (Row Mod 13) * 21)
  grdConsulta.Data.Foreground = Color.White

End

Ejemplo:

[Imagen: cxd8JL7.png]
Toca expandir el tamaño y concatenar.

Falta de costumbre del Evento Data y lo que crea Activate.

Saludos


RE: Para retomar las prácticas de bases de datos con sqlite3 - Shordi - 29-12-2022

Cambia las líneas 46 y 110 a
[code]

A petición del compañero Alessandri, estoy trabajando en un control derivado de ValueBox que tiene que ver con este tema. En unos días (Cuando la familia me deje acceso a mi ordenador, o sea el año que viene) lo presentaremos en sociedad. Lo mismo te interesa.

Saludos


RE: Para retomar las prácticas de bases de datos con sqlite3 - Shell - 29-12-2022

(29-12-2022, 14:18)Shordi escribió: En unos días (Cuando la familia me deje acceso a mi ordenador, o sea el año que viene)

Que bueno, te quitan el ordenador. Big Grin

[Imagen: nNUQ2na.jpg]

Ah, es formato moneda, faltaba el símbolo "$".

Código:
 grdTabla[nfilas, 5].Text = Format(HResul!salario, "$###,##0.##")

Saludos