Fallo con multiples xbrowses en un mismo dialog

Fallo con multiples xbrowses en un mismo dialog

Postby rterraz » Thu Dec 17, 2009 3: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
User avatar
rterraz
 
Posts: 182
Joined: Wed Nov 08, 2006 11:44 pm
Location: Argentina

Re: Fallo con multiples xbrowses en un mismo dialog

Postby Daniel Garcia-Gil » Thu Dec 17, 2009 4: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
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Re: Fallo con multiples xbrowses en un mismo dialog

Postby rterraz » 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
User avatar
rterraz
 
Posts: 182
Joined: Wed Nov 08, 2006 11:44 pm
Location: Argentina


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: FiveWiDi and 48 guests