Consulta XBROWSE

59 views
Skip to first unread message

avazq...@gmail.com

unread,
Jan 14, 2025, 6:47:38 PMJan 14
to avazq...@gmail.com

Buenas.

Trabajo con Mysql (ADO) con Harbour y OOHG

Tengo una tabla con muchos campos.
Quisiera mostrar la información dos browses (XBROWSE) de tal manera que en cada uno de ellos muestre parte de la info de los registros.

Quiero ver la misma cantidad de registros en los dos browses que apuntan a oRSKIT:=adodb(‘select * from kitdigital order by fecha)

Cómo puedo hacer para que estén sincronizados?

No quiero que en el segundo se seleccione el mismo registro que están el browse 1 (filas 17 a 26 por ejemplo)

Lo que necesito es que si en el browse 1 el primer registro que se ve es el 17, en el segundo tb debe estar en la primera fila los datos del 17. Luego en cada uno estará seleccionado el mismo registro (19).

No sé si he conseguido explicarme

Gracias

Saludos.

Antonio.-

 

David Field

unread,
Jan 17, 2025, 4:24:58 PMJan 17
to ADO Harbour
Hola Antonio,

No lo he probado (nunca he tenido necesidad) pero creo que asignarías un bloque al OnChange del primer browse para que cuando cambie de renglón se ejecute y cambie el segundo browse.

Por ejemplo:

oBrow1:OnChange := {|| Actualizar_Brow(oBrow1, oBrw2) }

Procedure Actualizar_Brow(oBrow1, oBrow2)
// También puedes realizar cualquier otra cosa necesaria
   oBrow2:Value := oBrow1:Value
Return

avazq...@gmail.com

unread,
Jan 18, 2025, 3:53:30 AMJan 18
to ado-h...@googlegroups.com

Gracias David.

Por si a alguien le puede servir.

 

Lo he resuelto así:

 

En el browse 1

                            ON CHANGE {|| navegokit_1()} ;                     

En el browse 2

                            ON CHANGE {|| navegokit_2()} ;                     

 

*--------------------------*

procedure navegokit_1 ( )

*--------------------------*

oBrw2:value:=obrw1:value

obrw2:refresh()

 

*--------------------------*

procedure navegokit_2 ( )

*--------------------------*

oBrw1:value:=obrw2:value

obrw1:refresh()

 

Muchas gracias port us consejos.

Me parece útil esta opción para trabajar con tablas con muchos campos…

Saludos y gracias

Antonio

--
Has recibido este mensaje porque estás suscrito al grupo "ADO Harbour" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a ado-harbour...@googlegroups.com.
Para ver este debate, visita https://groups.google.com/d/msgid/ado-harbour/bc3eb846-5a8c-43b4-92be-2eeaf426762cn%40googlegroups.com.

David Field

unread,
Jan 20, 2025, 1:13:50 PMJan 20
to ADO Harbour
Antonio,

Ten cuidado con eso ya que puedes ciclar el programa.
Cada que cambia el valor de VALUE se ejecuta el ONCHANGE
Entonces, el usuario cambia de renglón, se ejectura el ONCHANGE el cual cambia de valor el segundo browse y se ejecuta el ONCHANGE que cambia el valor del primer browse que ejecuta el ONCHANGE... etc.

METHOD Value( uValue ) CLASS TGrid

   If HB_IsNumeric( uValue )
      If ::lNoneUnsels .AND. ( uValue < 1 .OR. uValue > ::ItemCount() )
         If ::FirstSelectedItem # 0
            ListView_ClearCursel( ::hWnd, 0 )
            ::DoChange()
         EndIf
      Else
         ListView_SetCursel( ::hWnd, uValue )
         ListView_EnsureVisible( ::hWnd, uValue )
      EndIf
   EndIf

   Return ::FirstSelectedItem

Saludos,
David FIeld

avazq...@gmail.com

unread,
Jan 20, 2025, 1:54:20 PMJan 20
to ado-h...@googlegroups.com

David.
Como siempre, muchas gracias.
Un abrazo.-

 

 

Antonio Vázquez

avazq...@gmail.com

avazq...@gmail.com

unread,
Jan 21, 2025, 5:10:29 PMJan 21
to ado-h...@googlegroups.com

David.
Como siempre, muchas gracias.
Un abrazo.-

 

 

Antonio Vázquez

avazq...@gmail.com

 


Enviado el: lunes, 20 de enero de 2025 19:14

Reply all
Reply to author
Forward
0 new messages