FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Fallo con multiples xbrowses en un mismo dialog
Posts: 182
Joined: Wed Nov 08, 2006 11:44 PM
Fallo con multiples xbrowses en un mismo dialog
Posted: Thu Dec 17, 2009 03:30 AM

Estimado Antonio,

El problema que se me ha presentado y por el que te consulto es el siguiente:
Cuando intento ejecutar varios xBrowses de diferentes Bases en un mismo dialog ocurre que solo funciona el que corresponde solo al area activa, los demas fallan y me muestran solamente el primer registro de la base de datos repetido al infinito.
Cuando cambio el area activa (dbselectarea()) el xbrowse correspondiente a la misma comienza a funcionar y los otros fallan
No se si estoy haciendo algo mal o si me falta algo en el codigo, ya probe todo lo que se me ocurrio y nada funciona.
Te adjunto el codigo para que lo veas y puedas orientarme ya que no quiero tener que recurrir a lo unico que me queda que es usar un solo xbrowse y los demas con twbrowse.

Desde ya agradecido por tu ayuda

Raul Luis Terraz

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

include "FIvewin.ch"

include "xbrowse.ch"

STATIC oDlg,oSay,oGet,oBtn,oDbf,oBrw,oBrw1,oCol,oLbx
STATIC oMeter,nVal:=0
MEMVAR oP,oFbold,oFbig

//------------------------------------------
Function Multibrowse()

Dbusearea(.t.,,"\winfarma\wfmovpro",,.t.)
OrdListAdd("wfmovpro")
Ordsetfocus("fecha")

Dbusearea(.t.,,"\winfarma\wfprodu",,.t.)
OrdListAdd("wfprodu")
Ordsetfocus("descri")

DEFINE DIALOG oDlg RESOURCE "browse2" TITLE "MULTI BROWSE" OF oWnd

 oBrw := TXBrowse():New( oDlg )       <- ESTE FUNCIONA CORRECTAMENTE
 oBrw:nMarqueeStyle       := 5
 oBrw:nColDividerStyle    := 1
 oBrw:nRowDividerStyle    := 1
 oBrw:lColDividerComplete :=.F.
 oBrw:nHeaderLines        := 2
 oBrw:bClrStd             := {|| {CLR_BLACK,CLR_WHITE}}

 //.... Columnas

 oCol := oBrw:AddCol()
 oCol:nWidth:=80
 oCol:bStrData  := { || cvaltochar(wfprodu->troquel) }
 oCol:nDataStrAlign:= 2
 oCol:cHeader   := "TROQUEL"

 oCol := oBrw:AddCol()
 oCol:nWidth:=80
 oCol:bStrData  := { || cValtochar(wfprodu->codbarra) }
 oCol:cHeader   := "CODIGO"+CRLF+"BARRAS"

 oCol := oBrw:AddCol()
 oCol:nWidth:=200
 oCol:bStrData  := { || wfprodu->descrip }
 oCol:cHeader   := "PRODUCTO"

 oCol := oBrw:AddCol()
 oCol:nWidth:=60
 oCol:bStrData  := { || wfprodu->laborat }
 oCol:nDataStrAlign:= 2
 oCol:cHeader   := "LABORATORIO"+CRLF+"FACT"

 oCol := oBrw:AddCol()
 oCol:nWidth      :=100
 oCol:bStrData    := { || transf(wfprodu->prelis,"99,999,999.99") }
 oCol:nDataStrAlign:= 1
 oCol:cHeader     := "PRECIO DE"+CRLF+"LISTA"


 oBrw:lHScroll:=.t.
 oBrw:lVScroll:=.t.
 oBrw:lFooter :=.t.
 oBrw:SetRDD()
 oBrw:CreateFromResource(4001)

//..................................................

 oBrw1 := TXBrowse():New( oDlg )       <-  ESTE FALLA
 oBrw1:nMarqueeStyle       := 5
 oBrw1:nColDividerStyle    := 1
 oBrw1:nRowDividerStyle    := 1
 oBrw1:lColDividerComplete :=.F.
 oBrw1:nHeaderLines        := 2
 oBrw1:bClrStd             := {|| {CLR_BLACK,CLR_WHITE}}

 //.... Columnas

 oCol := oBrw1:AddCol()
 oCol:nWidth:=70
 oCol:bStrData  := { || cvaltochar(wfmovpro->numfac) }
 oCol:nDataStrAlign:= 2
 oCol:cHeader   := "NUMERO"

 oCol := oBrw1:AddCol()
 oCol:nWidth:=60
 oCol:bStrData  := { || dtoc(wfmovpro->fecha) }
 oCol:cHeader   := "FECHA"

 oCol := oBrw1:AddCol()
 oCol:nWidth:=200
 oCol:bStrData  := { || wfmovpro->producto }
 oCol:cHeader   := "PRODUCTO"

 oCol := oBrw1:AddCol()
 oCol:nWidth:=40
 oCol:bStrData  := { || cvaltochar(wfmovpro->cant) }
 oCol:nDataStrAlign:= 2
 oCol:cHeader   := "CANT"


 oBrw1:lHScroll:=.t.
 oBrw1:lVScroll:=.t.
 oBrw1:lFooter :=.t.
 oBrw1:SetRDD()
 oBrw1:CreateFromResource(4002)

REDEFINE BTNBMP RESOURCE "b_top" ID 4003 OF oDlg ACTION (sound(),oBrw:GoTop(),oBrw:refresh(),oBrw:setfocus()) ;
TOOLTIP "IR AL INICIO"
REDEFINE BTNBMP RESOURCE "b_bottom" ID 4004 OF oDlg ACTION (sound(),oBrw:GoBottom(),oBrw:refresh(),oBrw:setfocus()) ;
TOOLTIP "IR AL FINAL"
REDEFINE BTNBMP RESOURCE "b_fin" ID 4005 OF oDlg ACTION (sound(),oDlg:end()) ;
TOOLTIP "SALIR"

ACTIVATE DIALOG oDlg CENTERED

dbcloseall()

return NIL

Posts: 2365
Joined: Wed Nov 02, 2005 11:46 PM
Re: Fallo con multiples xbrowses en un mismo dialog
Posted: Thu Dec 17, 2009 04:13 AM

Hola rterraz

El problema creo que esta en la asignacion de los alias...

Cuando haces un SetRDD esta asigna el alias al xBrowse que este activo, mi recomendacion es que se lo asignes al xBrowse, solo agrega esta linea antes de cada SetRDD con el nombre que debe tener cada alias para cada xbrowse

oBrw :cAlias := MiAlias

Posts: 182
Joined: Wed Nov 08, 2006 11:44 PM
Re: Fallo con multiples xbrowses en un mismo dialog
Posted: Thu Dec 17, 2009 12:56 PM

Estimado Daniel

Muchas gracias por tu respuesta, hice lo que me dijiste y todo empezo a funcionar de maravillas !!!!!
Puedo abrir la cantidad de xbrowses que quiera y todos funcionan
Abusando de tu buena disposicion...como hago para que al moverme en el browse luego de haber llegado a la ultima linea, al hacer down me empieza a repetir la linea anterior y no refresca la pantalla con la nueva linea

agradecido por tu ayuda

RAUL TERRAZ

Continue the discussion