Page 1 of 1

desplazar en Xbrowse

PostPosted: Mon Jul 11, 2022 1:33 pm
by kpidata
Estimados Amigos, necesito su ayuda, tengo una ventana de datos que se carga con una consulta de un archivo MySql, La ventana muestra cinco líneas de datos, en un momento, pero si hay mas líneas de información, el usuario debe hacer movimientos con las flechas cursoras o con el mousse, el desplazamiento necesario para seguir observando mas líneas de información, mi pregunta es, se puede hacer alguna funcion o la clase xbrowse, tiene una opcion para que se vaya desplazando de forma automatica linea a linea por un cierto tiempo y retornar al principio y volver al inicio y empezar de nuevo, la secuencia.

Re: desplazar en Xbrowse

PostPosted: Mon Jul 11, 2022 3:36 pm
by Armando
kpidata:

La información que proporcionas es escasa, asumo que algún
otro usuario agrega más líneas y esas son la que no se ven.

Si es el caso, te recomiendo las siguientes dos líneas de código:

oRs:Requery()
oBrw:Refresh()

Espero sirvan de algo

Saludos

Re: desplazar en Xbrowse

PostPosted: Mon Jul 11, 2022 3:41 pm
by VitalJavier
Mi idea seria poner un Timer para que cada 2 segundos
salta de renglón

Así le entendí.

Re: desplazar en Xbrowse

PostPosted: Mon Jul 11, 2022 4:20 pm
by kpidata
Amigos, el tema es que genero un browse con servicios de taller a realizar, estos datos los digita una persona en una oficina y en el taller deben ir viendo esta informacion,
el tema es que en la pantalla solo se visualizan 5 lineas de los datos a procesar, para ver mas... el tecnico debe ir al computador y mover el mousse o las flechas cursoras para ir viendo las lineas que estan mas abajo del xbrowse... pero si el tecnico se olvida.. no ve el detalle que esta mas abajo, por lo que necesito saber como es que logro hacer que cada cierto tiempo, el programa con el xbrowse abierto, pase del foco de la linea 1 a la linea 2, y despues a la linea 3 y asi hasta la linea... N, para despues, volver al inicio y empezar de nuevo... aun cuando se agregan nuevas lineas, a lo menos que me muestre el contenido completo de la consulta, y asi.. si son mas de 5 filas, el sistema solo pase a la 6, 7, 9, etc.. y al rato volver a la 1 y asi volver a comenzar...



Re: desplazar en Xbrowse

PostPosted: Mon Jul 11, 2022 4:35 pm
by Armando
kpidata:

Entonces, creo, es una combinación de la respuesta de Javier (Saludos Javier) y la mía

Hacer un timer que cada n segundos haga el ReQuery() y el Refresh()

Saludos

Re: desplazar en Xbrowse

PostPosted: Mon Jul 11, 2022 4:47 pm
by kpidata
Estimados, trato de entender lo que me dicen, pero me pierdo, mi conocimiento de Xbrowse es limitado, en pocas palabras, tengo estas 3 dudas en particular.

a) Debo dejar el foco al ingresar a la consulta.
b) Ya en la primera linea... como hago para que baje solo a la segunda.
c) ya en el final, como hago para que suba a la primera linea... del browse... y empezar de nuevo

Re: desplazar en Xbrowse

PostPosted: Mon Jul 11, 2022 6:44 pm
by acuellar
Kpidata

Utilizando un Timer así te podes mover
Code: Select all  Expand view

oBrw:GoDown(nLine) //Abajo
oBrw:GoUp(nLine) //Arriba
oBrw:GoBottom() //Final
oBrw:GoTop() //Inicio

 

Re: desplazar en Xbrowse

PostPosted: Mon Jul 11, 2022 9:47 pm
by cmsoft
Esto es con DBF pero es casi identico a Mysql
Code: Select all  Expand view

#include "FiveWin.ch"
#include "xbrowse.ch"
FUNCTION Main()

   local oChild, oBrw, oTimer
   USE CUSTOMER NEW
   DEFINE WINDOW oChild TITLE "Mueve Solo"

   @ 0,0 XBROWSE oBrw OF oChild AUTOCOLS ALIAS "CUSTOMER" LINES CELL 105,80 pixel

   WITH OBJECT oBrw
      :CreateFromCode()
      :bPastEof := {|| oBrw:GoTop()} //Esto hace que cuando intentes pasar el ultimo registro, vuelva solo al primero
   END
   oChild:oClient := oBrw
   DEFINE TIMER oTimer INTERVAL 1000 ACTION Mover(oBrw) OF oChild // Un segundo de demora
   ACTIVATE WINDOW oChild ON INIT (oBrw:SetFocus(), oTimer:Activate())

   
RETURN NIL

STATIC FUNCTION Mover(oBrw)
oBrw:GoDown()
oBrw:Refresh()
RETURN nil
 

Re: desplazar en Xbrowse

PostPosted: Tue Jul 12, 2022 4:40 pm
by kpidata
Estimados... amigos... fueron de mucha ayuda... el ultimo comentario me ayudo al final de resolver el problema... quedo super bien