Cita:tengo que volver a crear la View por que es una agrupación que se basa cada vez en la fecha y en los cambios, pero sobre todo en la fecha
Sigo sin ver el problema: Si tienes que agrupar según el mes que estás o el que viene sólo tienes que utilizar la función date de Sqlite, con los modificadores que Sqlite ofrece.
Por ejemplo con un campo llamado 'miFecha' en una tabla llamada 'miTabla':
[code]
Eso te filtra todos los registros de este mes y de el que viene. Una consulta como esta o similar almacenada como View no necesita ser rehecha con cada cambio de mes.
Si aún así te aferras a tu intención inicial, la manera de programar "hilos" en Gambas es la clase Task.
Copio de las Ayudas:
Task (gb)
DESDE 3.3
Esta clase virtual tiene como objetivo ser la clase principal de todas las tareas en segundo plano.
Esta clase no es instanciable.
Propiedades
Métodos Eventos
Manejar Valor en ejecución Kill Stop Wait Error Kill Read
¿Como funciona?
Para ejecutar una tarea en segundo plano:
Debe crear una clase que herede Task.
Esa clase debe tener un método "Main" público que no tenga argumentos.
Debe instanciar la clase para iniciar una nueva tarea.
Luego, el método Main se ejecutará automáticamente en segundo plano en la siguiente llamada del bucle de eventos.
El método Main se ejecuta mediante una bifurcación. Puede acceder a todas las demás partes del programa, excepto que el proceso principal no verá ningún cambio realizado por la tarea.
A muchos componentes no les gustará que se bifurquen. Especialmente los de GUI. Así que ten cuidado.
Enviar argumentos a la tarea
Para enviar argumentos a la tarea, simplemente defina algunas variables públicas en ella y rellénelas antes de que comience la tarea.
Recibir un resultado de la tarea
El método Main puede devolver cualquier valor que se enviará al proceso principal a través de un proceso interno de serialización / deserialización.
El valor puede ser cualquier valor que pueda utilizar con la instrucción WRITE.
El proceso padre solo tiene que leer la propiedad Value para obtener ese valor de retorno.
Salidas estándar de la tarea
La salida estándar de la tarea (instrucción PRINT) y la salida de error (instrucción ERROR) se redirigen automáticamente, y el proceso principal las obtendrá a través de los eventos de lectura y error.
Errores de tareas
Si sucede algo malo durante la ejecución de la tarea, el proceso padre puede aprenderlo leyendo la propiedad Value, porque se generará un evento de error. Con suerte, el mensaje de error explicará el problema.
Prioridad de la tarea
Para reducir la prioridad de una tarea, use la propiedad Application.Priority.
Yo la he utilizado sólo una vez en un programa de mensajería entre escritorios que hice para el curro. Cada comprobación de si había mensajes detenía el programa unos tres segundos, lo que era un coñazo si tú etabas escribiendo un mensaje. Desviando esa tarea a un "hilo" (Gambas no soporta programación por hilos real), ni te enterabas de que se estaba haciendo la comprobación y todo fluía muy bien.
Requiere cierto nivel de prueba y error... pero no es difícil de usar.
Saludos.