Estoy haciendo un sistema de notificaciones mediante SystemTrayIcon, lo que pasa es que tengo un cierto sistema de usuarios dentro de la app y cada usuario tiene sus propios eventos. Lo que hago es comprobar en un dock invisible en un formulario con un timer y funciona, pero claro ¿Como puedo yo con la instrucción cargar lista, comprobar que se ha insertado otra fila en la base de datos, para notificar al usuario que tiene un nuevo evento? No se si hay alguna instrucción específica en Velneo, pero no la he encontrado, solo el “¿Ha cambiado la ficha?” pero no creo que sea lo que estoy buscando.
Si querés comprobar que una lista (rejilla, informe, multivista) en pantalla ha cambiado tenes la señal de cnn de evento “lista cambiada”.
O la otra opción: Ejecutas un cargar lista, obtenes el sysListSize y lo guardas en una variable numérica. Luego solo resta comparar resultados (nuevo vs variable).
Una idea es agregar una columna booleana donde le guardas el valor inicial de 1 cada vez que se agrega una fila en la base de datos. Esto se puede hacer usando “condición inicial”.
Luego el cargar lista que entiendo que se dispara con el timer, puede listar solamente los registros que tienen 1 en esta columna boleana y si encuentra uno o más, procede a notificar al usuario. En este mismo proceso puede cambiar el valor booleano a cero para no repetir una misma notificación.
Espero pueda ser de utilidad.
Saludos.
Gracias a todos por responder, al final he optado por una solución parecida a la de aguevara.
Lo que he hecho es en un formulario que tenía en un dock oculto, hacer un manejador dentro de un timer, que se ejecuta cada 10 segundos, en el que cargo la lista de mi tabla intermedia Usuarios y Eventos (relación muchos a muchos) en este caso es EVENTOS_USUARIO (vengo de mysql y no sé si aquí existen las relaciones muchos a muchos). Agregúe un campo VISTO de tipo boleano en esa tabla, a continuación en el Manejador, cargo la lista por esa tabla con el id de usuario y los vistos, y el syslistsize me devuelve los que no se han visto y los notifico, a continuación recorro esa lista y modifico los vistos a 0 y así creo que funcionaría. Eso es lo que he hecho, no sé si puedo tener algún problema a futuro o hay algo que se me escapa…
Pero muchas gracias a los 3 por contestar. Muy agradecido, a veces me tomo este foro como si fuera stackoverflow