Shell   27-12-2022, 15:34
#1
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
Archivos adjuntos
.gz
ControlDeEmpleados-0.0.1.tar.gz (Tamaño: 14.59 KB Descargas: 1)

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
Shell   27-12-2022, 17:04
#2
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
Última modificación: 27-12-2022, 17:36 por Shell.

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
Shordi   29-12-2022, 14:18
#3
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

No podemos regresar
Shell   29-12-2022, 14:56
#4
(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
Última modificación: 29-12-2022, 15:01 por Shell.

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
  
Usuarios navegando en este tema: 1 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.