Page 1 of 1

Relacionar búsqueda ente dos xBrowse II (SOLUCIONADO)

Posted: Tue Mar 29, 2022 8:11 pm
by El Loco
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
Image
ahora cuando avanzo por oBrwB si
Image

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
Image

He buscado en el foro y la propia clase del xBrowse y no encuentro como solucionarlo.
Adjunto parte del código

Code: Select all | Expand


....
....
....
 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

 

Re: Relacionar búsqueda ente dos xBrowse II

Posted: Wed Mar 30, 2022 1:47 am
by FranciscoA
Para el primer caso:
En el ON INIT de la ventana contenedora del oBrwB intentá lo siguiente:

Code: Select all | Expand

ACTIVATE DIALOG oDlg  ;
   ON INIT Eval(oBrwB:bChange)

Re: Relacionar búsqueda ente dos xBrowse II

Posted: Wed Mar 30, 2022 1:59 am
by cmsoft
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: Select all | Expand


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! :D

Re: Relacionar búsqueda ente dos xBrowse II

Posted: Wed Mar 30, 2022 4:16 am
by El Loco
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

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

Posted: Thu Mar 31, 2022 11:08 pm
by El Loco
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

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

Posted: Mon Apr 04, 2022 5:48 am
by El Loco
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

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

Posted: Mon Apr 04, 2022 12:38 pm
by El Loco
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