Comunidad Gambas-es
Uso de Gridview y Columnview en Diario de Caja - Versión para impresión

+- Comunidad Gambas-es (https://gambas-es.org)
+-- Foro: Gambas (https://gambas-es.org/forum-3.html)
+--- Foro: Aplicaciones/Fragmentos de Código (https://gambas-es.org/forum-8.html)
+--- Tema: Uso de Gridview y Columnview en Diario de Caja (/thread-1555.html)



Uso de Gridview y Columnview en Diario de Caja - Alberto59 - 30-11-2023

Buenas,os mando programilla de un diario de caja,udando GRIDVIEW Y COLUMNVIEW.

Con ello,quiero que veas como funciona ambos.

Os adjunto el codigo fuente.

Saludos.


RE: Uso de Gridview y Columnview en Diario de Caja - Shell - 30-11-2023

Alberto actualmente este código te funcionará a ti, pero no al resto cuando quieran guardar la copia de la base de datos.

Es mejor usar la clase User.

Prueba a escribirla en el editor, después de escribir el punto, verás distintas propiedades.

La imagen de caja, sería mejor cambiarla por caja.jpg.
Ademas de cambiarla tienes que asegurarte de buscar jpg (su nombre actual) en el código mediante "Reemplazar" en el menú "Herramientas".
Ojo, cuando remplaces los nombres, CAJA y caja.jpg son muy similares, sobre todo si usas para CAJA, caja.

Y en cuanto al nombre de la base de datos, con más tranquilidad, añádele una extensión, .db, lo que te guste más.
Para cambiar el nombre en el código puedes usar esto:

[Imagen: ljXMrAz.png]

En Reemplazar añades por ejemplo CAJA.DB

Saludos


RE: Uso de Gridview y Columnview en Diario de Caja - Shell - 01-12-2023

He modificado el modulo ModSQL.
El nombre de la base la cambié a caja.db en el directorio de la aplicación

Código:
Public Sub ConectarBase() As Boolean
  If ConnX.Opened Then Return True
  '
  With ConnX
    .Type = "sqlite3"
    '.host = Application.Path '<--- Ruta a la base de datos Sqlite
    .Host = User.Home &/ "." & Application.Name '<--- Ruta a la base de datos Sqlite
    .name = "caja.db"
    .Open()
    '
    .Exec("PRAGMA foreign_keys = 1;")
    '
  End With
  '
  Return True
  '
  Catch
   
    Return False
End

Y en el FMain:

Tal como la aplicación se abre ahora comprueba si existe el directorio de la base de datos, que no existe, se crea y se copia a este la base que se encuentra en el directorio de la aplicación.

Código:
......
Dim linea As Integer 'Contador de filas

  'Comprobar existencia de la base de datos
  'Directorio
  'Copiado de la base a este
  If Not Exist(User.Home &/ "." & Application.Name) Then
    'Directorio oculto en la home del usuario
    Mkdir User.Home &/ "." & Application.Name
    Copy Application.Path &/ "caja.db" To User.Home &/ "." & Application.Name &/ "caja.db"
  Endif
........

En el botón de copia de seguridad de la base de datos se puede hacer:

Código:
'NOTE: Comentar a Alberto

Public Sub BTopciones_Click()

  'Comprobar primero si existe el directorio donde se va a copiar la base
  If Exist(User.Home &/ "BDCAJAseguridad") Then
    Copy User.Home &/ "." & Application.Name &/ "caja.db" To User.Home &/ "BDCAJAseguridad/" & "caja.db"
  Else
    Message.Info("NO EXISTE DIRECTORIO,SE CREA DIRECTORIO Y SE COPIA BASE....")
    Mkdir User.Home &/ "BDCAJAseguridad"    
    Copy User.Home &/ "." & Application.Name &/ "caja.db" To User.Home &/ "BDCAJAseguridad/" & "caja.db"
  Endif

End

La base de dato ahora no es necesaria la que tiene el directorio de la aplicación.

Se crea en un directorio oculto con el nombre de la aplicación
y ademas tiene su directorio de copia de seguridad visible en el directorio
padre del usuario.

Ya me comentas que te parece.

Saludos


RE: Uso de Gridview y Columnview en Diario de Caja - Shell - 01-12-2023

Curioso que el comando Copy de Gambas de problemas si el archivo ya existe.
Si el archivo caja.db existe en el directorio de copia de seguridad da error y no deja crear una nueva copia.

Por ahora no veo más remedio que usar la orden shell y el comando cp de bash.

Preguntaré en otro post.

Saludos