FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Relacionar búsqueda ente dos xBrowse II (SOLUCIONADO)
Posts: 328
Joined: Fri May 19, 2006 04:08 PM
Relacionar búsqueda ente dos xBrowse II (SOLUCIONADO)
Posted: Tue Mar 29, 2022 08:11 PM
Buenas .....
Me quedan dos temas para solucionar con el xBrowse
1ro. Cuando salen los dos xBrowse, en el oBrwC no muestra los datos, y cuando empiezo a moverme por oBrwB ahí si los refresca

ahora cuando avanzo por oBrwB si


2do. Cuando los datos filtrados para el oBrwB superan la cantidad visibles del xBrowse se pierde la linea de selección, si bien refresca al oBrwc no muestra la fila seleccionada del oBrwB


He buscado en el foro y la propia clase del xBrowse y no encuentro como solucionarlo.
Adjunto parte del código
Code (fw): Select all Collapse
....
....
....
 Do Case
    Case oBrw:nRowSel == 1
         CG_000->(OrdSetFocus("NCuil"))
 
    Case oBrw:nRowSel == 2
         CG_000->(OrdSetFocus("ApeNom"))  
 
    Case oBrw:nRowSel == 3
         CG_000->(OrdSetFocus("NDoc"))  
     
 EndCase
     
 If !CG_000->(DbSeek(AllTrim(cGet)))
    MsgInfo( aMsg[oBrw:nRowSel] +AllTrim(cGet)+" NO ENCONTRADO")
    cGet:=Space(40)
    oGet:SetFocus()
    Return Nil
    
  Else  
 
    CG_000->(OrdScope( 0 , AllTrim(cGet) ))  
    CG_000->(OrdScope( 1 , AllTrim(cGet) ))  
    CG_000->(DbGoTop())
 
 Endif

 @ 60,8 xBrowse oBrwB Size 800, 900 Of oWnd ;
          COLUMNS aFlds HEADERS "Nro. CUIL", "Apellido y Nombre", "Nro. Documento" ;
          Alias "CG_000" AUTOSORT AUTOCOLS ;
          Cell Pixel Font oFont7 NoBorder

 @ 60,814 xBrowse oBrwC Size 800, 900 Of oWnd ;
          Cell Pixel Font oFont7 NoBorder COLSIZES 100, 150
          
 With Object oBrwB
  :lRecordSelector:= .T.
  :lHeader   := .T.
  :lHScroll  := .F.
  If(  CG_000->(OrdKeyCount()) > 26 , :lVScroll:= .T. , :lVScroll:= .F.)
  :lFlatStyle:= .T.
  :lAllowRowSizing:= .F.       // Impide cambiar el alto del renglon
  :nRowDividerStyle:= 1
  :nColDividerStyle:= 1
  :HasBorder(.F.)
  :lIncrFilter   := .F.
  :lSeekWild     := .F.
  :nStretchCol   := STRETCHCOL_WIDEST
  :CreateFromCode()
  :SetFocus()
  :bChange:= {|| ( Actualiza( oBrwB, oBrwC, @aCampos ) , oBrwC:Refresh()) }
  :bOnChanges:= { || oBrwC:Refresh() }
  :nMarqueeStyle := MARQSTYLE_HIGHLROW
 End

 With Object oBrwC
  :SetArray( aCampos)
  :lRecordSelector = .F.
  :lHeader   := .F.
  :lHScroll  := .F.
  :lVScroll  := .F.
  :lFlatStyle:= .T.
  :lAllowRowSizing:= .F.       // Impide cambiar el alto del renglon
  :nRowDividerStyle:= 1
  :nColDividerStyle:= 1
  :HasBorder(.T.)
  :lIncrFilter   := .F.
  :lSeekWild     := .F.
  :nStretchCol   := 2
  :CreateFromCode()
  :aCols[ 1 ]:bClrStd := {|| { Rgb( 251, 239, 210 ) , RGB( 60, 60, 60 ) } }
  :nFreeze:= 1
  :nMarqueeStyle:= 0
  
 End

 oWnd:bKeyDown := { |nKey| IIf( nKey = VK_ESCAPE, ( oBrwB:Hide(),oBrwB:End(),  ;
                                                    oBrwC:Hide(),oBrwC:End(),  ;
                                                    cGet:= Space(40), ;
                                                    oWnd:nWidth:= 400, ;
                                                    oWnd:Refresh(), ;
                                                    oBrw:SetFocus(), ;
                                                    oBrw:Show(), ;
                                                    oBrw:Refresh(), ;  // DbCloseAll(), ;
                                                    oPanel:End() ), )}

Return Nil
FWH 32/64 14.04

Harbour 3.2.0 (r1306211258)

PellesC
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Relacionar búsqueda ente dos xBrowse II
Posted: Wed Mar 30, 2022 01:47 AM
Para el primer caso:
En el ON INIT de la ventana contenedora del oBrwB intentá lo siguiente:
Code (fw): Select all Collapse
ACTIVATE DIALOG oDlg  ;
   ON INIT Eval(oBrwB:bChange)
Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
Re: Relacionar búsqueda ente dos xBrowse II
Posted: Wed Mar 30, 2022 01:59 AM
1) Al init de la ventana o dialogo que contiene el browse, llama a la funcion que actualiza el oBrwC
ACTIVATE DIALOG ON INIT (Actualiza( oBrwB, oBrwC, @aCampos ) , oBrwC:Refresh())
2) Cambia el alto del xBrowse según el alto de su ventana contenedora
Code (fw): Select all Collapse
acor := GetDialogBaseUnits()
oBrwB:nBottom := oDlg:nHeight/ acor[2] - 15
oBrwC:nBottom := oDlg:nHeight/ acor[2] - 15

Espero te sirva

Editado
Francisco ya se me había adelantado! :-)
Posts: 328
Joined: Fri May 19, 2006 04:08 PM
Re: Relacionar búsqueda ente dos xBrowse II
Posted: Wed Mar 30, 2022 04:16 AM

Gracias Francisco y Cesar
Lo del alto de xbrowse ya me había dado cuenta pero después de tanto modificar, sacar y agregar uno no termina de ver lo obvio :(
Ahora sobre el primer punto eso ya lo había intentado y no resulto.
Resulta que es una sola ventana que se redimenciona según lo seleccionado e incorpora los demás controles y en el init de la ventana los xbrowse no existen.
Pero igual me dieron una idea haber como resulta.
Gracias y muchísimas gracias.
Abrazo

FWH 32/64 14.04

Harbour 3.2.0 (r1306211258)

PellesC
Posts: 328
Joined: Fri May 19, 2006 04:08 PM
Re: Relacionar búsqueda ente dos xBrowse II (SOLUCIONADO)
Posted: Thu Mar 31, 2022 11:08 PM

Por fin lo logré... tomando como consejo de Cesar y Francisco le agregue un dialogo incrustado a la ventana principal y desde el Init del dialogo se actualiza el segundo browse de primera.
Muchas gracias.
Abrazo

FWH 32/64 14.04

Harbour 3.2.0 (r1306211258)

PellesC
Posts: 328
Joined: Fri May 19, 2006 04:08 PM
Re: Relacionar búsqueda ente dos xBrowse II (SOLUCIONADO)
Posted: Mon Apr 04, 2022 05:48 AM

Hola gente...
Que de otra forma puedo refrescar un xBrowse cuando se despliega por primera vez que no sea desde el init del dialogo?
Gracias
Abrazo

FWH 32/64 14.04

Harbour 3.2.0 (r1306211258)

PellesC
Posts: 328
Joined: Fri May 19, 2006 04:08 PM
Re: Relacionar búsqueda ente dos xBrowse II (SOLUCIONADO)
Posted: Mon Apr 04, 2022 12:38 PM
El Loco wrote:Hola gente...
Que de otra forma puedo refrescar un xBrowse cuando se despliega por primera vez que no sea desde el init del dialogo?
Gracias
Abrazo

Buenos días gente.
Solucionado desde el init del primer xBrowse
Gracias.
Abrazo
FWH 32/64 14.04

Harbour 3.2.0 (r1306211258)

PellesC

Continue the discussion