Relacionar búsqueda ente dos xBrowse (SOLUCIONADO)

Relacionar búsqueda ente dos xBrowse (SOLUCIONADO)

Postby El Loco » Wed Mar 23, 2022 5:01 pm

Buenas buenas querida gente.
Estoy atascado en un punto y la verdad no sé como seguir.
Como puedo relacionar una busqueda entre dos xBrowse?
Me explico un poco más: teniendo xBrowse oBrw_1 y oBrw_2 donde:

oBrw_1 es una base con datos especificos de las personas
oBrow_2 otra base con los demás datos de la persona.

Como relaciono que cuando avanzo por el oBrow_1 me vaya mostrando en el oBrw_2 los demás datos?
Estuve buscando en este bendito foro, porque estoy seguro que en algún momento se trato este tema, pero no encontré nada.
Desde ya muchísimas gracias.


PD. Tengan en cuenta que la versión que manejo de mi amado FiveWin es muy vieja, estimo que a mediados del 2013 o 2014
Last edited by El Loco on Tue Mar 29, 2022 7:41 pm, edited 1 time in total.
FWH 32/64 14.04
Harbour 3.2.0 (r1306211258)
PellesC
El Loco
 
Posts: 328
Joined: Fri May 19, 2006 4:08 pm
Location: Buenos Aires - Argentina

Re: Relacionar búsqueda ente dos xBrowse

Postby hmpaquito » Wed Mar 23, 2022 5:11 pm

Hola,

En el browse oBrw1 utiliza el evento ::bChange para detectar los movimientos verticales. Cuando se produzca movimiento vertical entonces actualiza el oBrw2

Code: Select all  Expand view  RUN
oBrw1:bChange:= {|oBrw, lRow| If(lRow, Aqui_Actualizar_oBrw2, NIL) }


Salu2
hmpaquito
 
Posts: 1482
Joined: Thu Oct 30, 2008 2:37 pm

Re: Relacionar búsqueda ente dos xBrowse

Postby El Loco » Wed Mar 23, 2022 5:36 pm

hmpaquito wrote:Hola,

En el browse oBrw1 utiliza el evento ::bChange para detectar los movimientos verticales. Cuando se produzca movimiento vertical entonces actualiza el oBrw2

Code: Select all  Expand view  RUN
oBrw1:bChange:= {|oBrw, lRow| If(lRow, Aqui_Actualizar_oBrw2, NIL) }


Salu2


Desde ya muchísimas gracias por tu pronta respuesta.
Ahora lo voy a probar, pero creo que ya lo había hecho.
Gracias. Un abrazo
FWH 32/64 14.04
Harbour 3.2.0 (r1306211258)
PellesC
El Loco
 
Posts: 328
Joined: Fri May 19, 2006 4:08 pm
Location: Buenos Aires - Argentina

Re: Relacionar búsqueda ente dos xBrowse

Postby El Loco » Wed Mar 23, 2022 5:38 pm

Una presunta más.... cual es la data para saber el contenido de la primera columna del xBrowse del oBrw_1
Gracias
FWH 32/64 14.04
Harbour 3.2.0 (r1306211258)
PellesC
El Loco
 
Posts: 328
Joined: Fri May 19, 2006 4:08 pm
Location: Buenos Aires - Argentina

Re: Relacionar búsqueda ente dos xBrowse

Postby El Loco » Thu Mar 24, 2022 12:35 am

El Loco wrote:
hmpaquito wrote:Hola,

En el browse oBrw1 utiliza el evento ::bChange para detectar los movimientos verticales. Cuando se produzca movimiento vertical entonces actualiza el oBrw2

Code: Select all  Expand view  RUN
oBrw1:bChange:= {|oBrw, lRow| If(lRow, Aqui_Actualizar_oBrw2, NIL) }


Salu2



Paquito no funciono .... pero seguro algo estoy haciendo mal o me estoy olvidando de poner o sacar algo.
Gracias igualmente... seguiré intentando
Abrazo
FWH 32/64 14.04
Harbour 3.2.0 (r1306211258)
PellesC
El Loco
 
Posts: 328
Joined: Fri May 19, 2006 4:08 pm
Location: Buenos Aires - Argentina

Re: Relacionar búsqueda ente dos xBrowse

Postby Manuel Aranda » Thu Mar 24, 2022 12:44 pm

Code: Select all  Expand view  RUN

........................

     REDEFINE xBrowse oBrw1 ID 109 OF oDlg ;
              HEADERS "*Núm.","* Nombre","Not.","*Superf.Cult.","Representante","Localidad","Asesor 1","Aplicador 1","Observaciones 1","¿Obligada a asesoramiento en G.I.P.?";
              COLUMNS "NExplota","Nombre","Anotacion","Superficie","NombreRe","Localidad","NomAse1","NomApli1","Observa1","NoExenta";
              SIZES 35,250,25,60,200,150,200,200,150,150;
              JUSTIFY AL_RIGHT, AL_LEFT,AL_CENTER,AL_RIGHT,AL_LEFT,AL_LEFT,AL_LEFT,AL_LEFT,AL_LEFT,AL_CENTER;
              ALIAS "EXPLOTA" CELL LINES  FOOTERS  AUTOSORT

oBrw1:bChange:= {|| Actualiza(oBrw1,oBrw2)}

     REDEFINE xBrowse oBrw2 ID 209 OF oDlg ;
              HEADERS "Núm.","Nombre","Not.","Superf.Cult.","Plantas";
              COLUMNS "NParcela","Nombre","Anotacion","Superficie","Plantas";
              SIZES 35,225,25,57,57;
              JUSTIFY AL_RIGHT, AL_LEFT, AL_CENTER,AL_RIGHT,AL_RIGHT;
              ALIAS "PARCELAS" CELL LINES  FOOTERS
................

***************************************************
STATIC FUNCTION Actualiza(oBrw1,oBrw2)
***************************************************
//
PARCELAS->(ordscope(TOPSCOPE, EXPLOTA->NExplota))
PARCELAS->(ordscope(BOTTOMSCOPE, EXPLOTA->NExplota))
PARCELAS->(DbGoTop())

oBrw2:GoTop()
oBrw2:Refresh()
//
RETURN NIL


 
Un saludo,
Manuel

xH 1.2.3, FWH 23.07 32 bits, BC++ 7.4, xVerce CW 1.0, PellesC
User avatar
Manuel Aranda
 
Posts: 604
Joined: Wed Oct 19, 2005 8:20 pm
Location: España

Re: Relacionar búsqueda ente dos xBrowse

Postby El Loco » Thu Mar 24, 2022 2:40 pm

Buenos días.
Gracias Manuel.... ni bien pueda lo pruebo.
Aunque leyendo lo que enviaste me parece que por ahí van los tiros.
Muchísimas gracias.
Abrazo
FWH 32/64 14.04
Harbour 3.2.0 (r1306211258)
PellesC
El Loco
 
Posts: 328
Joined: Fri May 19, 2006 4:08 pm
Location: Buenos Aires - Argentina

Re: Relacionar búsqueda ente dos xBrowse

Postby El Loco » Sat Mar 26, 2022 8:28 pm

Hola gente.
A partir del código que posteo Manuel (gracias Manuel) recordé que ya lo había hecho yo en otro programa ya viejo.
Funciona perfecto.
Ahora el tema está que cuando avanzo del oBrwB para que actualice oBrwC sale este error:
Image
Les comento un poco más, este programa es solo de consulta y consta de tres archivos
CG_000 que contiene los datos básicos de búsqueda : Nro. CUIL , Apellido y Nombre , Nro. de documento
Las otras dos (CG_001 y CG_002) contienen los datos adicionales de cada uno de los que figuran en CG_000
CG_000 contiene más de 19 millones de registros
CG_001 contiene más de 8,5 millones de registros
CG_002 contiene más de 10,5 millones de registros
Temiendo que quizás CG_000 fuera demasiado grande, guardo en un dbf temporal sobre el filtro de cualquiera de los tres forma de búsqueda.
Todo eso funciona perfectamente.
Alguien le pasó?
Gracias
FWH 32/64 14.04
Harbour 3.2.0 (r1306211258)
PellesC
El Loco
 
Posts: 328
Joined: Fri May 19, 2006 4:08 pm
Location: Buenos Aires - Argentina

Re: Relacionar búsqueda ente dos xBrowse (SOLUCIONADO)

Postby El Loco » Tue Mar 29, 2022 7:46 pm

Buenas.... la solución al mensaje de error que se producía era que cuando entraba en la función Actualiza() entraba en un loop infinito hasta que colapsaba
Code: Select all  Expand view  RUN

Function Actualiza( oBrwB, oBrwC, aCampos )
 
  Do Case
     Case CG_000->TDato == "01"
          If CG_001->(DbSeek(CG_000->XCuil + AllTrim(CG_000->NCuil)))
             aCampos[ 1,2]:= CG_000->NCuil
             aCampos[ 2,2]:= CG_000->ApeNom
             aCampos[ 3,2]:= CG_000->NDoc
             aCampos[ 4,2]:= FSDia4(SubStr(CG_001->TDato,14,8)) + " - " + AllTrim(Str(CalEdad(SubStr(CG_001->TDato,14,8)))) + " AÑOS"     // FchNac aaaammdd
             aCampos[ 5,2]:= SubStr(CG_001->TDato,22,1)                  // _
             aCampos[ 6,2]:= SubStr(CG_001->TDato,23,11)                 // NroBen
             aCampos[ 7,2]:= ""                                          // CUIT Empleador
             aCampos[ 8,2]:= AllTrim(SubStr(CG_001->TDato,34,40))        // Calle
             aCampos[ 9,2]:= AllTrim(SubStr(CG_001->TDato,74,5))         // Nro_Calle
             aCampos[10,2]:= AllTrim(SubStr(CG_001->TDato,79,5))         // Piso
             aCampos[11,2]:= AllTrim(SubStr(CG_001->TDato,84,5))         // Depto
             aCampos[12,2]:= AllTrim(SubStr(CG_001->TDato,89,5))         // Cod. Area Telefónico
             aCampos[13,2]:= AllTrim(SubStr(CG_001->TDato,94,10))        // Nro. Telefónico
             aCampos[14,2]:= AllTrim(SubStr(CG_001->TDato,104,70))       // Localidad
             aCampos[15,2]:= AllTrim(SubStr(CG_001->TDato,174,4))        // Codigo Postal
             aCampos[16,2]:= aProv[Val(AllTrim(SubStr(CG_001->TDato,178,2)))]        // Provincia
             aCampos[17,2]:= Lower(AllTrim(SubStr(CG_001->TDato,180,60)))       // EMail
             aCampos[18,2]:= Str(Val(SubStr(CG_001->TDato,246,12))/100)       // ImpNet
             aCampos[19,2]:= SubStr(CG_001->TDato,258,8)+"-"+SubStr(CG_001->TDato,266,14)       // Nro. CBU
          Endif

     Case CG_000->TDato == "02"
          If CG_002->(DbSeek(CG_000->XCuil + AllTrim(CG_000->NCuil)))
             aCampos[ 1,2]:= CG_000->NCuil
             aCampos[ 2,2]:= CG_000->ApeNom
             aCampos[ 3,2]:= CG_000->NDoc
             aCampos[ 4,2]:= FSDia4(SubStr(CG_002->TDato,14,8)) + " - " + AllTrim(Str(CalEdad(SubStr(CG_002->TDato,14,8)))) + " AÑOS"     // FchNac aaaammdd
             aCampos[ 5,2]:= SubStr(CG_002->TDato,22,1)                  // _
             aCampos[ 6,2]:= ""                                          // NroBen
             aCampos[ 7,2]:= SubStr(CG_002->TDato,23,11)                 // CUIT Empleador
             aCampos[ 8,2]:= AllTrim(SubStr(CG_002->TDato,34,40))        // Calle
             aCampos[ 9,2]:= AllTrim(SubStr(CG_002->TDato,74,5))         // Nro_Calle
             aCampos[10,2]:= AllTrim(SubStr(CG_002->TDato,79,5))         // Piso
             aCampos[11,2]:= AllTrim(SubStr(CG_002->TDato,84,5))         // Depto
             aCampos[12,2]:= AllTrim(SubStr(CG_002->TDato,89,5))         // Cod. Area Telefónico
             aCampos[13,2]:= AllTrim(SubStr(CG_002->TDato,94,10))        // Nro. Telefónico
             aCampos[14,2]:= AllTrim(SubStr(CG_002->TDato,104,70))       // Localidad
             aCampos[15,2]:= AllTrim(SubStr(CG_002->TDato,174,4))        // Codigo Postal
             aCampos[16,2]:= aProv[Val(AllTrim(SubStr(CG_002->TDato,178,2)))]        // Provincia        // Provincia
             aCampos[17,2]:= Lower(AllTrim(SubStr(CG_002->TDato,180,60)))       // EMail
             aCampos[18,2]:= Str(Val(SubStr( CG_002->TDato,246,12))/100)         // ImpNet
             aCampos[19,2]:= AllTrim(SubStr(CG_002->TDato,258,22))       // Nro. CBU
          Endif
  EndCase

  //oBrwB:GoTop() <---- Acá estaba el problema
  oBrwB:Refresh()
 
  oBrwC:GoTop()
  oBrwC:Refresh()
 
Return aCampos

 

Posteo esto por si alguien tiene el mismo tema
Gracias a todos por la ayuda recibida
Abrazo
FWH 32/64 14.04
Harbour 3.2.0 (r1306211258)
PellesC
El Loco
 
Posts: 328
Joined: Fri May 19, 2006 4:08 pm
Location: Buenos Aires - Argentina


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 27 guests